diff --git a/.github/scripts/GenerateVersionNumber-2.0.0.ps1 b/.github/scripts/GenerateVersionNumber-2.0.0.ps1 new file mode 100644 index 00000000..c0c9815b --- /dev/null +++ b/.github/scripts/GenerateVersionNumber-2.0.0.ps1 @@ -0,0 +1,23 @@ +$latestVersion = [version]"2.0.0" + +$newVersion = [version]$latestVersion +$phase = "" +$newVersionString = "" + +switch -regex ($Env:GITHUB_REF) { + '^refs\/pull\/*.' { + $phase = 'beta'; + $newVersionString = "{0}-{1}-{2}" -f $newVersion, $phase, $Env:GITHUB_RUN_NUMBER + } + '^refs\/heads\/feature-2.0.0\/*.' { + $phase = 'alpha' + $newVersionString = "{0}-{1}-{2}" -f $newVersion, $phase, $Env:GITHUB_RUN_NUMBER + } + 'development-2.0.0' { + $phase = 'beta' + $newVersionString = "{0}-{1}-{2}" -f $newVersion, $phase, $Env:GITHUB_RUN_NUMBER + } +} + + +Write-Output $newVersionString diff --git a/.github/workflows/EssentialsPlugins-builds-4-series-caller.yml b/.github/workflows/EssentialsPlugins-builds-4-series-caller.yml new file mode 100644 index 00000000..99b67d92 --- /dev/null +++ b/.github/workflows/EssentialsPlugins-builds-4-series-caller.yml @@ -0,0 +1,21 @@ +name: Build PepperDash Essentials + +on: + push: + branches: + - '**' + +jobs: + getVersion: + uses: PepperDash/workflow-templates/.github/workflows/essentialsplugins-getversion.yml@main + secrets: inherit + build-4Series: + uses: PepperDash/workflow-templates/.github/workflows/essentialsplugins-4Series-builds.yml@main + secrets: inherit + needs: getVersion + if: needs.getVersion.outputs.newVersion == 'true' + with: + newVersion: ${{ needs.getVersion.outputs.newVersion }} + version: ${{ needs.getVersion.outputs.version }} + tag: ${{ needs.getVersion.outputs.tag }} + channel: ${{ needs.getVersion.outputs.channel }} \ No newline at end of file diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index e654fa68..00000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,141 +0,0 @@ -name: Branch Build Using Docker - -on: - push: - branches: - - feature/* - - hotfix/* - - bugfix/* - - release/* - - development - -env: - # solution path doesn't need slashes unless it is multiple folders deep - # solution name does not include extension. .sln is assumed - SOLUTION_PATH: PepperDashEssentials - SOLUTION_FILE: PepperDashEssentials - # Do not edit this, we're just creating it here - VERSION: 0.0.0-buildtype-buildnumber - # Defaults to debug for build type - BUILD_TYPE: Debug - # Defaults to main as the release branch. Change as necessary - RELEASE_BRANCH: main -jobs: - Build_Project: - runs-on: windows-2019 - steps: - # First we checkout the source repo - - name: Checkout repo - uses: actions/checkout@v2 - with: - fetch-depth: 0 - # Fetch all tags - - name: Fetch tags - run: git fetch --tags - # Generate the appropriate version number - - name: Set Version Number - shell: powershell - run: | - $version = ./.github/scripts/GenerateVersionNumber.ps1 - echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - # Use the version number to set the version of the assemblies - - name: Update AssemblyInfo.cs - shell: powershell - run: | - ./.github/scripts/UpdateAssemblyVersion.ps1 ${{ env.VERSION }} - - name: restore Nuget Packages - run: nuget install .\packages.config -OutputDirectory .\packages -ExcludeVersion - # Login to Docker - - name: Login to Docker - uses: azure/docker-login@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - # Build the solutions in the docker image - - name: Build Solution - shell: powershell - run: | - Invoke-Expression "docker run --rm --mount type=bind,source=""$($Env:GITHUB_WORKSPACE)"",target=""c:/project"" pepperdash/sspbuilder c:\cihelpers\vsidebuild.exe -Solution ""c:\project\$($Env:SOLUTION_FILE).sln"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)" - # Zip up the output files as needed - - name: Zip Build Output - shell: powershell - run: ./.github/scripts/ZipBuildOutput.ps1 - # Write the version to a file to be consumed by the push jobs - - name: Write Version - run: Write-Output "$($Env:VERSION)" | Out-File -FilePath "$($Env:GITHUB_HOME)\output\version.txt" - # Upload the build output as an artifact - - name: Upload Build Output - uses: actions/upload-artifact@v1 - with: - name: Build - path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip - # Upload the Version file as an artifact - - name: Upload version.txt - uses: actions/upload-artifact@v1 - with: - name: Version - path: ${{env.GITHUB_HOME}}\output\version.txt - - name: Create Release - id: create_release - # using contributor's version to allow for pointing at the right commit - uses: fleskesvor/create-release@feature/support-target-commitish - with: - tag_name: ${{ env.VERSION }} - release_name: ${{ env.VERSION }} - prerelease: ${{contains('debug', env.BUILD_TYPE)}} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # Upload the build package to the release - - name: Upload Release Package - id: upload_release - uses: actions/upload-release-asset@v1 - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip - asset_name: ${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip - asset_content_type: application/zip - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - Push_Nuget_Package: - needs: Build_Project - runs-on: windows-2019 - steps: - - name: Download Build Version Info - uses: actions/download-artifact@v1 - with: - name: Version - - name: Set Version Number - shell: powershell - run: | - Get-ChildItem "./Version" - $version = Get-Content -Path ./Version/version.txt - Write-Host "Version: $version" - echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - Remove-Item -Path ./Version/version.txt - Remove-Item -Path ./Version - - name: Download Build output - uses: actions/download-artifact@v1 - with: - name: Build - path: ./ - - name: Unzip Build file - run: | - Get-ChildItem .\*.zip | Expand-Archive -DestinationPath .\ - Remove-Item -Path .\*.zip - - name: Copy Files to root & delete output directory - run: | - Remove-Item -Path .\* -Include @("*.cpz","*.md","*.cplz","*.json","*.dll","*.clz") - Get-ChildItem -Path .\output\* | Copy-Item -Destination .\ - Remove-Item -Path .\output -Recurse - - name: Add nuget.exe - uses: nuget/setup-nuget@v1 - - name: Add Github Packages source - run: nuget sources add -name github -source https://nuget.pkg.github.com/pepperdash/index.json -username Pepperdash -password ${{ secrets.GITHUB_TOKEN }} - - name: Add nuget.org API Key - run: nuget setApiKey ${{ secrets.NUGET_API_KEY }} - - name: Create nuget package - run: nuget pack "./PepperDash_Essentials_Core.nuspec" -version ${{ env.VERSION }} - - name: Publish nuget package to Github registry - run: nuget push **/*.nupkg -source github - - name: Publish nuget package to nuget.org - run: nuget push **/*.nupkg -Source https://api.nuget.org/v3/index.json diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index abcc8419..00000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,125 +0,0 @@ -name: main Build using Docker - -on: - release: - types: - - created - branches: - - main -env: - # solution path doesn't need slashes unless there it is multiple folders deep - # solution name does not include extension. .sln is assumed - SOLUTION_PATH: PepperDashEssentials - SOLUTION_FILE: PepperDashEssentials - # Do not edit this, we're just creating it here - VERSION: 0.0.0-buildtype-buildnumber - # Defaults to debug for build type - BUILD_TYPE: Release - # Defaults to main as the release branch. Change as necessary - RELEASE_BRANCH: main -jobs: - Build_Project: - runs-on: windows-2019 - steps: - # First we checkout the source repo - - name: Checkout repo - uses: actions/checkout@v2 - with: - fetch-depth: 0 - # Generate the appropriate version number - - name: Set Version Number - shell: powershell - env: - TAG_NAME: ${{ github.event.release.tag_name }} - run: echo "VERSION=$($Env:TAG_NAME)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - # Use the version number to set the version of the assemblies - - name: Update AssemblyInfo.cs - shell: powershell - run: | - ./.github/scripts/UpdateAssemblyVersion.ps1 ${{ env.VERSION }} - - name: restore Nuget Packages - run: nuget install .\packages.config -OutputDirectory .\packages -ExcludeVersion - # Login to Docker - - name: Login to Docker - uses: azure/docker-login@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - # Build the solutions in the docker image - - name: Build Solution - shell: powershell - run: | - Invoke-Expression "docker run --rm --mount type=bind,source=""$($Env:GITHUB_WORKSPACE)"",target=""c:/project"" pepperdash/sspbuilder c:\cihelpers\vsidebuild.exe -Solution ""c:\project\$($Env:SOLUTION_FILE).sln"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)" - # Zip up the output files as needed - - name: Zip Build Output - shell: powershell - run: ./.github/scripts/ZipBuildOutput.ps1 - # Write the version to a file to be consumed by the push jobs - - name: Write Version - run: Write-Output "$($Env:VERSION)" | Out-File -FilePath "$($Env:GITHUB_HOME)\output\version.txt" - # Upload the build output as an artifact - - name: Upload Build Output - uses: actions/upload-artifact@v1 - with: - name: Build - path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip - # Upload the Version file as an artifact - - name: Upload version.txt - uses: actions/upload-artifact@v1 - with: - name: Version - path: ${{env.GITHUB_HOME}}\output\version.txt - # Upload the build package to the release - - name: Upload Release Package - id: upload_release - uses: actions/upload-release-asset@v1 - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip - asset_name: ${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip - asset_content_type: application/zip - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - Push_Nuget_Package: - needs: Build_Project - runs-on: windows-2019 - steps: - - name: Download Build Version Info - uses: actions/download-artifact@v1 - with: - name: Version - - name: Set Version Number - shell: powershell - run: | - Get-ChildItem "./Version" - $version = Get-Content -Path ./Version/version.txt - Write-Host "Version: $version" - echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - Remove-Item -Path ./Version/version.txt - Remove-Item -Path ./Version - - name: Download Build output - uses: actions/download-artifact@v1 - with: - name: Build - path: ./ - - name: Unzip Build file - run: | - Get-ChildItem .\*.zip | Expand-Archive -DestinationPath .\ - Remove-Item -Path .\*.zip - - name: Copy Files to root & delete output directory - run: | - Remove-Item -Path .\* -Include @("*.cpz","*.md","*.cplz","*.json","*.dll","*.clz") - Get-ChildItem -Path .\output\* | Copy-Item -Destination .\ - Remove-Item -Path .\output -Recurse - - name: Add nuget.exe - uses: nuget/setup-nuget@v1 - - name: Add Github Packages source - run: nuget sources add -name github -source https://nuget.pkg.github.com/pepperdash/index.json -username Pepperdash -password ${{ secrets.GITHUB_TOKEN }} - - name: Add nuget.org API Key - run: nuget setApiKey ${{ secrets.NUGET_API_KEY }} - - name: Create nuget package - run: nuget pack "./PepperDash_Essentials_Core.nuspec" -version ${{ env.VERSION }} - - name: Publish nuget package to Github registry - run: nuget push **/*.nupkg -source github - - name: Publish nuget package to nuget.org - run: nuget push **/*.nupkg -Source https://api.nuget.org/v3/index.json diff --git a/.gitignore b/.gitignore index 739a60ab..c9469ffd 100644 --- a/.gitignore +++ b/.gitignore @@ -390,3 +390,5 @@ MigrationBackup/ FodyWeavers.xsd essentials-framework/Essentials Interfaces/PepperDash_Essentials_Interfaces/PepperDash_Essentials_Interfaces.csproj .DS_Store +/._PepperDash.Essentials.sln +.vscode/settings.json diff --git a/.gitmodules b/.gitmodules index 2d6bfa38..e69de29b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "Essentials-Template-UI"] - path = Essentials-Template-UI - url = https://github.com/PepperDash/Essentials-Template-UI.git diff --git a/.releaserc.json b/.releaserc.json new file mode 100644 index 00000000..416f7dc7 --- /dev/null +++ b/.releaserc.json @@ -0,0 +1,36 @@ +{ + "plugins": [ + [ + "@semantic-release/commit-analyzer", + { + "releaseRules": [ + { "scope": "force-patch", "release": "patch" }, + { "scope": "no-release", "release": false } + ] + } + ], + "@semantic-release/release-notes-generator", + ["@semantic-release/changelog", + { + "changelogFile": "CHANGELOG.md" + } + ], + [ + "@semantic-release/exec", + { + "verifyReleaseCmd": "echo \"newVersion=true\" >> $GITHUB_OUTPUT", + "publishCmd": "echo \"version=${nextRelease.version}\" >> $GITHUB_OUTPUT && echo \"tag=${nextRelease.gitTag}\" >> $GITHUB_OUTPUT && echo \"type=${nextRelease.type}\" >> $GITHUB_OUTPUT && echo \"channel=${nextRelease.channel}\" >> $GITHUB_OUTPUT" + } + ] + ], + "branches": [ + "main", + {"name": "development", "prerelease": "beta", "channel": "beta"}, + {"name": "release", "prerelease": "rc", "channel": "rc"}, + { + "name": "replace-me-feature-branch", + "prerelease": "replace-me-prerelease", + "channel": "replace-me-prerelease" + } + ] +} \ No newline at end of file diff --git a/Essentials-Template-UI b/Essentials-Template-UI deleted file mode 160000 index 8eaf8879..00000000 --- a/Essentials-Template-UI +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8eaf88791b42318fbe7c64402af46d747516e4fa diff --git a/PepperDash.Essentials.4Series.sln b/PepperDash.Essentials.4Series.sln new file mode 100644 index 00000000..e2db852a --- /dev/null +++ b/PepperDash.Essentials.4Series.sln @@ -0,0 +1,44 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.4.33213.308 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PepperDash.Essentials.Devices.Common", "src\PepperDash.Essentials.Devices.Common\PepperDash.Essentials.Devices.Common.csproj", "{53E204B7-97DD-441D-A96C-721DF014DF82}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PepperDash.Essentials", "src\PepperDash.Essentials\PepperDash.Essentials.csproj", "{CB3B11BA-625C-4D35-B663-FDC5BE9A230E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PepperDash.Essentials.Core", "src\PepperDash.Essentials.Core\PepperDash.Essentials.Core.csproj", "{3D192FED-8FFC-4CB5-B5F7-BA307ABA254B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug 4.7.2|Any CPU = Debug 4.7.2|Any CPU + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {53E204B7-97DD-441D-A96C-721DF014DF82}.Debug 4.7.2|Any CPU.ActiveCfg = Debug 4.7.2|Any CPU + {53E204B7-97DD-441D-A96C-721DF014DF82}.Debug 4.7.2|Any CPU.Build.0 = Debug 4.7.2|Any CPU + {53E204B7-97DD-441D-A96C-721DF014DF82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53E204B7-97DD-441D-A96C-721DF014DF82}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53E204B7-97DD-441D-A96C-721DF014DF82}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53E204B7-97DD-441D-A96C-721DF014DF82}.Release|Any CPU.Build.0 = Release|Any CPU + {CB3B11BA-625C-4D35-B663-FDC5BE9A230E}.Debug 4.7.2|Any CPU.ActiveCfg = Debug 4.7.2|Any CPU + {CB3B11BA-625C-4D35-B663-FDC5BE9A230E}.Debug 4.7.2|Any CPU.Build.0 = Debug 4.7.2|Any CPU + {CB3B11BA-625C-4D35-B663-FDC5BE9A230E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB3B11BA-625C-4D35-B663-FDC5BE9A230E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB3B11BA-625C-4D35-B663-FDC5BE9A230E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB3B11BA-625C-4D35-B663-FDC5BE9A230E}.Release|Any CPU.Build.0 = Release|Any CPU + {3D192FED-8FFC-4CB5-B5F7-BA307ABA254B}.Debug 4.7.2|Any CPU.ActiveCfg = Debug 4.7.2|Any CPU + {3D192FED-8FFC-4CB5-B5F7-BA307ABA254B}.Debug 4.7.2|Any CPU.Build.0 = Debug 4.7.2|Any CPU + {3D192FED-8FFC-4CB5-B5F7-BA307ABA254B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D192FED-8FFC-4CB5-B5F7-BA307ABA254B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D192FED-8FFC-4CB5-B5F7-BA307ABA254B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D192FED-8FFC-4CB5-B5F7-BA307ABA254B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6907A4BF-7201-47CF-AAB1-3597F3B8E1C3} + EndGlobalSection +EndGlobal diff --git a/PepperDashEssentials.sln b/PepperDashEssentials.sln deleted file mode 100644 index af0007ba..00000000 --- a/PepperDashEssentials.sln +++ /dev/null @@ -1,49 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDashEssentials", "PepperDashEssentials\PepperDashEssentials.csproj", "{1BED5BA9-88C4-4365-9362-6F4B128071D3}" - ProjectSection(ProjectDependencies) = postProject - {892B761C-E479-44CE-BD74-243E9214AF13} = {892B761C-E479-44CE-BD74-243E9214AF13} - {9199CE8A-0C9F-4952-8672-3EED798B284F} = {9199CE8A-0C9F-4952-8672-3EED798B284F} - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} = {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDash_Essentials_Core", "essentials-framework\Essentials Core\PepperDashEssentialsBase\PepperDash_Essentials_Core.csproj", "{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Essentials Devices Common", "essentials-framework\Essentials Devices Common\Essentials Devices Common\Essentials Devices Common.csproj", "{892B761C-E479-44CE-BD74-243E9214AF13}" - ProjectSection(ProjectDependencies) = postProject - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} = {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDash_Essentials_DM", "essentials-framework\Essentials DM\Essentials_DM\PepperDash_Essentials_DM.csproj", "{9199CE8A-0C9F-4952-8672-3EED798B284F}" - ProjectSection(ProjectDependencies) = postProject - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} = {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1BED5BA9-88C4-4365-9362-6F4B128071D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1BED5BA9-88C4-4365-9362-6F4B128071D3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1BED5BA9-88C4-4365-9362-6F4B128071D3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1BED5BA9-88C4-4365-9362-6F4B128071D3}.Release|Any CPU.Build.0 = Release|Any CPU - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Release|Any CPU.Build.0 = Release|Any CPU - {892B761C-E479-44CE-BD74-243E9214AF13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {892B761C-E479-44CE-BD74-243E9214AF13}.Debug|Any CPU.Build.0 = Debug|Any CPU - {892B761C-E479-44CE-BD74-243E9214AF13}.Release|Any CPU.ActiveCfg = Release|Any CPU - {892B761C-E479-44CE-BD74-243E9214AF13}.Release|Any CPU.Build.0 = Release|Any CPU - {9199CE8A-0C9F-4952-8672-3EED798B284F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9199CE8A-0C9F-4952-8672-3EED798B284F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9199CE8A-0C9F-4952-8672-3EED798B284F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9199CE8A-0C9F-4952-8672-3EED798B284F}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PepperDashEssentials/Bridges/._EssentialsLightsBridge.cs b/PepperDashEssentials/Bridges/._EssentialsLightsBridge.cs deleted file mode 100644 index 069fb4b1..00000000 Binary files a/PepperDashEssentials/Bridges/._EssentialsLightsBridge.cs and /dev/null differ diff --git a/PepperDashEssentials/Bridges/AirMediaControllerBridge.cs b/PepperDashEssentials/Bridges/AirMediaControllerBridge.cs deleted file mode 100644 index 869c5614..00000000 --- a/PepperDashEssentials/Bridges/AirMediaControllerBridge.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Devices.Common; -using PepperDash.Essentials.DM.AirMedia; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class AirMediaControllerApiExtensions - { - public static void LinkToApi(this AirMediaController airMedia, BasicTriList trilist, uint joinStart, string joinMapKey) - { - AirMediaControllerJoinMap joinMap = new AirMediaControllerJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - Debug.Console(0, "Linking to Airmedia: {0}", airMedia.Name); - - trilist.StringInput[joinMap.Name].StringValue = airMedia.Name; - - var commMonitor = airMedia as ICommunicationMonitor; - if (commMonitor != null) - { - commMonitor.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); - } - - airMedia.IsInSessionFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IsInSession]); - airMedia.HdmiVideoSyncDetectedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.HdmiVideoSync]); - - trilist.SetSigTrueAction(joinMap.AutomaticInputRoutingEnabled, new Action( airMedia.AirMedia.DisplayControl.EnableAutomaticRouting)); - trilist.SetSigFalseAction(joinMap.AutomaticInputRoutingEnabled, new Action( airMedia.AirMedia.DisplayControl.DisableAutomaticRouting)); - airMedia.AutomaticInputRoutingEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.AutomaticInputRoutingEnabled]); - - trilist.SetUShortSigAction(joinMap.VideoOut, new Action((u) => airMedia.SelectVideoOut(u))); - - airMedia.VideoOutFeedback.LinkInputSig(trilist.UShortInput[joinMap.VideoOut]); - airMedia.ErrorFeedback.LinkInputSig(trilist.UShortInput[joinMap.ErrorFB]); - airMedia.NumberOfUsersConnectedFeedback.LinkInputSig(trilist.UShortInput[joinMap.NumberOfUsersConnectedFB]); - - trilist.SetUShortSigAction(joinMap.LoginCode, new Action((u) => airMedia.AirMedia.AirMedia.LoginCode.UShortValue = u)); - airMedia.LoginCodeFeedback.LinkInputSig(trilist.UShortInput[joinMap.LoginCode]); - - airMedia.ConnectionAddressFeedback.LinkInputSig(trilist.StringInput[joinMap.ConnectionAddressFB]); - airMedia.HostnameFeedback.LinkInputSig(trilist.StringInput[joinMap.HostnameFB]); - airMedia.SerialNumberFeedback.LinkInputSig(trilist.StringInput[joinMap.SerialNumberFeedback]); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/AppleTvBridge.cs b/PepperDashEssentials/Bridges/AppleTvBridge.cs deleted file mode 100644 index 3c2bb0af..00000000 --- a/PepperDashEssentials/Bridges/AppleTvBridge.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Devices.Common; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class AppleTvApiExtensions - { - public static void LinkToApi(this AppleTV appleTv, BasicTriList trilist, uint joinStart, string joinMapKey) - { - AppleTvJoinMap joinMap = new AppleTvJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if(!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - Debug.Console(0, "Linking to Bridge Type {0}", appleTv.GetType().Name.ToString()); - - trilist.SetBoolSigAction(joinMap.UpArrow, (b) => appleTv.Up(b)); - trilist.SetBoolSigAction(joinMap.DnArrow, (b) => appleTv.Down(b)); - trilist.SetBoolSigAction(joinMap.LeftArrow, (b) => appleTv.Left(b)); - trilist.SetBoolSigAction(joinMap.RightArrow, (b) => appleTv.Right(b)); - trilist.SetBoolSigAction(joinMap.Select, (b) => appleTv.Select(b)); - trilist.SetBoolSigAction(joinMap.Menu, (b) => appleTv.Menu(b)); - trilist.SetBoolSigAction(joinMap.PlayPause, (b) => appleTv.Play(b)); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/BridgeFactory.cs b/PepperDashEssentials/Bridges/BridgeFactory.cs deleted file mode 100644 index c17d4642..00000000 --- a/PepperDashEssentials/Bridges/BridgeFactory.cs +++ /dev/null @@ -1,129 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Bridges; -using PepperDash.Essentials.Core.Config; -using PepperDash.Core; -using PepperDash.Essentials.Core.Routing; -using PepperDash.Essentials.Bridges; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.EthernetCommunication; - -namespace PepperDash.Essentials -{ - /// - /// Responsible for loading all of the device types for this library - /// - public class BridgeFactory - { - public BridgeFactory() - { - var eiscApiAdvancedFactory = new EiscApiAdvancedFactory() as IDeviceFactory; - eiscApiAdvancedFactory.LoadTypeFactories(); - - var eiscApiFactory = new EiscApiFactory() as IDeviceFactory; - eiscApiFactory.LoadTypeFactories(); - } - - } - - public class CommBridge : Device - { - public CommBridgeProperties Properties { get; private set; } - - public List CommDevices { get; private set; } - - public CommBridge(string key, string name, JToken properties) - : base(key, name) - { - Properties = JsonConvert.DeserializeObject(properties.ToString()); - } - - public override bool CustomActivate() - { - // Create EiscApis - if (Properties.Eiscs != null) - { - foreach (var eisc in Properties.Eiscs) - { - var ApiEisc = new BridgeApiEisc(eisc.IpId, eisc.Hostname); - } - } - - foreach (var deviceKey in Properties.CommDevices) - { - var device = DeviceManager.GetDeviceForKey(deviceKey); - - if (device != null) - { - Debug.Console(0, "deviceKey {0} Found in Device Manager", device.Key); - CommDevices.Add(device as IBasicCommunication); - } - else - { - Debug.Console(0, "deviceKey {0} Not Found in Device Manager", deviceKey); - } - } - - // Iterate through all the CommDevices and link up their Actions and Feedbacks - - Debug.Console(0, "Bridge {0} Activated", this.Name); - - return true; - } - } - - - public class EiscBridgeProperties - { - public string ParentDeviceKey { get; set; } - public eApiType ApiType { get; set; } - public List Eiscs { get; set; } - public string ApiOverrideFilePath { get; set; } - - public class EiscProperties - { - public string IpId { get; set; } - public string Hostname { get; set; } - } - } - - public class CommBridgeProperties : EiscBridgeProperties - { - public List CommDevices { get; set; } - } - - public enum eApiType { Eisc = 0 } - - public class BridgeApiEisc - { - public uint Ipid { get; private set; } - public ThreeSeriesTcpIpEthernetIntersystemCommunications Eisc { get; private set; } - - public BridgeApiEisc(string ipid, string hostname) - { - Ipid = (UInt32)int.Parse(ipid, System.Globalization.NumberStyles.HexNumber); - Eisc = new ThreeSeriesTcpIpEthernetIntersystemCommunications(Ipid, hostname, Global.ControlSystem); - Eisc.Register(); - Eisc.SigChange += Eisc_SigChange; - Debug.Console(0, "BridgeApiEisc Created at Ipid {0}", ipid); - } - void Eisc_SigChange(object currentDevice, Crestron.SimplSharpPro.SigEventArgs args) - { - if (Debug.Level >= 1) - Debug.Console(1, "BridgeApiEisc change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue); - var uo = args.Sig.UserObject; - if (uo is Action) - (uo as Action)(args.Sig.BoolValue); - else if (uo is Action) - (uo as Action)(args.Sig.UShortValue); - else if (uo is Action) - (uo as Action)(args.Sig.StringValue); - } - } -} diff --git a/PepperDashEssentials/Bridges/Bridges.BridgeFactory.cs b/PepperDashEssentials/Bridges/Bridges.BridgeFactory.cs deleted file mode 100644 index 18dd0c71..00000000 --- a/PepperDashEssentials/Bridges/Bridges.BridgeFactory.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Core; -using PepperDash.Essentials.Core.Routing; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.EthernetCommunication; -using PepperDash.Essentials.Bridges; - -namespace PepperDash.Essentials { - public class BridgeFactory { - public static IKeyed GetDevice(PepperDash.Essentials.Core.Config.DeviceConfig dc) { - // ? why is this static JTA 2018-06-13? - - var key = dc.Key; - var name = dc.Name; - var type = dc.Type; - var properties = dc.Properties; - var propAnon = new { }; - JsonConvert.DeserializeAnonymousType(dc.Properties.ToString(), propAnon); - - var typeName = dc.Type.ToLower(); - var groupName = dc.Group.ToLower(); - - Debug.Console(2, "Name {0}, Key {1}, Type {2}, Properties {3}", name, key, type, properties.ToString()); - if (typeName == "essentialdm") - { - return new EssentialDM(key, name, properties); - } - else if (typeName == "essentialcomm") - { - Debug.Console(2, "Launch Essential Comm"); - return new EssentialComm(key, name, properties); - } - else if (typeName == "essentialdsp") - { - Debug.Console(2, "Launch EssentialDsp"); - return new EssentialDsp(key, name, properties); - } - else if (typeName == "essentialstvone") - { - Debug.Console(2, "Launch essentialstvone"); - return new EssentialsTVOne(key, name, properties); - } - else if (typeName == "essentialslighting") - { - Debug.Console(2, "Launch essentialslighting"); - return new EssentialsLightsBridge(key, name, properties); - } - else if (typeName == "eiscapi") - { - return new EiscApi(dc); - } - return null; - } - } - public class BridgeApiEisc { - public uint Ipid; - public ThreeSeriesTcpIpEthernetIntersystemCommunications Eisc; - public BridgeApiEisc(string ipid) { - Ipid = (UInt32)int.Parse(ipid, System.Globalization.NumberStyles.HexNumber); - Eisc = new ThreeSeriesTcpIpEthernetIntersystemCommunications(Ipid, "127.0.0.2", Global.ControlSystem); - Eisc.Register(); - Eisc.SigChange += Eisc_SigChange; - Debug.Console(2, "BridgeApiEisc Created at Ipid {0}", ipid); - } - void Eisc_SigChange(object currentDevice, Crestron.SimplSharpPro.SigEventArgs args) { - if (Debug.Level >= 1) - Debug.Console(2, "DDVC EISC change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue); - var uo = args.Sig.UserObject; - if (uo is Action) - (uo as Action)(args.Sig.BoolValue); - else if (uo is Action) - (uo as Action)(args.Sig.UShortValue); - else if (uo is Action) - (uo as Action)(args.Sig.StringValue); - } - } - - } - - - - \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/C2nRthsControllerBridge.cs b/PepperDashEssentials/Bridges/C2nRthsControllerBridge.cs deleted file mode 100644 index 931ee231..00000000 --- a/PepperDashEssentials/Bridges/C2nRthsControllerBridge.cs +++ /dev/null @@ -1,38 +0,0 @@ -using Crestron.SimplSharpPro.DeviceSupport; -using Newtonsoft.Json; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.CrestronIO; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class C2nRthsControllerApiExtensions - { - public static void LinkToApi(this C2nRthsController device, BasicTriList triList, uint joinStart, - string joinMapKey) - { - var joinMap = new C2nRthsControllerJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, device, "Linking to Trilist '{0}'", triList.ID.ToString("X")); - - - triList.SetBoolSigAction(joinMap.TemperatureFormat, device.SetTemperatureFormat); - - device.IsOnline.LinkInputSig(triList.BooleanInput[joinMap.IsOnline]); - device.TemperatureFeedback.LinkInputSig(triList.UShortInput[joinMap.Temperature]); - device.HumidityFeedback.LinkInputSig(triList.UShortInput[joinMap.Humidity]); - - triList.StringInput[joinMap.Name].StringValue = device.Name; - - - } - - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/CameraControllerBridge.cs b/PepperDashEssentials/Bridges/CameraControllerBridge.cs deleted file mode 100644 index 6a3771d3..00000000 --- a/PepperDashEssentials/Bridges/CameraControllerBridge.cs +++ /dev/null @@ -1,169 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Devices.Common; -using PepperDash.Essentials.Devices.Common.Cameras; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class CameraControllerApiExtensions - { - public static void LinkToApi(this PepperDash.Essentials.Devices.Common.Cameras.CameraBase cameraDevice, BasicTriList trilist, uint joinStart, string joinMapKey, EiscApi bridge) - { - CameraControllerJoinMap joinMap = new CameraControllerJoinMap(joinStart); - - // Adds the join map to the bridge - bridge.AddJoinMap(cameraDevice.Key, joinMap); - - var customJoins = JoinMapHelper.TryGetJoinMapAdvancedForDevice(joinMapKey); - - if (customJoins != null) - { - joinMap.SetCustomJoinData(customJoins); - } - - Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - Debug.Console(0, "Linking to Bridge Type {0}", cameraDevice.GetType().Name.ToString()); - - var commMonitor = cameraDevice as ICommunicationMonitor; - commMonitor.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]); - - var ptzCamera = cameraDevice as IHasCameraPtzControl; - - if (ptzCamera != null) - { - trilist.SetBoolSigAction(joinMap.PanLeft.JoinNumber, (b) => - { - if (b) - { - ptzCamera.PanLeft(); - } - else - { - ptzCamera.PanStop(); - } - }); - trilist.SetBoolSigAction(joinMap.PanRight.JoinNumber, (b) => - { - if (b) - { - ptzCamera.PanRight(); - } - else - { - ptzCamera.PanStop(); - } - }); - - trilist.SetBoolSigAction(joinMap.TiltUp.JoinNumber, (b) => - { - if (b) - { - ptzCamera.TiltUp(); - } - else - { - ptzCamera.TiltStop(); - } - }); - trilist.SetBoolSigAction(joinMap.TiltDown.JoinNumber, (b) => - { - if (b) - { - ptzCamera.TiltDown(); - } - else - { - ptzCamera.TiltStop(); - } - }); - - trilist.SetBoolSigAction(joinMap.ZoomIn.JoinNumber, (b) => - { - if (b) - { - ptzCamera.ZoomIn(); - } - else - { - ptzCamera.ZoomStop(); - } - }); - - trilist.SetBoolSigAction(joinMap.ZoomOut.JoinNumber, (b) => - { - if (b) - { - ptzCamera.ZoomOut(); - } - else - { - ptzCamera.ZoomStop(); - } - }); - } - - if (cameraDevice is IPower) - { - var powerCamera = cameraDevice as IPower; - trilist.SetSigTrueAction(joinMap.PowerOn.JoinNumber, () => powerCamera.PowerOn()); - trilist.SetSigTrueAction(joinMap.PowerOff.JoinNumber, () => powerCamera.PowerOff()); - - powerCamera.PowerIsOnFeedback.LinkInputSig(trilist.BooleanInput[joinMap.PowerOn.JoinNumber]); - powerCamera.PowerIsOnFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.PowerOff.JoinNumber]); - } - - if (cameraDevice is ICommunicationMonitor) - { - var monitoredCamera = cameraDevice as ICommunicationMonitor; - monitoredCamera.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]); - } - - if (cameraDevice is IHasCameraPresets) - { - // Set the preset lables when they change - var presetsCamera = cameraDevice as IHasCameraPresets; - presetsCamera.PresetsListHasChanged += new EventHandler((o, a) => - { - for (int i = 1; i <= joinMap.NumberOfPresets.JoinNumber; i++) - { - int tempNum = i - 1; - - string label = "" ; - - var preset = presetsCamera.Presets.FirstOrDefault(p => p.ID.Equals(i)); - - if (preset != null) - label = preset.Description; - - trilist.SetString((ushort)(joinMap.PresetLabelStart.JoinNumber + tempNum), label); - } - }); - - for (int i = 0; i < joinMap.NumberOfPresets.JoinNumber; i++) - { - int tempNum = i; - - trilist.SetSigTrueAction((ushort)(joinMap.PresetRecallStart.JoinNumber + tempNum), () => - { - presetsCamera.PresetSelect(tempNum); - }); - trilist.SetSigTrueAction((ushort)(joinMap.PresetSaveStart.JoinNumber + tempNum), () => - { - var label = trilist.GetString((ushort)(joinMap.PresetLabelStart.JoinNumber + tempNum)); - - presetsCamera.PresetStore(tempNum, label); - }); - } - } - } - } - -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/DmChassisControllerBridge.cs b/PepperDashEssentials/Bridges/DmChassisControllerBridge.cs deleted file mode 100644 index 6522a5f0..00000000 --- a/PepperDashEssentials/Bridges/DmChassisControllerBridge.cs +++ /dev/null @@ -1,288 +0,0 @@ - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.DM; -using Crestron.SimplSharpPro.DM.Endpoints; -using Crestron.SimplSharpPro.DM.Endpoints.Transmitters; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.DM; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class DmChassisControllerApiExtentions - { - public static void LinkToApi(this DmChassisController dmChassis, BasicTriList trilist, uint joinStart, string joinMapKey) - { - DmChassisControllerJoinMap joinMap = new DmChassisControllerJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, dmChassis, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - var chassis = dmChassis.Chassis as DmMDMnxn; - - dmChassis.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); - - trilist.SetUShortSigAction(joinMap.SystemId, new Action(o => chassis.SystemId.UShortValue = o)); - trilist.SetSigTrueAction(joinMap.SystemId, new Action(() => chassis.ApplySystemId())); - - dmChassis.SystemIdFeebdack.LinkInputSig(trilist.UShortInput[joinMap.SystemId]); - dmChassis.SystemIdBusyFeedback.LinkInputSig(trilist.BooleanInput[joinMap.SystemId]); - - // Link up outputs - for (uint i = 1; i <= dmChassis.Chassis.NumberOfOutputs; i++) - { - var ioSlot = i; - - // Control - trilist.SetUShortSigAction(joinMap.OutputVideo + ioSlot, new Action(o => dmChassis.ExecuteSwitch(o, ioSlot, eRoutingSignalType.Video))); - trilist.SetUShortSigAction(joinMap.OutputAudio + ioSlot, new Action(o => dmChassis.ExecuteSwitch(o, ioSlot, eRoutingSignalType.Audio))); - trilist.SetUShortSigAction(joinMap.OutputUsb + ioSlot, new Action(o => dmChassis.ExecuteSwitch(o, ioSlot, eRoutingSignalType.UsbOutput))); - trilist.SetUShortSigAction(joinMap.InputUsb + ioSlot, new Action(o => dmChassis.ExecuteSwitch(o, ioSlot, eRoutingSignalType.UsbInput))); - - if (dmChassis.TxDictionary.ContainsKey(ioSlot)) - { - Debug.Console(2, "Creating Tx Feedbacks {0}", ioSlot); - var txKey = dmChassis.TxDictionary[ioSlot]; - var basicTxDevice = DeviceManager.GetDeviceForKey(txKey) as BasicDmTxControllerBase; - - var advancedTxDevice = basicTxDevice as DmTxControllerBase; - - if (dmChassis.Chassis is DmMd8x8Cpu3 || dmChassis.Chassis is DmMd8x8Cpu3rps - || dmChassis.Chassis is DmMd16x16Cpu3 || dmChassis.Chassis is DmMd16x16Cpu3rps - || dmChassis.Chassis is DmMd32x32Cpu3 || dmChassis.Chassis is DmMd32x32Cpu3rps) - { - dmChassis.InputEndpointOnlineFeedbacks[ioSlot].LinkInputSig(trilist.BooleanInput[joinMap.InputEndpointOnline + ioSlot]); - } - else - { - if (advancedTxDevice != null) - { - advancedTxDevice.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.InputEndpointOnline + ioSlot]); - Debug.Console(2, "Linking Tx Online Feedback from Advanced Transmitter at input {0}", ioSlot); - } - else if (dmChassis.InputEndpointOnlineFeedbacks[ioSlot] != null) - { - Debug.Console(2, "Linking Tx Online Feedback from Input Card {0}", ioSlot); - dmChassis.InputEndpointOnlineFeedbacks[ioSlot].LinkInputSig(trilist.BooleanInput[joinMap.InputEndpointOnline + ioSlot]); - } - } - - if (basicTxDevice != null && advancedTxDevice == null) - trilist.BooleanInput[joinMap.TxAdvancedIsPresent + ioSlot].BoolValue = true; - - if (advancedTxDevice != null) - { - advancedTxDevice.AnyVideoInput.VideoStatus.VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.VideoSyncStatus + ioSlot]); - } - else if(advancedTxDevice == null || basicTxDevice != null) - { - Debug.Console(1, "Setting up actions and feedbacks on input card {0}", ioSlot); - dmChassis.VideoInputSyncFeedbacks[ioSlot].LinkInputSig(trilist.BooleanInput[joinMap.VideoSyncStatus + ioSlot]); - - var inputPort = dmChassis.InputPorts[string.Format("inputCard{0}--hdmiIn", ioSlot)]; - if (inputPort != null) - { - Debug.Console(1, "Port value for input card {0} is set", ioSlot); - var port = inputPort.Port; - - if (port != null) - { - if (port is HdmiInputWithCEC) - { - Debug.Console(1, "Port is HdmiInputWithCec"); - - var hdmiInPortWCec = port as HdmiInputWithCEC; - - if (hdmiInPortWCec.HdcpSupportedLevel != eHdcpSupportedLevel.Unknown) - { - SetHdcpStateAction(true, hdmiInPortWCec, joinMap.HdcpSupportState + ioSlot, trilist); - } - - dmChassis.InputCardHdcpCapabilityFeedbacks[ioSlot].LinkInputSig(trilist.UShortInput[joinMap.HdcpSupportState + ioSlot]); - - if(dmChassis.InputCardHdcpCapabilityTypes.ContainsKey(ioSlot)) - trilist.UShortInput[joinMap.HdcpSupportCapability + ioSlot].UShortValue = (ushort)dmChassis.InputCardHdcpCapabilityTypes[ioSlot]; - else - trilist.UShortInput[joinMap.HdcpSupportCapability + ioSlot].UShortValue = 1; - } - } - } - else - { - inputPort = dmChassis.InputPorts[string.Format("inputCard{0}--dmIn", ioSlot)]; - - if(inputPort != null) - { - var port = inputPort.Port; - - if (port is DMInputPortWithCec) - { - Debug.Console(1, "Port is DMInputPortWithCec"); - - var dmInPortWCec = port as DMInputPortWithCec; - - if (dmInPortWCec != null) - { - SetHdcpStateAction(dmChassis.PropertiesConfig.InputSlotSupportsHdcp2[ioSlot], dmInPortWCec, joinMap.HdcpSupportState + ioSlot, trilist); - } - - dmChassis.InputCardHdcpCapabilityFeedbacks[ioSlot].LinkInputSig(trilist.UShortInput[joinMap.HdcpSupportState + ioSlot]); - - if (dmChassis.InputCardHdcpCapabilityTypes.ContainsKey(ioSlot)) - trilist.UShortInput[joinMap.HdcpSupportCapability + ioSlot].UShortValue = (ushort)dmChassis.InputCardHdcpCapabilityTypes[ioSlot]; - else - trilist.UShortInput[joinMap.HdcpSupportCapability + ioSlot].UShortValue = 1; - } - } - } - } - } - else - { - dmChassis.VideoInputSyncFeedbacks[ioSlot].LinkInputSig(trilist.BooleanInput[joinMap.VideoSyncStatus + ioSlot]); - - var inputPort = dmChassis.InputPorts[string.Format("inputCard{0}--hdmiIn", ioSlot)]; - if (inputPort != null) - { - var hdmiPort = inputPort.Port as EndpointHdmiInput; - - if (hdmiPort != null) - { - SetHdcpStateAction(true, hdmiPort, joinMap.HdcpSupportState + ioSlot, trilist); - dmChassis.InputCardHdcpCapabilityFeedbacks[ioSlot].LinkInputSig(trilist.UShortInput[joinMap.HdcpSupportState + ioSlot]); - } - } - } - - if (dmChassis.RxDictionary.ContainsKey(ioSlot)) - { - Debug.Console(2, "Creating Rx Feedbacks {0}", ioSlot); - var rxKey = dmChassis.RxDictionary[ioSlot]; - var rxDevice = DeviceManager.GetDeviceForKey(rxKey) as DmRmcControllerBase; - var hdBaseTDevice = DeviceManager.GetDeviceForKey(rxKey) as DmHdBaseTControllerBase; - if (dmChassis.Chassis is DmMd8x8Cpu3 || dmChassis.Chassis is DmMd8x8Cpu3rps - || dmChassis.Chassis is DmMd16x16Cpu3 || dmChassis.Chassis is DmMd16x16Cpu3rps - || dmChassis.Chassis is DmMd32x32Cpu3 || dmChassis.Chassis is DmMd32x32Cpu3rps || hdBaseTDevice != null) - { - dmChassis.OutputEndpointOnlineFeedbacks[ioSlot].LinkInputSig(trilist.BooleanInput[joinMap.OutputEndpointOnline + ioSlot]); - } - else if (rxDevice != null) - { - rxDevice.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.OutputEndpointOnline + ioSlot]); - } - } - - // Feedback - dmChassis.VideoOutputFeedbacks[ioSlot].LinkInputSig(trilist.UShortInput[joinMap.OutputVideo + ioSlot]); - dmChassis.AudioOutputFeedbacks[ioSlot].LinkInputSig(trilist.UShortInput[joinMap.OutputAudio + ioSlot]); - dmChassis.UsbOutputRoutedToFeebacks[ioSlot].LinkInputSig(trilist.UShortInput[joinMap.OutputUsb + ioSlot]); - dmChassis.UsbInputRoutedToFeebacks[ioSlot].LinkInputSig(trilist.UShortInput[joinMap.InputUsb + ioSlot]); - - dmChassis.OutputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.OutputNames + ioSlot]); - dmChassis.InputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.InputNames + ioSlot]); - dmChassis.OutputVideoRouteNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.OutputCurrentVideoInputNames + ioSlot]); - dmChassis.OutputAudioRouteNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.OutputCurrentAudioInputNames + ioSlot]); - - dmChassis.OutputDisabledByHdcpFeedbacks[ioSlot].LinkInputSig(trilist.BooleanInput[joinMap.OutputDisabledByHdcp + ioSlot]); - } - } - - static void SetHdcpStateAction(bool hdcpTypeSimple, HdmiInputWithCEC port, uint join, BasicTriList trilist) - { - if (hdcpTypeSimple) - { - trilist.SetUShortSigAction(join, - new Action(s => - { - if (s == 0) - { - port.HdcpSupportOff(); - } - else if (s > 0) - { - port.HdcpSupportOn(); - } - })); - } - else - { - trilist.SetUShortSigAction(join, - new Action(u => - { - port.HdcpReceiveCapability = (eHdcpCapabilityType)u; - })); - } - } - - static void SetHdcpStateAction(bool hdcpTypeSimple, EndpointHdmiInput port, uint join, BasicTriList trilist) - { - if (hdcpTypeSimple) - { - trilist.SetUShortSigAction(join, - new Action(s => - { - if (s == 0) - { - port.HdcpSupportOff(); - } - else if (s > 0) - { - port.HdcpSupportOn(); - } - })); - } - else - { - trilist.SetUShortSigAction(join, - new Action(u => - { - port.HdcpCapability = (eHdcpCapabilityType)u; - })); - } - } - - static void SetHdcpStateAction(bool supportsHdcp2, DMInputPortWithCec port, uint join, BasicTriList trilist) - { - if (!supportsHdcp2) - { - trilist.SetUShortSigAction(join, - new Action(s => - { - if (s == 0) - { - port.HdcpSupportOff(); - } - else if (s > 0) - { - port.HdcpSupportOn(); - } - })); - } - else - { - trilist.SetUShortSigAction(join, - new Action(u => - { - port.HdcpReceiveCapability = (eHdcpCapabilityType)u; - })); - } - } - - } - -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/DmRmcControllerBridge.cs b/PepperDashEssentials/Bridges/DmRmcControllerBridge.cs deleted file mode 100644 index 5609cf03..00000000 --- a/PepperDashEssentials/Bridges/DmRmcControllerBridge.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.DM; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class DmRmcControllerApiExtensions - { - public static void LinkToApi(this DmRmcControllerBase rmc, BasicTriList trilist, uint joinStart, string joinMapKey) - { - DmRmcControllerJoinMap joinMap = new DmRmcControllerJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, rmc, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - rmc.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); - if(rmc.VideoOutputResolutionFeedback != null) - rmc.VideoOutputResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.CurrentOutputResolution]); - if(rmc.EdidManufacturerFeedback != null) - rmc.EdidManufacturerFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidManufacturer]); - if(rmc.EdidNameFeedback != null) - rmc.EdidNameFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidName]); - if(rmc.EdidPreferredTimingFeedback != null) - rmc.EdidPreferredTimingFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidPrefferedTiming]); - if(rmc.EdidSerialNumberFeedback != null) - rmc.EdidSerialNumberFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidSerialNumber]); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/DmTxControllerBridge.cs b/PepperDashEssentials/Bridges/DmTxControllerBridge.cs deleted file mode 100644 index c565f41e..00000000 --- a/PepperDashEssentials/Bridges/DmTxControllerBridge.cs +++ /dev/null @@ -1,153 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DM; -using Crestron.SimplSharpPro.DM.Endpoints; -using Crestron.SimplSharpPro.DM.Endpoints.Transmitters; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.DM; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class DmTxControllerApiExtensions - { - public static void LinkToApi(this DmTxControllerBase tx, BasicTriList trilist, uint joinStart, string joinMapKey) - { - DmTxControllerJoinMap joinMap = new DmTxControllerJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, tx, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - tx.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); - tx.AnyVideoInput.VideoStatus.VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.VideoSyncStatus]); - tx.AnyVideoInput.VideoStatus.VideoResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.CurrentInputResolution]); - trilist.UShortInput[joinMap.HdcpSupportCapability].UShortValue = (ushort)tx.HdcpSupportCapability; - - bool hdcpTypeSimple; - - if (tx.Hardware is DmTx4kX02CBase || tx.Hardware is DmTx4kzX02CBase) - hdcpTypeSimple = false; - else - hdcpTypeSimple = true; - - if (tx is ITxRouting) - { - var txR = tx as ITxRouting; - - trilist.SetUShortSigAction(joinMap.VideoInput, - new Action(i => txR.ExecuteNumericSwitch(i, 0, eRoutingSignalType.Video))); - trilist.SetUShortSigAction(joinMap.AudioInput, - new Action(i => txR.ExecuteNumericSwitch(i, 0, eRoutingSignalType.Audio))); - - txR.VideoSourceNumericFeedback.LinkInputSig(trilist.UShortInput[joinMap.VideoInput]); - txR.AudioSourceNumericFeedback.LinkInputSig(trilist.UShortInput[joinMap.AudioInput]); - - trilist.UShortInput[joinMap.HdcpSupportCapability].UShortValue = (ushort)tx.HdcpSupportCapability; - - if (txR.InputPorts[DmPortName.HdmiIn] != null) - { - var inputPort = txR.InputPorts[DmPortName.HdmiIn]; - - if (tx.Feedbacks["HdmiInHdcpCapability"] != null) - (tx.Feedbacks["HdmiInHdcpCapability"] as IntFeedback).LinkInputSig(trilist.UShortInput[joinMap.Port1HdcpState]); - - if (inputPort.ConnectionType == eRoutingPortConnectionType.Hdmi && inputPort.Port != null) - { - var port = inputPort.Port as EndpointHdmiInput; - - SetHdcpCapabilityAction(hdcpTypeSimple, port, joinMap.Port1HdcpState, trilist); - } - } - - if (txR.InputPorts[DmPortName.HdmiIn1] != null) - { - var inputPort = txR.InputPorts[DmPortName.HdmiIn1]; - - if (tx.Feedbacks["HdmiIn1HdcpCapability"] != null) - (tx.Feedbacks["HdmiIn1HdcpCapability"] as IntFeedback).LinkInputSig(trilist.UShortInput[joinMap.Port1HdcpState]); - - if (inputPort.ConnectionType == eRoutingPortConnectionType.Hdmi && inputPort.Port != null) - { - var port = inputPort.Port as EndpointHdmiInput; - - SetHdcpCapabilityAction(hdcpTypeSimple, port, joinMap.Port1HdcpState, trilist); - } - } - - if (txR.InputPorts[DmPortName.HdmiIn2] != null) - { - var inputPort = txR.InputPorts[DmPortName.HdmiIn2]; - - if (tx.Feedbacks["HdmiIn2HdcpCapability"] != null) - (tx.Feedbacks["HdmiIn2HdcpCapability"] as IntFeedback).LinkInputSig(trilist.UShortInput[joinMap.Port1HdcpState]); - - if (inputPort.ConnectionType == eRoutingPortConnectionType.Hdmi && inputPort.Port != null) - { - var port = inputPort.Port as EndpointHdmiInput; - - SetHdcpCapabilityAction(hdcpTypeSimple, port, joinMap.Port2HdcpState, trilist); - } - } - - } - - var txFreeRun = tx as IHasFreeRun; - if (txFreeRun != null) - { - txFreeRun.FreeRunEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.FreeRunEnabled]); - trilist.SetBoolSigAction(joinMap.FreeRunEnabled, new Action(b => txFreeRun.SetFreeRunEnabled(b))); - } - - var txVga = tx as IVgaBrightnessContrastControls; - { - txVga.VgaBrightnessFeedback.LinkInputSig(trilist.UShortInput[joinMap.VgaBrightness]); - txVga.VgaContrastFeedback.LinkInputSig(trilist.UShortInput[joinMap.VgaContrast]); - - trilist.SetUShortSigAction(joinMap.VgaBrightness, new Action(u => txVga.SetVgaBrightness(u))); - trilist.SetUShortSigAction(joinMap.VgaContrast, new Action(u => txVga.SetVgaContrast(u))); - } - } - - static void SetHdcpCapabilityAction(bool hdcpTypeSimple, EndpointHdmiInput port, uint join, BasicTriList trilist) - { - if (hdcpTypeSimple) - { - trilist.SetUShortSigAction(join, - new Action(s => - { - if (s == 0) - { - port.HdcpSupportOff(); - } - else if (s > 0) - { - port.HdcpSupportOn(); - } - })); - } - else - { - trilist.SetUShortSigAction(join, - new Action(s => - { - port.HdcpCapability = (eHdcpCapabilityType)s; - })); - } - } - - - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/DmpsAudioOutputControllerBridge.cs b/PepperDashEssentials/Bridges/DmpsAudioOutputControllerBridge.cs deleted file mode 100644 index eec058da..00000000 --- a/PepperDashEssentials/Bridges/DmpsAudioOutputControllerBridge.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.DM; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.DM; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class DmpsAudioOutputControllerApiExtensions - { - public static void LinkToApi(this DmpsAudioOutputController dmAudioOutputController, BasicTriList trilist, uint joinStart, string joinMapKey) - { - DmpsAudioOutputControllerJoinMap joinMap = new DmpsAudioOutputControllerJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, dmAudioOutputController, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - if (dmAudioOutputController.MasterVolumeLevel != null) - { - SetUpDmpsAudioOutputJoins(trilist, dmAudioOutputController.MasterVolumeLevel, joinMap.MasterVolume); - } - - if (dmAudioOutputController.SourceVolumeLevel != null) - { - SetUpDmpsAudioOutputJoins(trilist, dmAudioOutputController.SourceVolumeLevel, joinMap.SourceVolume); - } - - if (dmAudioOutputController.Codec1VolumeLevel != null) - { - SetUpDmpsAudioOutputJoins(trilist, dmAudioOutputController.Codec1VolumeLevel, joinMap.Codec1Volume); - } - - if (dmAudioOutputController.Codec2VolumeLevel != null) - { - SetUpDmpsAudioOutputJoins(trilist, dmAudioOutputController.Codec2VolumeLevel, joinMap.Codec2Volume); - } - - } - - static void SetUpDmpsAudioOutputJoins(BasicTriList trilist, DmpsAudioOutput output, uint joinStart) - { - var volumeLevelJoin = joinStart; - var muteOnJoin = joinStart; - var muteOffJoin = joinStart + 1; - var volumeUpJoin = joinStart + 2; - var volumeDownJoin = joinStart + 3; - - - trilist.SetUShortSigAction(volumeLevelJoin, new Action(o => output.SetVolume(o))); - output.VolumeLevelFeedback.LinkInputSig(trilist.UShortInput[volumeLevelJoin]); - - trilist.SetSigTrueAction(muteOnJoin, new Action(output.MuteOn)); - output.MuteFeedback.LinkInputSig(trilist.BooleanInput[muteOnJoin]); - trilist.SetSigTrueAction(muteOffJoin, new Action(output.MuteOff)); - output.MuteFeedback.LinkComplementInputSig(trilist.BooleanInput[muteOffJoin]); - - trilist.SetBoolSigAction(volumeUpJoin, new Action(b => output.VolumeUp(b))); - trilist.SetBoolSigAction(volumeDownJoin, new Action(b => output.VolumeDown(b))); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/DmpsRoutingControllerBridge.cs b/PepperDashEssentials/Bridges/DmpsRoutingControllerBridge.cs deleted file mode 100644 index ea775039..00000000 --- a/PepperDashEssentials/Bridges/DmpsRoutingControllerBridge.cs +++ /dev/null @@ -1,128 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.DM; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.DM; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class DmpsRoutingControllerApiExtentions - { - public static void LinkToApi(this DmpsRoutingController dmpsRouter, BasicTriList trilist, uint joinStart, string joinMapKey) - { - DmpsRoutingControllerJoinMap joinMap = new DmpsRoutingControllerJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, dmpsRouter, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - // Link up outputs - for (uint i = 1; i <= dmpsRouter.Dmps.NumberOfSwitcherInputs; i++) - { - Debug.Console(2, dmpsRouter, "Linking Input Card {0}", i); - - var ioSlot = i; - - //if (dmpsRouter.TxDictionary.ContainsKey(ioSlot)) - //{ - // Debug.Console(2, "Creating Tx Feedbacks {0}", ioSlot); - // var TxKey = dmpsRouter.TxDictionary[ioSlot]; - // var TxDevice = DeviceManager.GetDeviceForKey(TxKey) as DmTxControllerBase; - // //TxDevice.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.InputEndpointOnline + ioSlot]); - // // TxDevice.AnyVideoInput.VideoStatus.VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.InputEndpointOnline + ioSlot]); - // // trilist.SetUShortSigAction((ApiMap.HdcpSupport[ioSlot]), u => TxDevice.SetHdcpSupportAll((ePdtHdcpSupport)(u))); - // // TxDevice.HdcpSupportAllFeedback.LinkInputSig(trilist.UShortInput[joinMap. + ioSlot]); - // // trilist.UShortInput[ApiMap.HdcpSupportCapability[ioSlot]].UShortValue = TxDevice.HdcpSupportCapability; - //} - //else - //{ - // // dmChassis.VideoInputSyncFeedbacks[ioSlot].LinkInputSig(trilist.BooleanInput[ApiMap.TxVideoSyncStatus[ioSlot]]); - //} - - if(dmpsRouter.VideoInputSyncFeedbacks[ioSlot] != null) - dmpsRouter.VideoInputSyncFeedbacks[ioSlot].LinkInputSig(trilist.BooleanInput[joinMap.VideoSyncStatus + ioSlot]); - - if (dmpsRouter.InputNameFeedbacks[ioSlot] != null) - dmpsRouter.InputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.InputNames + ioSlot]); - - trilist.SetStringSigAction(joinMap.InputNames + ioSlot, new Action(s => - { - var inputCard = dmpsRouter.Dmps.SwitcherInputs[ioSlot] as DMInput; - - if (inputCard != null) - { - if (inputCard.NameFeedback != null && !string.IsNullOrEmpty(inputCard.NameFeedback.StringValue) && inputCard.NameFeedback.StringValue != s) - if(inputCard.Name != null) - inputCard.Name.StringValue = s; - } - })); - - - if(dmpsRouter.InputEndpointOnlineFeedbacks[ioSlot] != null) - dmpsRouter.InputEndpointOnlineFeedbacks[ioSlot].LinkInputSig(trilist.BooleanInput[joinMap.InputEndpointOnline + ioSlot]); - } - - for (uint i = 1; i <= dmpsRouter.Dmps.NumberOfSwitcherOutputs; i++) - { - Debug.Console(2, dmpsRouter, "Linking Output Card {0}", i); - - var ioSlot = i; - // Control - trilist.SetUShortSigAction(joinMap.OutputVideo + ioSlot, new Action(o => dmpsRouter.ExecuteSwitch(o, ioSlot, eRoutingSignalType.Video))); - trilist.SetUShortSigAction(joinMap.OutputAudio + ioSlot, new Action(o => dmpsRouter.ExecuteSwitch(o, ioSlot, eRoutingSignalType.Audio))); - - trilist.SetStringSigAction(joinMap.OutputNames + ioSlot, new Action(s => - { - var outputCard = dmpsRouter.Dmps.SwitcherOutputs[ioSlot] as DMOutput; - - //Debug.Console(2, dmpsRouter, "Output Name String Sig Action for Output Card {0}", ioSlot); - - if (outputCard != null) - { - //Debug.Console(2, dmpsRouter, "Card Type: {0}", outputCard.CardInputOutputType); - - if (!(outputCard is Crestron.SimplSharpPro.DM.Cards.Card.Dmps3CodecOutput) && outputCard.NameFeedback != null) - { - if (!string.IsNullOrEmpty(outputCard.NameFeedback.StringValue)) - { - //Debug.Console(2, dmpsRouter, "NameFeedabck: {0}", outputCard.NameFeedback.StringValue); - - if (outputCard.NameFeedback.StringValue != s && outputCard.Name != null) - { - outputCard.Name.StringValue = s; - } - } - } - } - })); - - // Feedback - if(dmpsRouter.VideoOutputFeedbacks[ioSlot] != null) - dmpsRouter.VideoOutputFeedbacks[ioSlot].LinkInputSig(trilist.UShortInput[joinMap.OutputVideo + ioSlot]); - if (dmpsRouter.AudioOutputFeedbacks[ioSlot] != null) - dmpsRouter.AudioOutputFeedbacks[ioSlot].LinkInputSig(trilist.UShortInput[joinMap.OutputAudio + ioSlot]); - if (dmpsRouter.OutputNameFeedbacks[ioSlot] != null) - dmpsRouter.OutputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.OutputNames + ioSlot]); - if (dmpsRouter.OutputVideoRouteNameFeedbacks[ioSlot] != null) - dmpsRouter.OutputVideoRouteNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.OutputCurrentVideoInputNames + ioSlot]); - if (dmpsRouter.OutputAudioRouteNameFeedbacks[ioSlot] != null) - dmpsRouter.OutputAudioRouteNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.OutputCurrentAudioInputNames + ioSlot]); - if (dmpsRouter.OutputEndpointOnlineFeedbacks[ioSlot] != null) - dmpsRouter.OutputEndpointOnlineFeedbacks[ioSlot].LinkInputSig(trilist.BooleanInput[joinMap.OutputEndpointOnline + ioSlot]); - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/DspControllerBridge.cs b/PepperDashEssentials/Bridges/DspControllerBridge.cs deleted file mode 100644 index 9dd018fb..00000000 --- a/PepperDashEssentials/Bridges/DspControllerBridge.cs +++ /dev/null @@ -1,120 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Devices.Common; - -namespace PepperDash.Essentials.Bridges -{ - public static class SamsungDisplayControllerApiExtensions - { - public static void LinkToApi(this PepperDash.Essentials.Core.TwoWayDisplayBase displayDevice, BasicTriList trilist, uint joinStart, string joinMapKey) - { - var joinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as DisplayControllerJoinMap; - - if (joinMap == null) - { - joinMap = new DisplayControllerJoinMap(); - } - - joinMap.OffsetJoinNumbers(joinStart); - Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - Debug.Console(0, "Linking to lighting Type {0}", displayDevice.GetType().Name.ToString()); - - var commMonitor = displayDevice as ICommunicationMonitor; - commMonitor.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); - - - // Poewer Off - trilist.SetSigTrueAction(joinMap.PowerOff, () => displayDevice.PowerOff()); - displayDevice.PowerIsOnFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.PowerOff]); - - // Poewer On - trilist.SetSigTrueAction(joinMap.PowerOn, () => displayDevice.PowerOn()); - displayDevice.PowerIsOnFeedback.LinkInputSig(trilist.BooleanInput[joinMap.PowerOn]); - - // GenericLighitng Actions & FeedBack - - // int sceneIndex = 1; - /* - foreach (var scene in displayDevice.LightingScenes) - { - var tempIndex = sceneIndex - 1; - //trilist.SetSigTrueAction((uint)(joinMap.LightingSceneOffset + sceneIndex), () => displayDevice.SelectScene(displayDevice.LightingScenes[tempIndex])); - scene.IsActiveFeedback.LinkInputSig(trilist.BooleanInput[(uint)(joinMap.LightingSceneOffset + sceneIndex)]); - trilist.StringInput[(uint)(joinMap.LightingSceneOffset + sceneIndex)].StringValue = scene.Name; - trilist.BooleanInput[(uint)(joinMap.ButtonVisibilityOffset + sceneIndex)].BoolValue = true; - sceneIndex++; - } - - if (displayDevice.GetType().Name.ToString() == "LutronQuantumArea") - { - var lutronDevice = displayDevice as PepperDash.Essentials.Devices.Common.Environment.Lutron.LutronQuantumArea; - lutronDevice.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); - trilist.SetStringSigAction(joinMap.IntegrationIdSet, s => lutronDevice.IntegrationId = s); - } - */ - //ApiEisc.Eisc.SetStringSigAction(ApiMap.integrationID, (s) => { lutronLights.IntegrationId = s; }); - - - /* - var lutronLights = displayDevice as PepperDash.Essentials.Devices.Common.Environment.Lutron.LutronQuantumArea; - - - for (uint i = 1; i <= lightingBase.CircuitCount; i++) - { - var circuit = i; - lightingBase.CircuitNameFeedbacks[circuit - 1].LinkInputSig(trilist.StringInput[joinMap.CircuitNames + circuit]); - lightingBase.CircuitIsCritical[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitIsCritical + circuit]); - lightingBase.CircuitState[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitState + circuit]); - trilist.SetSigTrueAction(joinMap.CircuitCycle + circuit, () => lightingBase.CycleCircuit(circuit - 1)); - trilist.SetSigTrueAction(joinMap.CircuitOnCmd + circuit, () => lightingBase.TurnOnCircuit(circuit - 1)); - trilist.SetSigTrueAction(joinMap.CircuitOffCmd + circuit, () => lightingBase.TurnOffCircuit(circuit - 1)); - - } - */ - } - } - public class DisplayControllerJoinMap : JoinMapBase - { - public uint IsOnline { get; set; } - public uint PowerOff { get; set; } - public uint PowerOn { get; set; } - public uint SelectScene { get; set; } - public uint LightingSceneOffset { get; set; } - public uint ButtonVisibilityOffset { get; set; } - public uint IntegrationIdSet { get; set; } - - public DisplayControllerJoinMap() - { - // Digital - IsOnline = 1; - PowerOff = 1; - PowerOn = 2; - SelectScene = 1; - IntegrationIdSet = 1; - LightingSceneOffset = 10; - ButtonVisibilityOffset = 40; - // Analog - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - IsOnline = IsOnline + joinOffset; - PowerOff = PowerOff + joinOffset; - PowerOn = PowerOn + joinOffset; - SelectScene = SelectScene + joinOffset; - LightingSceneOffset = LightingSceneOffset + joinOffset; - ButtonVisibilityOffset = ButtonVisibilityOffset + joinOffset; - - - - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/EiscBridge.cs b/PepperDashEssentials/Bridges/EiscBridge.cs deleted file mode 100644 index c768924b..00000000 --- a/PepperDashEssentials/Bridges/EiscBridge.cs +++ /dev/null @@ -1,196 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharp.Reflection; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.EthernetCommunication; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Bridges; -using PepperDash.Essentials.Core.Config; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use 'eiscapiadvanced' in configurations going forward")] - public class EiscApi : BridgeApi - { - public EiscApiPropertiesConfig PropertiesConfig { get; private set; } - - public ThreeSeriesTcpIpEthernetIntersystemCommunications Eisc { get; private set; } - - public EiscApi(DeviceConfig dc) : - base(dc.Key) - { - PropertiesConfig = dc.Properties.ToObject(); - //PropertiesConfig = JsonConvert.DeserializeObject(dc.Properties.ToString()); - - Eisc = new ThreeSeriesTcpIpEthernetIntersystemCommunications(PropertiesConfig.Control.IpIdInt, PropertiesConfig.Control.TcpSshProperties.Address, Global.ControlSystem); - - Eisc.SigChange += Eisc_SigChange; - - AddPostActivationAction(() => - { - Debug.Console(1, this, "Linking Devices..."); - - foreach (var d in PropertiesConfig.Devices) - { - var device = DeviceManager.GetDeviceForKey(d.DeviceKey); - - if (device == null) continue; - - Debug.Console(1, this, "Linking Device: '{0}'", device.Key); - if (typeof(IBridge).IsAssignableFrom(device.GetType().GetCType())) // Check for this first to allow bridges in plugins to override existing bridges that apply to the same type. - { - Debug.Console(2, this, "'{0}' is IBridge", device.Key); - - var dev = device as IBridge; - - if (dev == null) - { - Debug.Console(0, this, Debug.ErrorLogLevel.Error, "Cast to IBridge failed for {0}"); - continue; - } - - dev.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); - } - if (!typeof(IBridgeAdvanced).IsAssignableFrom(device.GetType().GetCType())) continue; - Debug.Console(2, this, "'{0}' is IBridgeAdvanced", device.Key); - - var advDev = device as IBridgeAdvanced; - - if (advDev == null) - { - Debug.Console(0, this, Debug.ErrorLogLevel.Error, "Cast to IBridgeAdvanced failed for {0}"); - continue; - } - - try - { - advDev.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, null); - } - catch (NullReferenceException) - { - Debug.ConsoleWithLog(0, this, - "Please update the bridge config to use eiscApiAdvanced with this device: {0}", device.Key); - } - } - Debug.Console(1, this, "Devices Linked."); - - var registerResult = Eisc.Register(); - - if (registerResult != eDeviceRegistrationUnRegistrationResponse.Success) - { - Debug.Console(2, this, Debug.ErrorLogLevel.Error, "Registration result: {0}", registerResult); - return; - } - - Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "EISC registration successful"); - }); - } - - /// - /// Used for debugging to trigger an action based on a join number and type - /// - /// - /// - /// - public void ExecuteJoinAction(uint join, string type, object state) - { - try - { - switch (type.ToLower()) - { - case "digital": - { - var uo = Eisc.BooleanOutput[join].UserObject as Action; - if (uo != null) - { - Debug.Console(1, this, "Executing Action: {0}", uo.ToString()); - uo(Convert.ToBoolean(state)); - } - else - Debug.Console(1, this, "User Action is null. Nothing to Execute"); - break; - } - case "analog": - { - var uo = Eisc.BooleanOutput[join].UserObject as Action; - if (uo != null) - { - Debug.Console(1, this, "Executing Action: {0}", uo.ToString()); - uo(Convert.ToUInt16(state)); - } - else - Debug.Console(1, this, "User Action is null. Nothing to Execute"); break; - } - case "serial": - { - var uo = Eisc.BooleanOutput[join].UserObject as Action; - if (uo != null) - { - Debug.Console(1, this, "Executing Action: {0}", uo.ToString()); - uo(Convert.ToString(state)); - } - else - Debug.Console(1, this, "User Action is null. Nothing to Execute"); - break; - } - default: - { - Debug.Console(1, "Unknown join type. Use digital/serial/analog"); - break; - } - } - } - catch (Exception e) - { - Debug.Console(1, this, "Error: {0}", e); - } - - } - - /// - /// Handles incoming sig changes - /// - /// - /// - void Eisc_SigChange(object currentDevice, SigEventArgs args) - { - try - { - if (Debug.Level >= 1) - Debug.Console(2, this, "EiscApi change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue); - var uo = args.Sig.UserObject; - - if (uo == null) return; - - Debug.Console(2, this, "Executing Action: {0}", uo.ToString()); - if (uo is Action) - (uo as Action)(args.Sig.BoolValue); - else if (uo is Action) - (uo as Action)(args.Sig.UShortValue); - else if (uo is Action) - (uo as Action)(args.Sig.StringValue); - } - catch (Exception e) - { - Debug.Console(2, this, "Error in Eisc_SigChange handler: {0}", e); - } - } - } - - public class EiscApiFactory : EssentialsDeviceFactory - { - public EiscApiFactory() - { - TypeNames = new List() { "eiscapi" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new EiscApi Device"); - - return new EiscApi(dc); - } - } - -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/EssentialComms.cs b/PepperDashEssentials/Bridges/EssentialComms.cs deleted file mode 100644 index 461715fc..00000000 --- a/PepperDashEssentials/Bridges/EssentialComms.cs +++ /dev/null @@ -1,144 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Core; -using PepperDash.Essentials.Core.Routing; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.EthernetCommunication; -using Crestron.SimplSharpPro.CrestronThread; - -namespace PepperDash.Essentials { - public class EssentialCommConfig { - public string[] EiscApiIpids; - public EssentialCommCommConnectionConfigs[] CommConnections; - } - public class EssentialCommCommConnectionConfigs { - public uint joinNumber {get; set; } - public EssentialsControlPropertiesConfig control { get; set; } - } - - public class EssentialCommsPort { - public IBasicCommunication Comm; - public IntFeedback StatusFeedback; - public BoolFeedback ConnectedFeedback; - public List Outputs = new List(); - public String RxBuffer; - public EssentialCommsPort(EssentialsControlPropertiesConfig config, string keyPrefix) { - Comm = CommFactory.CreateCommForConfig(config, keyPrefix); - // var PortGather = new CommunicationGather(Comm, config.EndOfLineChar); - Comm.TextReceived += new EventHandler(Communication_TextReceived); - - var socket = Comm as ISocketStatus; - StatusFeedback = new IntFeedback(() => { return (int)socket.ClientStatus; }); - ConnectedFeedback = new BoolFeedback(() => { return Comm.IsConnected; }); - - if (socket != null) { - socket.ConnectionChange += new EventHandler(socket_ConnectionChange); - } else { - } - - } - void socket_ConnectionChange(object sender, GenericSocketStatusChageEventArgs e) { - StatusFeedback.FireUpdate(); - ConnectedFeedback.FireUpdate(); - if (e.Client.IsConnected) { - // Tasks on connect - } else { - // Cleanup items from this session - } - } - void Communication_TextReceived(object sender, GenericCommMethodReceiveTextArgs args) { - try { - foreach (var Output in Outputs) { - Output.Api.Eisc.StringInput[Output.Join].StringValue = args.Text; - } - - } - catch (Exception) { - throw new FormatException(string.Format("ERROR:{0}")); - } - } - } - - public class EssentialComm : Device { - public EssentialCommConfig Properties; - - public CommunicationGather PortGather { get; private set; } - public List Apis {get; set;} - public Dictionary CommFeedbacks {get; private set; } - public StatusMonitorBase CommunicationMonitor { get; private set; } - public Dictionary CommDictionary { get; private set; } - - public EssentialComm(string key, string name, JToken properties) : base(key, name) { - Properties = JsonConvert.DeserializeObject(properties.ToString()); - CommFeedbacks = new Dictionary(); - CommDictionary = new Dictionary(); - Apis = new List(); - int commNumber = 1; - foreach (var commConfig in Properties.CommConnections) { - var commPort = new EssentialCommsPort(commConfig.control, string.Format("{0}-{1}", this.Key, commConfig.joinNumber)); - CommDictionary.Add(commConfig.joinNumber, commPort); - - commNumber++; - } - - foreach (var Ipid in Properties.EiscApiIpids) { - var ApiEisc = new BridgeApiEisc(Ipid); - Apis.Add(ApiEisc); - foreach (var commConnection in CommDictionary) { - Debug.Console(2, "Joining Api{0} to comm {1}", Ipid, commConnection.Key); - var tempComm = commConnection.Value; - var tempJoin = (uint)commConnection.Key; - EssentialComApiMap ApiMap = new EssentialComApiMap(ApiEisc, (uint)tempJoin); - - tempComm.Outputs.Add(ApiMap); - // Check for ApiMap Overide Values here - - ApiEisc.Eisc.SetBoolSigAction(tempJoin, b => {if (b) { tempComm.Comm.Connect(); } else { tempComm.Comm.Disconnect(); }}); - ApiEisc.Eisc.SetStringSigAction(tempJoin, s => tempComm.Comm.SendText(s)); - - tempComm.StatusFeedback.LinkInputSig(ApiEisc.Eisc.UShortInput[tempJoin]); - tempComm.ConnectedFeedback.LinkInputSig(ApiEisc.Eisc.BooleanInput[tempJoin]); - - - - } - ApiEisc.Eisc.Register(); - } - } - - - - public override bool CustomActivate() - { - try { - - - - Debug.Console(2, "Name {0} Activated", this.Name); - return true; - } - catch (Exception e) { - Debug.Console(0, "Bridge {0}", e); - return false; - } - } - - - } - public class EssentialComApiMap { - public uint Join; - public BridgeApiEisc Api; - public uint connectJoin; - public EssentialComApiMap(BridgeApiEisc api, uint join) { - Join = join; - Api = api; - } - } - } \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/EssentialDM.cs b/PepperDashEssentials/Bridges/EssentialDM.cs deleted file mode 100644 index f03f174b..00000000 --- a/PepperDashEssentials/Bridges/EssentialDM.cs +++ /dev/null @@ -1,150 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.DM; -using PepperDash.Core; -using PepperDash.Essentials.Core.Routing; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.EthernetCommunication; -using Crestron.SimplSharpPro.DM; - -namespace PepperDash.Essentials { - public class EssentialDM : PepperDash.Core.Device { - public EssentialDMProperties Properties; - public List BridgeApiEiscs; - private PepperDash.Essentials.DM.DmChassisController DmSwitch; - private EssentialDMApiMap ApiMap = new EssentialDMApiMap(); - public EssentialDM(string key, string name, JToken properties) - : base(key, name) { - Properties = JsonConvert.DeserializeObject(properties.ToString()); - - - } - public override bool CustomActivate() { - // Create EiscApis - try { - foreach (var device in DeviceManager.AllDevices) { - if (device.Key == this.Properties.connectionDeviceKey) { - Debug.Console(2, "deviceKey {0} Matches", device.Key); - DmSwitch = DeviceManager.GetDeviceForKey(device.Key) as PepperDash.Essentials.DM.DmChassisController; - - } - - - else { - Debug.Console(2, "deviceKey {0} doesn't match", device.Key); - } - } - if (Properties.EiscApiIpids != null) { - - - foreach (string Ipid in Properties.EiscApiIpids) { - var ApiEisc = new BridgeApiEisc(Ipid); - for (uint x = 1; x <= DmSwitch.Chassis.NumberOfInputs;x++ ) { - uint tempX = x; - Debug.Console(2, "Creating EiscActions {0}", tempX); - - - ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputVideoRoutes[tempX], u => DmSwitch.ExecuteSwitch(u, tempX, eRoutingSignalType.Video)); - ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputAudioRoutes[tempX], u => DmSwitch.ExecuteSwitch(u, tempX, eRoutingSignalType.Audio)); - - - if (DmSwitch.TxDictionary.ContainsKey(tempX)) { - Debug.Console(2, "Creating Tx Feedbacks {0}", tempX); - var TxKey = DmSwitch.TxDictionary[tempX]; - var TxDevice = DeviceManager.GetDeviceForKey(TxKey) as DmTxControllerBase; - TxDevice.IsOnline.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.TxOnlineStatus[tempX]]); - TxDevice.AnyVideoInput.VideoStatus.VideoSyncFeedback.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.TxVideoSyncStatus[tempX]]); - ApiEisc.Eisc.SetUShortSigAction((ApiMap.HdcpSupport[tempX]), u => TxDevice.SetHdcpSupportAll((ePdtHdcpSupport)(u))); - TxDevice.HdcpSupportAllFeedback.LinkInputSig(ApiEisc.Eisc.UShortInput[ApiMap.HdcpSupport[tempX]]); - ApiEisc.Eisc.UShortInput[ApiMap.HdcpSupportCapability[tempX]].UShortValue = TxDevice.HdcpSupportCapability; - } - else { - DmSwitch.VideoInputSyncFeedbacks[tempX].LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.TxVideoSyncStatus[tempX]]); - } - if (DmSwitch.RxDictionary.ContainsKey(tempX)) { - Debug.Console(2, "Creating Rx Feedbacks {0}", tempX); - var RxKey = DmSwitch.RxDictionary[tempX]; - var RxDevice = DeviceManager.GetDeviceForKey(RxKey) as DmRmcControllerBase; - RxDevice.IsOnline.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.RxOnlineStatus[tempX]]); - } - // DmSwitch.InputEndpointOnlineFeedbacks[(ushort)tempOutputNum].LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.OutputVideoRoutes[tempOutputNum]]); - DmSwitch.VideoOutputFeedbacks[(ushort)tempX].LinkInputSig(ApiEisc.Eisc.UShortInput[ApiMap.OutputVideoRoutes[tempX]]); - DmSwitch.AudioOutputFeedbacks[(ushort)tempX].LinkInputSig(ApiEisc.Eisc.UShortInput[ApiMap.OutputAudioRoutes[tempX]]); - DmSwitch.InputNameFeedbacks[(ushort)tempX].LinkInputSig(ApiEisc.Eisc.StringInput[ApiMap.InputNames[tempX]]); - DmSwitch.OutputNameFeedbacks[(ushort)tempX].LinkInputSig(ApiEisc.Eisc.StringInput[ApiMap.OutputNames[tempX]]); - DmSwitch.OutputRouteNameFeedbacks[(ushort)tempX].LinkInputSig(ApiEisc.Eisc.StringInput[ApiMap.OutputRouteNames[tempX]]); - } - DmSwitch.IsOnline.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.ChassisOnline]); - ApiEisc.Eisc.Register(); - } - } - - - - Debug.Console(2, "Name {0} Activated", this.Name); - return true; - } - catch (Exception e) { - Debug.Console(2, "BRidge {0}", e); - return false; - } - } - } - public class EssentialDMProperties { - public string connectionDeviceKey; - public string[] EiscApiIpids; - - - } - - - public class EssentialDMApiMap { - public ushort ChassisOnline = 11; - public Dictionary OutputVideoRoutes; - public Dictionary OutputAudioRoutes; - public Dictionary TxOnlineStatus; - public Dictionary RxOnlineStatus; - public Dictionary TxVideoSyncStatus; - public Dictionary InputNames; - public Dictionary OutputNames; - public Dictionary OutputRouteNames; - public Dictionary HdcpSupport; - public Dictionary HdcpSupportCapability; - - public EssentialDMApiMap() { - OutputVideoRoutes = new Dictionary(); - OutputAudioRoutes = new Dictionary(); - TxOnlineStatus = new Dictionary(); - RxOnlineStatus = new Dictionary(); - TxVideoSyncStatus = new Dictionary(); - InputNames = new Dictionary(); - OutputNames = new Dictionary(); - OutputRouteNames = new Dictionary(); - HdcpSupport = new Dictionary(); - HdcpSupportCapability = new Dictionary(); - - for (uint x = 1; x <= 200; x++) { - // Debug.Console(0, "Init Value {0}", x); - uint tempNum = x; - HdcpSupportCapability[tempNum] = (ushort)(tempNum + 1200); - HdcpSupport[tempNum] = (ushort)(tempNum + 1000); - OutputVideoRoutes[tempNum] = (ushort)(tempNum + 100); - OutputAudioRoutes[tempNum] = (ushort)(tempNum + 300); - TxOnlineStatus[tempNum] = (ushort)(tempNum + 500); - RxOnlineStatus[tempNum] = (ushort)(tempNum + 700); - TxVideoSyncStatus[tempNum] = (ushort)(tempNum + 100); - InputNames[tempNum] = (ushort)(tempNum + 100); - OutputNames[tempNum] = (ushort)(tempNum + 300); - OutputRouteNames[tempNum] = (ushort)(tempNum + 2000); - } - } - } - } - \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/EssentialDsp.cs b/PepperDashEssentials/Bridges/EssentialDsp.cs deleted file mode 100644 index d8aed442..00000000 --- a/PepperDashEssentials/Bridges/EssentialDsp.cs +++ /dev/null @@ -1,217 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.DM; -using PepperDash.Core; -using PepperDash.Essentials.Core.Routing; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.EthernetCommunication; -using Crestron.SimplSharpPro.DM; - -namespace PepperDash.Essentials { - public class EssentialDsp : PepperDash.Core.Device { - public EssentialDspProperties Properties; - public List BridgeApiEiscs; - private PepperDash.Essentials.Devices.Common.DSP.QscDsp Dsp; - private EssentialDspApiMap ApiMap = new EssentialDspApiMap(); - public EssentialDsp(string key, string name, JToken properties) - : base(key, name) { - Properties = JsonConvert.DeserializeObject(properties.ToString()); - - - } - public override bool CustomActivate() { - // Create EiscApis - - try - { - ICommunicationMonitor comm = null; - foreach (var device in DeviceManager.AllDevices) - { - if (device.Key == this.Properties.connectionDeviceKey) - { - if (!(device is ICommunicationMonitor)) - { - comm = device as ICommunicationMonitor; - } - Debug.Console(2, "deviceKey {0} Matches", device.Key); - Dsp = DeviceManager.GetDeviceForKey(device.Key) as PepperDash.Essentials.Devices.Common.DSP.QscDsp; - break; - } - else - { - Debug.Console(2, "deviceKey {0} doesn't match", device.Key); - - } - } - if (Properties.EiscApiIpids != null && Dsp != null) - { - foreach (string Ipid in Properties.EiscApiIpids) - { - var ApiEisc = new BridgeApiEisc(Ipid); - Debug.Console(2, "Connecting EiscApi {0} to {1}", ApiEisc.Ipid, Dsp.Name); - ushort x = 1; - if (comm != null) - { - comm.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.Online]); - } - foreach (var channel in Dsp.LevelControlPoints) - { - //var QscChannel = channel.Value as PepperDash.Essentials.Devices.Common.DSP.QscDspLevelControl; - Debug.Console(2, "QscChannel {0} connect", x); - - var genericChannel = channel.Value as IBasicVolumeWithFeedback; - if (channel.Value.Enabled) - { - ApiEisc.Eisc.StringInput[ApiMap.channelName[x]].StringValue = channel.Value.LevelCustomName; - ApiEisc.Eisc.UShortInput[ApiMap.channelType[x]].UShortValue = (ushort)channel.Value.Type; - - genericChannel.MuteFeedback.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.channelMuteToggle[x]]); - genericChannel.VolumeLevelFeedback.LinkInputSig(ApiEisc.Eisc.UShortInput[ApiMap.channelVolume[x]]); - - ApiEisc.Eisc.SetSigTrueAction(ApiMap.channelMuteToggle[x], () => genericChannel.MuteToggle()); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.channelMuteOn[x], () => genericChannel.MuteOn()); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.channelMuteOff[x], () => genericChannel.MuteOff()); - - ApiEisc.Eisc.SetBoolSigAction(ApiMap.channelVolumeUp[x], b => genericChannel.VolumeUp(b)); - ApiEisc.Eisc.SetBoolSigAction(ApiMap.channelVolumeDown[x], b => genericChannel.VolumeDown(b)); - - ApiEisc.Eisc.SetUShortSigAction(ApiMap.channelVolume[x], u => genericChannel.SetVolume(u)); - ApiEisc.Eisc.SetStringSigAction(ApiMap.presetString, s => Dsp.RunPreset(s)); - } - x++; - - } - x = 1; - foreach (var preset in Dsp.PresetList) - { - ApiEisc.Eisc.StringInput[ApiMap.presets[x]].StringValue = preset.label; - ApiEisc.Eisc.SetSigTrueAction(ApiMap.presets[x], () => Dsp.RunPresetNumber(x)); - x++; - } - foreach (var dialer in Dsp.Dialers) - { - ApiEisc.Eisc.SetSigTrueAction(ApiMap.Keypad0, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Num0)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.Keypad1, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Num1)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.Keypad2, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Num2)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.Keypad3, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Num3)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.Keypad4, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Num4)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.Keypad5, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Num5)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.Keypad6, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Num6)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.Keypad7, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Num7)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.Keypad8, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Num8)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.Keypad9, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Num9)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.KeypadStar, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Star)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.KeypadPound, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Pound)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.KeypadClear, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Clear)); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.KeypadBackspace, () => dialer.Value.SendKeypad(PepperDash.Essentials.Devices.Common.DSP.QscDspDialer.eKeypadKeys.Backspace)); - - ApiEisc.Eisc.SetSigTrueAction(ApiMap.Dial, () => dialer.Value.Dial()); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.DoNotDisturbToggle, () => dialer.Value.DoNotDisturbToggle()); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.DoNotDisturbOn, () => dialer.Value.DoNotDisturbOn()); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.DoNotDisturbOff, () => dialer.Value.DoNotDisturbOff()); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.AutoAnswerToggle, () => dialer.Value.AutoAnswerToggle()); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.AutoAnswerOn, () => dialer.Value.AutoAnswerOn()); - ApiEisc.Eisc.SetSigTrueAction(ApiMap.AutoAnswerOff, () => dialer.Value.AutoAnswerOff()); - - dialer.Value.DoNotDisturbFeedback.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.DoNotDisturbToggle]); - dialer.Value.DoNotDisturbFeedback.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.DoNotDisturbOn]); - dialer.Value.DoNotDisturbFeedback.LinkComplementInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.DoNotDisturbOff]); - - dialer.Value.AutoAnswerFeedback.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.AutoAnswerToggle]); - dialer.Value.AutoAnswerFeedback.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.AutoAnswerOn]); - dialer.Value.AutoAnswerFeedback.LinkComplementInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.AutoAnswerOff]); - - dialer.Value.OffHookFeedback.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.Dial]); - dialer.Value.DialStringFeedback.LinkInputSig(ApiEisc.Eisc.StringInput[ApiMap.DialString]); - } - } - } - - - - - Debug.Console(2, "Name {0} Activated", this.Name); - return true; - } - catch (Exception e) { - Debug.Console(0, "Bridge {0}", e); - return false; - } - } - } - public class EssentialDspProperties { - public string connectionDeviceKey; - public string[] EiscApiIpids; - - - } - - - public class EssentialDspApiMap { - public ushort Online = 1; - public ushort presetString = 2000; - public Dictionary channelMuteToggle; - public Dictionary channelMuteOn; - public Dictionary channelMuteOff; - public Dictionary channelVolume; - public Dictionary channelType; - public Dictionary channelName; - public Dictionary channelVolumeUp; - public Dictionary channelVolumeDown; - public Dictionary presets; - public ushort DialString = 3100; - public ushort Keypad0 = 3110; - public ushort Keypad1 = 3111; - public ushort Keypad2 = 3112; - public ushort Keypad3 = 3113; - public ushort Keypad4 = 3114; - public ushort Keypad5 = 3115; - public ushort Keypad6 = 3116; - public ushort Keypad7 = 3117; - public ushort Keypad8 = 3118; - public ushort Keypad9 = 3119; - public ushort KeypadStar = 3120; - public ushort KeypadPound = 3121; - public ushort KeypadClear = 3122; - public ushort KeypadBackspace = 3123; - public ushort Dial = 3124; - public ushort DoNotDisturbToggle = 3132; - public ushort DoNotDisturbOn = 3133; - public ushort DoNotDisturbOff = 3134; - public ushort AutoAnswerToggle = 3127; - public ushort AutoAnswerOn = 3125; - public ushort AutoAnswerOff = 3126; - - public EssentialDspApiMap() { - channelMuteToggle = new Dictionary(); - channelMuteOn = new Dictionary(); - channelMuteOff = new Dictionary(); - channelVolume = new Dictionary(); - channelName = new Dictionary(); - channelType = new Dictionary(); - presets = new Dictionary(); - channelVolumeUp = new Dictionary(); - channelVolumeDown = new Dictionary(); - for (uint x = 1; x <= 100; x++) { - uint tempNum = x; - presets[tempNum] = (ushort)(tempNum + 100); - channelMuteToggle[tempNum] = (ushort)(tempNum + 400); - channelMuteOn[tempNum] = (ushort)(tempNum + 600); - channelMuteOff[tempNum] = (ushort)(tempNum + 800); - channelVolume[tempNum] = (ushort)(tempNum + 200); - channelName[tempNum] = (ushort)(tempNum + 200); - channelType[tempNum] = (ushort)(tempNum + 400); - channelVolumeUp[tempNum] = (ushort)(tempNum + 1000); - channelVolumeDown[tempNum] = (ushort)(tempNum + 1200); - } - } - } - } - \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/EssentialTVOne.cs b/PepperDashEssentials/Bridges/EssentialTVOne.cs deleted file mode 100644 index 12fb0c49..00000000 --- a/PepperDashEssentials/Bridges/EssentialTVOne.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.DM; -using PepperDash.Core; -using PepperDash.Essentials.Core.Routing; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.EthernetCommunication; -using Crestron.SimplSharpPro.DM; - -namespace PepperDash.Essentials -{ - public class EssentialsTVOne : PepperDash.Core.Device - { - public EssentialTVOneProperties Properties; - public List BridgeApiEiscs; - private PepperDash.Essentials.Devices.Common.TVOneCorio TVOneCorio; - private EssentialsTVOneApiMap ApiMap = new EssentialsTVOneApiMap(); - public EssentialsTVOne(string key, string name, JToken properties) - : base(key, name) - { - Properties = JsonConvert.DeserializeObject(properties.ToString()); - - - } - public override bool CustomActivate() { - // Create EiscApis - try - { - foreach (var device in DeviceManager.AllDevices) - { - if (device.Key == this.Properties.connectionDeviceKey) - { - Debug.Console(2, "deviceKey {0} Matches", device.Key); - TVOneCorio = DeviceManager.GetDeviceForKey(device.Key) as PepperDash.Essentials.Devices.Common.TVOneCorio; - break; - } - else - { - Debug.Console(2, "deviceKey {0} doesn't match", device.Key); - - } - } - if (Properties.EiscApiIpids != null && TVOneCorio != null) - { - foreach (string Ipid in Properties.EiscApiIpids) - { - var ApiEisc = new BridgeApiEisc(Ipid); - Debug.Console(2, "Connecting EiscApi {0} to {1}", ApiEisc.Ipid, TVOneCorio.Name); - ushort x = 1; - TVOneCorio.OnlineFeedback.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.Online]); - ApiEisc.Eisc.SetUShortSigAction(ApiMap.CallPreset, u => TVOneCorio.CallPreset(u)); - TVOneCorio.PresetFeedback.LinkInputSig(ApiEisc.Eisc.UShortInput[ApiMap.PresetFeedback]); - - } - } - - - - - Debug.Console(2, "Name {0} Activated", this.Name); - return true; - } - catch (Exception e) { - Debug.Console(0, "Bridge {0}", e); - return false; - } - } - } - public class EssentialTVOneProperties - { - public string connectionDeviceKey; - public string[] EiscApiIpids; - - - } - - - public class EssentialsTVOneApiMap - { - public ushort CallPreset = 1; - public ushort PresetFeedback = 1; - public ushort Online = 1; - - public EssentialsTVOneApiMap() - { - - - } - - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/GenericLightingBridge.cs b/PepperDashEssentials/Bridges/GenericLightingBridge.cs deleted file mode 100644 index 5365b813..00000000 --- a/PepperDashEssentials/Bridges/GenericLightingBridge.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Devices.Common; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class GenericLightingApiExtensions - { - public static void LinkToApi(this PepperDash.Essentials.Core.Lighting.LightingBase lightingDevice, BasicTriList trilist, uint joinStart, string joinMapKey) - { - GenericLightingJoinMap joinMap = new GenericLightingJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - Debug.Console(0, "Linking to Lighting Type {0}", lightingDevice.GetType().Name.ToString()); - - // GenericLighitng Actions & FeedBack - trilist.SetUShortSigAction(joinMap.SelectScene, u => lightingDevice.SelectScene(lightingDevice.LightingScenes[u])); - - int sceneIndex = 1; - foreach (var scene in lightingDevice.LightingScenes) - { - var tempIndex = sceneIndex - 1; - trilist.SetSigTrueAction((uint)(joinMap.LightingSceneOffset + sceneIndex), () => lightingDevice.SelectScene(lightingDevice.LightingScenes[tempIndex])); - scene.IsActiveFeedback.LinkInputSig(trilist.BooleanInput[(uint)(joinMap.LightingSceneOffset + sceneIndex)]); - trilist.StringInput[(uint)(joinMap.LightingSceneOffset + sceneIndex)].StringValue = scene.Name; - trilist.BooleanInput[(uint)(joinMap.ButtonVisibilityOffset + sceneIndex)].BoolValue = true; - sceneIndex++; - } - - if (lightingDevice.GetType().Name.ToString() == "LutronQuantumArea") - { - var lutronDevice = lightingDevice as PepperDash.Essentials.Devices.Common.Environment.Lutron.LutronQuantumArea; - lutronDevice.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); - trilist.SetStringSigAction(joinMap.IntegrationIdSet, s => lutronDevice.IntegrationId = s); - } - - //ApiEisc.Eisc.SetStringSigAction(ApiMap.integrationID, (s) => { lutronLights.IntegrationId = s; }); - - - /* - var lutronLights = lightingDevice as PepperDash.Essentials.Devices.Common.Environment.Lutron.LutronQuantumArea; - - - for (uint i = 1; i <= lightingBase.CircuitCount; i++) - { - var circuit = i; - lightingBase.CircuitNameFeedbacks[circuit - 1].LinkInputSig(trilist.StringInput[joinMap.CircuitNames + circuit]); - lightingBase.CircuitIsCritical[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitIsCritical + circuit]); - lightingBase.CircuitState[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitState + circuit]); - trilist.SetSigTrueAction(joinMap.CircuitCycle + circuit, () => lightingBase.CycleCircuit(circuit - 1)); - trilist.SetSigTrueAction(joinMap.CircuitOnCmd + circuit, () => lightingBase.TurnOnCircuit(circuit - 1)); - trilist.SetSigTrueAction(joinMap.CircuitOffCmd + circuit, () => lightingBase.TurnOffCircuit(circuit - 1)); - - } - */ - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/GenericRelayDeviceBridge.cs b/PepperDashEssentials/Bridges/GenericRelayDeviceBridge.cs deleted file mode 100644 index 8175f115..00000000 --- a/PepperDashEssentials/Bridges/GenericRelayDeviceBridge.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.CrestronIO; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class GenericRelayDeviceApiExtensions - { - public static void LinkToApi(this GenericRelayDevice relay, BasicTriList trilist, uint joinStart, string joinMapKey) - { - GenericRelayControllerJoinMap joinMap = new GenericRelayControllerJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - if (relay.RelayOutput == null) - { - Debug.Console(1, relay, "Unable to link device '{0}'. Relay is null", relay.Key); - return; - } - - Debug.Console(1, relay, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - trilist.SetBoolSigAction(joinMap.Relay, new Action(b => - { - if (b) - relay.CloseRelay(); - else - relay.OpenRelay(); - })); - - // feedback for relay state - - relay.OutputIsOnFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Relay]); - } - - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/GlsOccupancySensorBaseControllerBridge.cs b/PepperDashEssentials/Bridges/GlsOccupancySensorBaseControllerBridge.cs deleted file mode 100644 index b073750c..00000000 --- a/PepperDashEssentials/Bridges/GlsOccupancySensorBaseControllerBridge.cs +++ /dev/null @@ -1,125 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Essentials.Devices.Common.Occupancy; - -using PepperDash.Essentials.Core; -using PepperDash.Core; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class GlsOccupancySensorBaseControllerApiExtensions - { - public static void LinkToApi(this GlsOccupancySensorBaseController occController, BasicTriList trilist, uint joinStart, string joinMapKey) - { - GlsOccupancySensorBaseJoinMap joinMap = new GlsOccupancySensorBaseJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, occController, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - #region Single and Dual Sensor Stuff - occController.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); - trilist.StringInput[joinMap.Name].StringValue = occController.Name; - - trilist.OnlineStatusChange += new Crestron.SimplSharpPro.OnlineStatusChangeEventHandler((d, args) => - { - if (args.DeviceOnLine) - { - trilist.StringInput[joinMap.Name].StringValue = occController.Name; - } - } - ); - - // Occupied status - trilist.SetSigTrueAction(joinMap.ForceOccupied, new Action(() => occController.ForceOccupied())); - trilist.SetSigTrueAction(joinMap.ForceVacant, new Action(() => occController.ForceVacant())); - occController.RoomIsOccupiedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RoomOccupiedFeedback]); - occController.RoomIsOccupiedFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.RoomVacantFeedback]); - occController.RawOccupancyFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RawOccupancyFeedback]); - trilist.SetBoolSigAction(joinMap.EnableRawStates, new Action((b) => occController.EnableRawStates(b))); - - // Timouts - trilist.SetUShortSigAction(joinMap.Timeout, new Action((u) => occController.SetRemoteTimeout(u))); - occController.CurrentTimeoutFeedback.LinkInputSig(trilist.UShortInput[joinMap.Timeout]); - occController.LocalTimoutFeedback.LinkInputSig(trilist.UShortInput[joinMap.TimeoutLocalFeedback]); - - // LED Flash - trilist.SetSigTrueAction(joinMap.EnableLedFlash, new Action(() => occController.SetLedFlashEnable(true))); - trilist.SetSigTrueAction(joinMap.DisableLedFlash, new Action(() => occController.SetLedFlashEnable(false))); - occController.LedFlashEnabledFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.EnableLedFlash]); - - // Short Timeout - trilist.SetSigTrueAction(joinMap.EnableShortTimeout, new Action(() => occController.SetShortTimeoutState(true))); - trilist.SetSigTrueAction(joinMap.DisableShortTimeout, new Action(() => occController.SetShortTimeoutState(false))); - occController.ShortTimeoutEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnableShortTimeout]); - - // PIR Sensor - trilist.SetSigTrueAction(joinMap.EnablePir, new Action(() => occController.SetPirEnable(true))); - trilist.SetSigTrueAction(joinMap.DisablePir, new Action(() => occController.SetPirEnable(false))); - occController.PirSensorEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnablePir]); - - // PIR Sensitivity in Occupied State - trilist.SetBoolSigAction(joinMap.IncrementPirInOccupiedState, new Action((b) => occController.IncrementPirSensitivityInOccupiedState(b))); - trilist.SetBoolSigAction(joinMap.DecrementPirInOccupiedState, new Action((b) => occController.DecrementPirSensitivityInOccupiedState(b))); - occController.PirSensitivityInOccupiedStateFeedback.LinkInputSig(trilist.UShortInput[joinMap.PirSensitivityInOccupiedState]); - - // PIR Sensitivity in Vacant State - trilist.SetBoolSigAction(joinMap.IncrementPirInVacantState, new Action((b) => occController.IncrementPirSensitivityInVacantState(b))); - trilist.SetBoolSigAction(joinMap.DecrementPirInVacantState, new Action((b) => occController.DecrementPirSensitivityInVacantState(b))); - occController.PirSensitivityInVacantStateFeedback.LinkInputSig(trilist.UShortInput[joinMap.PirSensitivityInVacantState]); - #endregion - - #region Dual Technology Sensor Stuff - var odtOccController = occController as GlsOdtOccupancySensorController; - - if (odtOccController != null) - { - // OR When Vacated - trilist.SetBoolSigAction(joinMap.OrWhenVacated, new Action((b) => odtOccController.SetOrWhenVacatedState(b))); - odtOccController.OrWhenVacatedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.OrWhenVacated]); - - // AND When Vacated - trilist.SetBoolSigAction(joinMap.AndWhenVacated, new Action((b) => odtOccController.SetAndWhenVacatedState(b))); - odtOccController.AndWhenVacatedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.AndWhenVacated]); - - // Ultrasonic A Sensor - trilist.SetSigTrueAction(joinMap.EnableUsA, new Action(() => odtOccController.SetUsAEnable(true))); - trilist.SetSigTrueAction(joinMap.DisableUsA, new Action(() => odtOccController.SetUsAEnable(false))); - odtOccController.UltrasonicAEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnableUsA]); - - // Ultrasonic B Sensor - trilist.SetSigTrueAction(joinMap.EnableUsB, new Action(() => odtOccController.SetUsBEnable(true))); - trilist.SetSigTrueAction(joinMap.DisableUsB, new Action(() => odtOccController.SetUsBEnable(false))); - odtOccController.UltrasonicAEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnableUsB]); - - // US Sensitivity in Occupied State - trilist.SetBoolSigAction(joinMap.IncrementUsInOccupiedState, new Action((b) => odtOccController.IncrementUsSensitivityInOccupiedState(b))); - trilist.SetBoolSigAction(joinMap.DecrementUsInOccupiedState, new Action((b) => odtOccController.DecrementUsSensitivityInOccupiedState(b))); - odtOccController.UltrasonicSensitivityInOccupiedStateFeedback.LinkInputSig(trilist.UShortInput[joinMap.UsSensitivityInOccupiedState]); - - // US Sensitivity in Vacant State - trilist.SetBoolSigAction(joinMap.IncrementUsInVacantState, new Action((b) => odtOccController.IncrementUsSensitivityInVacantState(b))); - trilist.SetBoolSigAction(joinMap.DecrementUsInVacantState, new Action((b) => odtOccController.DecrementUsSensitivityInVacantState(b))); - odtOccController.UltrasonicSensitivityInVacantStateFeedback.LinkInputSig(trilist.UShortInput[joinMap.UsSensitivityInVacantState]); - - //Sensor Raw States - odtOccController.RawOccupancyPirFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RawOccupancyPirFeedback]); - odtOccController.RawOccupancyUsFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RawOccupancyUsFeedback]); - - } - #endregion - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/HdMdxxxCEControllerBridge.cs b/PepperDashEssentials/Bridges/HdMdxxxCEControllerBridge.cs deleted file mode 100644 index bf6fdb54..00000000 --- a/PepperDashEssentials/Bridges/HdMdxxxCEControllerBridge.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.DM; -using Crestron.SimplSharpPro.DM.Endpoints; -using Crestron.SimplSharpPro.DM.Endpoints.Receivers; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.DM; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class HdMdxxxCEControllerApiExtensions - { - public static void LinkToApi(this HdMdxxxCEController hdMdPair, BasicTriList trilist, uint joinStart, string joinMapKey) - { - HdMdxxxCEControllerJoinMap joinMap = new HdMdxxxCEControllerJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, hdMdPair, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - hdMdPair.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); - hdMdPair.RemoteEndDetectedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RemoteEndDetected]); - - trilist.SetSigTrueAction(joinMap.AutoRouteOn, new Action(() => hdMdPair.AutoRouteOn())); - hdMdPair.AutoRouteOnFeedback.LinkInputSig(trilist.BooleanInput[joinMap.AutoRouteOn]); - trilist.SetSigTrueAction(joinMap.AutoRouteOff, new Action(() => hdMdPair.AutoRouteOff())); - hdMdPair.AutoRouteOnFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.AutoRouteOff]); - - trilist.SetSigTrueAction(joinMap.PriorityRoutingOn, new Action(() => hdMdPair.PriorityRouteOn())); - hdMdPair.PriorityRoutingOnFeedback.LinkInputSig(trilist.BooleanInput[joinMap.PriorityRoutingOn]); - trilist.SetSigTrueAction(joinMap.PriorityRoutingOff, new Action(() => hdMdPair.PriorityRouteOff())); - hdMdPair.PriorityRoutingOnFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.PriorityRoutingOff]); - - trilist.SetSigTrueAction(joinMap.InputOnScreenDisplayEnabled, new Action(() => hdMdPair.OnScreenDisplayEnable())); - hdMdPair.InputOnScreenDisplayEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.InputOnScreenDisplayEnabled]); - trilist.SetSigTrueAction(joinMap.AutoRouteOff, new Action(() => hdMdPair.OnScreenDisplayDisable())); - hdMdPair.InputOnScreenDisplayEnabledFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.InputOnScreenDisplayDisabled]); - - trilist.SetUShortSigAction(joinMap.VideoSource, new Action((i) => hdMdPair.ExecuteSwitch(i, null, eRoutingSignalType.Video | eRoutingSignalType.Audio))); - hdMdPair.VideoSourceFeedback.LinkInputSig(trilist.UShortInput[joinMap.VideoSource]); - - trilist.UShortInput[joinMap.SourceCount].UShortValue = (ushort)hdMdPair.InputPorts.Count; - - foreach (var input in hdMdPair.InputPorts) - { - var number = Convert.ToUInt16(input.Selector); - hdMdPair.SyncDetectedFeedbacks[number].LinkInputSig(trilist.BooleanInput[joinMap.SyncDetected + number]); - trilist.StringInput[joinMap.SourceNames + number].StringValue = input.Key; - } - - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/IBasicCommunicationBridge.cs b/PepperDashEssentials/Bridges/IBasicCommunicationBridge.cs deleted file mode 100644 index b23860d3..00000000 --- a/PepperDashEssentials/Bridges/IBasicCommunicationBridge.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials.Core; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class IBasicCommunicationApiExtensions - { - public static void LinkToApi(this GenericComm comm, BasicTriList trilist, uint joinStart, string joinMapKey) - { - IBasicCommunicationJoinMap joinMap = new IBasicCommunicationJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - joinMap.OffsetJoinNumbers(joinStart); - - if (comm.CommPort == null) - { - Debug.Console(1, comm, "Unable to link device '{0}'. CommPort is null", comm.Key); - return; - } - - Debug.Console(1, comm, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - // this is a permanent event handler. This cannot be -= from event - comm.CommPort.TextReceived += (s, a) => - { - Debug.Console(2, comm, "RX: {0}", a.Text); - trilist.SetString(joinMap.TextReceived, a.Text); - }; - trilist.SetStringSigAction(joinMap.SendText, new Action(s => comm.CommPort.SendText(s))); - trilist.SetStringSigAction(joinMap.SetPortConfig, new Action(s => comm.SetPortConfig(s))); - - - var sComm = comm.CommPort as ISocketStatus; - if (sComm != null) - { - sComm.ConnectionChange += (s, a) => - { - trilist.SetUshort(joinMap.Status, (ushort)(a.Client.ClientStatus)); - trilist.SetBool(joinMap.Connected, a.Client.ClientStatus == - Crestron.SimplSharp.CrestronSockets.SocketStatus.SOCKET_STATUS_CONNECTED); - }; - - trilist.SetBoolSigAction(joinMap.Connect, new Action(b => - { - if (b) - { - sComm.Connect(); - } - else - { - sComm.Disconnect(); - } - })); - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/IBridge.cs b/PepperDashEssentials/Bridges/IBridge.cs deleted file mode 100644 index 497985c7..00000000 --- a/PepperDashEssentials/Bridges/IBridge.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using Crestron.SimplSharpPro.DeviceSupport; - -namespace PepperDash.Essentials.Bridges -{ - /// - /// Defines a device that uses the legacy JoinMapBase for its join map - /// - [Obsolete("IBridgeAdvanced should be used going forward with JoinMapBaseAdvanced")] - public interface IBridge - { - void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey); - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/IDigitalInputBridge.cs b/PepperDashEssentials/Bridges/IDigitalInputBridge.cs deleted file mode 100644 index 078e0b13..00000000 --- a/PepperDashEssentials/Bridges/IDigitalInputBridge.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.CrestronIO; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class IDigitalInputApiExtenstions - { - public static void LinkToApi(this IDigitalInput input, BasicTriList trilist, uint joinStart, string joinMapKey) - { - IDigitalInputJoinMap joinMap = new IDigitalInputJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - try - { - Debug.Console(1, input as Device, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - // Link feedback for input state - input.InputStateFeedback.LinkInputSig(trilist.BooleanInput[joinMap.InputState]); - } - catch (Exception e) - { - Debug.Console(1, input as Device, "Unable to link device '{0}'. Input is null", (input as Device).Key); - Debug.Console(1, input as Device, "Error: {0}", e); - return; - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/IRSetTopBoxBaseBridge.cs b/PepperDashEssentials/Bridges/IRSetTopBoxBaseBridge.cs deleted file mode 100644 index 76e5b5ee..00000000 --- a/PepperDashEssentials/Bridges/IRSetTopBoxBaseBridge.cs +++ /dev/null @@ -1,128 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Devices.Common; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class IRSetTopBoxBaseApiExtensions - { - public static void LinkToApi(this PepperDash.Essentials.Devices.Common.IRSetTopBoxBase stbDevice, BasicTriList trilist, uint joinStart, string joinMapKey) - { - SetTopBoxControllerJoinMap joinMap = new SetTopBoxControllerJoinMap(); - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - Debug.Console(0, "Linking to Display: {0}", stbDevice.Name); - - trilist.StringInput[joinMap.Name].StringValue = stbDevice.Name; - - var stbBase = stbDevice as ISetTopBoxControls; - if (stbBase != null) - { - trilist.BooleanInput[joinMap.HasDpad].BoolValue = stbBase.HasDpad; - trilist.BooleanInput[joinMap.HasNumeric].BoolValue = stbBase.HasNumeric; - trilist.BooleanInput[joinMap.HasDvr].BoolValue = stbBase.HasDvr; - trilist.BooleanInput[joinMap.HasPresets].BoolValue = stbBase.HasPresets; - - trilist.SetBoolSigAction(joinMap.DvrList, (b) => stbBase.DvrList(b)); - trilist.SetBoolSigAction(joinMap.Replay, (b) => stbBase.Replay(b)); - - trilist.SetStringSigAction(joinMap.LoadPresets, (s) => stbBase.LoadPresets(s)); - } - - var stbPower = stbDevice as IPower; - if (stbPower != null) - { - trilist.SetSigTrueAction(joinMap.PowerOn, () => stbPower.PowerOn()); - trilist.SetSigTrueAction(joinMap.PowerOff, () => stbPower.PowerOff()); - trilist.SetSigTrueAction(joinMap.PowerToggle, () => stbPower.PowerToggle()); - - } - - var stbDPad = stbDevice as IDPad; - if (stbDPad != null) - { - trilist.SetBoolSigAction(joinMap.Up, (b) => stbDPad.Up(b)); - trilist.SetBoolSigAction(joinMap.Down, (b) => stbDPad.Down(b)); - trilist.SetBoolSigAction(joinMap.Left, (b) => stbDPad.Left(b)); - trilist.SetBoolSigAction(joinMap.Right, (b) => stbDPad.Right(b)); - trilist.SetBoolSigAction(joinMap.Select, (b) => stbDPad.Select(b)); - trilist.SetBoolSigAction(joinMap.Menu, (b) => stbDPad.Menu(b)); - trilist.SetBoolSigAction(joinMap.Exit, (b) => stbDPad.Exit(b)); - } - - var stbChannel = stbDevice as IChannel; - if (stbChannel != null) - { - trilist.SetBoolSigAction(joinMap.ChannelUp, (b) => stbChannel.ChannelUp(b)); - trilist.SetBoolSigAction(joinMap.ChannelDown, (b) => stbChannel.ChannelDown(b)); - trilist.SetBoolSigAction(joinMap.LastChannel, (b) => stbChannel.LastChannel(b)); - trilist.SetBoolSigAction(joinMap.Guide, (b) => stbChannel.Guide(b)); - trilist.SetBoolSigAction(joinMap.Info, (b) => stbChannel.Info(b)); - trilist.SetBoolSigAction(joinMap.Exit, (b) => stbChannel.Exit(b)); - } - - var stbColor = stbDevice as IColor; - if (stbColor != null) - { - trilist.SetBoolSigAction(joinMap.Red, (b) => stbColor.Red(b)); - trilist.SetBoolSigAction(joinMap.Green, (b) => stbColor.Green(b)); - trilist.SetBoolSigAction(joinMap.Yellow, (b) => stbColor.Yellow(b)); - trilist.SetBoolSigAction(joinMap.Blue, (b) => stbColor.Blue(b)); - } - - var stbKeypad = stbDevice as ISetTopBoxNumericKeypad; - if (stbKeypad != null) - { - trilist.StringInput[joinMap.KeypadAccessoryButton1Label].StringValue = stbKeypad.KeypadAccessoryButton1Label; - trilist.StringInput[joinMap.KeypadAccessoryButton2Label].StringValue = stbKeypad.KeypadAccessoryButton2Label; - - trilist.BooleanInput[joinMap.HasKeypadAccessoryButton1].BoolValue = stbKeypad.HasKeypadAccessoryButton1; - trilist.BooleanInput[joinMap.HasKeypadAccessoryButton2].BoolValue = stbKeypad.HasKeypadAccessoryButton2; - - trilist.SetBoolSigAction(joinMap.Digit0, (b) => stbKeypad.Digit0(b)); - trilist.SetBoolSigAction(joinMap.Digit1, (b) => stbKeypad.Digit1(b)); - trilist.SetBoolSigAction(joinMap.Digit2, (b) => stbKeypad.Digit2(b)); - trilist.SetBoolSigAction(joinMap.Digit3, (b) => stbKeypad.Digit3(b)); - trilist.SetBoolSigAction(joinMap.Digit4, (b) => stbKeypad.Digit4(b)); - trilist.SetBoolSigAction(joinMap.Digit5, (b) => stbKeypad.Digit5(b)); - trilist.SetBoolSigAction(joinMap.Digit6, (b) => stbKeypad.Digit6(b)); - trilist.SetBoolSigAction(joinMap.Digit7, (b) => stbKeypad.Digit7(b)); - trilist.SetBoolSigAction(joinMap.Digit8, (b) => stbKeypad.Digit8(b)); - trilist.SetBoolSigAction(joinMap.Digit9, (b) => stbKeypad.Digit9(b)); - trilist.SetBoolSigAction(joinMap.KeypadAccessoryButton1Press, (b) => stbKeypad.KeypadAccessoryButton1(b)); - trilist.SetBoolSigAction(joinMap.KeypadAccessoryButton2Press, (b) => stbKeypad.KeypadAccessoryButton1(b)); - trilist.SetBoolSigAction(joinMap.Dash, (b) => stbKeypad.Dash(b)); - trilist.SetBoolSigAction(joinMap.KeypadEnter, (b) => stbKeypad.KeypadEnter(b)); - } - - var stbTransport = stbDevice as ITransport; - if (stbTransport != null) - { - trilist.SetBoolSigAction(joinMap.Play, (b) => stbTransport.Play(b)); - trilist.SetBoolSigAction(joinMap.Pause, (b) => stbTransport.Pause(b)); - trilist.SetBoolSigAction(joinMap.Rewind, (b) => stbTransport.Rewind(b)); - trilist.SetBoolSigAction(joinMap.FFwd, (b) => stbTransport.FFwd(b)); - trilist.SetBoolSigAction(joinMap.ChapMinus, (b) => stbTransport.ChapMinus(b)); - trilist.SetBoolSigAction(joinMap.ChapPlus, (b) => stbTransport.ChapPlus(b)); - trilist.SetBoolSigAction(joinMap.Stop, (b) => stbTransport.Stop(b)); - trilist.SetBoolSigAction(joinMap.Record, (b) => stbTransport.Record(b)); - - } - - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/AirMediaControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/AirMediaControllerJoinMap.cs deleted file mode 100644 index 5b02c05b..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/AirMediaControllerJoinMap.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class AirMediaControllerJoinMap : JoinMapBase - { - #region Digitals - /// - /// Indicates that the device is online when high - /// - public uint IsOnline { get; set; } - /// - /// Indicates that the device is in session when high - /// - public uint IsInSession { get; set; } - /// - /// Indicates sync detected on HDMI input when high - /// - public uint HdmiVideoSync { get; set; } - /// - /// Set High to enable automatic input routing and low to disable. Feedback high when enabled - /// - public uint AutomaticInputRoutingEnabled { get; set; } - #endregion - - #region Analogs - /// - /// Selects source and provides feedback - /// - public uint VideoOut { get; set; } - /// - /// Provided error feedback - /// - public uint ErrorFB { get; set; } - /// - /// Indicates the number of connected users as feedback - /// - public uint NumberOfUsersConnectedFB { get; set; } - /// - /// Sets the login code and provides the current code as feedback - /// - public uint LoginCode { get; set; } - #endregion - - #region Serials - /// - /// Provides the name defined in config as feedback - /// - public uint Name { get; set; } - /// - /// Provides the connection address as feedback - /// - public uint ConnectionAddressFB { get; set; } - /// - /// Provides the hostname as feedback - /// - public uint HostnameFB { get; set; } - /// - /// Provides the serial number as feedback - /// - public uint SerialNumberFeedback { get; set; } - #endregion - - public AirMediaControllerJoinMap() - { - // Digital - IsOnline = 1; - IsInSession = 2; - HdmiVideoSync = 3; - AutomaticInputRoutingEnabled = 4; - - // Analog - VideoOut = 1; - ErrorFB = 2; - NumberOfUsersConnectedFB = 3; - LoginCode = 4; - - // Serial - Name = 1; - ConnectionAddressFB = 2; - HostnameFB = 3; - SerialNumberFeedback = 4; - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - IsOnline = IsOnline + joinOffset; - IsInSession = IsInSession + joinOffset; - HdmiVideoSync = HdmiVideoSync + joinOffset; - AutomaticInputRoutingEnabled = AutomaticInputRoutingEnabled + joinOffset; - - VideoOut = VideoOut + joinOffset; - ErrorFB = ErrorFB + joinOffset; - NumberOfUsersConnectedFB = NumberOfUsersConnectedFB + joinOffset; - LoginCode = LoginCode + joinOffset; - - Name = Name + joinOffset; - ConnectionAddressFB = ConnectionAddressFB + joinOffset; - HostnameFB = HostnameFB + joinOffset; - SerialNumberFeedback = SerialNumberFeedback + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/AppleTvJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/AppleTvJoinMap.cs deleted file mode 100644 index ac84ee31..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/AppleTvJoinMap.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class AppleTvJoinMap : JoinMapBase - { - #region Digitals - /// - /// Sends up arrow command while high - /// - public uint UpArrow { get; set; } - /// - /// Sends down arrow command while high - /// - public uint DnArrow { get; set; } - /// - /// Sends left arrow command while high - /// - public uint LeftArrow { get; set; } - /// - /// Sends right arrow command while high - /// - public uint RightArrow { get; set; } - /// - /// Sends menu command - /// - public uint Menu { get; set; } - /// - /// Sends select command - /// - public uint Select { get; set; } - /// - /// Sends play/pause command - /// - public uint PlayPause { get; set; } - #endregion - - public AppleTvJoinMap() - { - UpArrow = 1; - DnArrow = 2; - LeftArrow = 3; - RightArrow = 4; - Menu = 5; - Select = 6; - PlayPause = 7; - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - UpArrow = UpArrow + joinOffset; - DnArrow = DnArrow + joinOffset; - LeftArrow = LeftArrow + joinOffset; - RightArrow = RightArrow + joinOffset; - Menu = Menu + joinOffset; - Select = Select + joinOffset; - PlayPause = PlayPause + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/C2nRthsControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/C2nRthsControllerJoinMap.cs deleted file mode 100644 index bbf8268d..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/C2nRthsControllerJoinMap.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Linq; -using Crestron.SimplSharp.Reflection; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class C2nRthsControllerJoinMap:JoinMapBase - { - public uint IsOnline { get; set; } - public uint Name { get; set; } - public uint Temperature { get; set; } - public uint Humidity { get; set; } - public uint TemperatureFormat { get; set; } - - public C2nRthsControllerJoinMap() - { - //digital - IsOnline = 1; - TemperatureFormat = 2; - - //Analog - Temperature = 2; - Humidity = 3; - - //serial - Name = 1; - - - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - var properties = - GetType().GetCType().GetProperties().Where(p => p.PropertyType == typeof(uint)).ToList(); - - foreach (var propertyInfo in properties) - { - propertyInfo.SetValue(this, (uint)propertyInfo.GetValue(this, null) + joinOffset, null); - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/CameraControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/CameraControllerJoinMap.cs deleted file mode 100644 index 1546ff23..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/CameraControllerJoinMap.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - /// - /// Join map for CameraBase devices - /// - /// - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class CameraControllerJoinMap : JoinMapBaseAdvanced - { - [JoinName("TiltUp")] - public JoinDataComplete TiltUp = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 }, new JoinMetadata() { Label = "Tilt Up", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital }); - [JoinName("TiltDown")] - public JoinDataComplete TiltDown = new JoinDataComplete(new JoinData() { JoinNumber = 2, JoinSpan = 1 }, new JoinMetadata() { Label = "Tilt Down", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital }); - [JoinName("PanLeft")] - public JoinDataComplete PanLeft = new JoinDataComplete(new JoinData() { JoinNumber = 3, JoinSpan = 1 }, new JoinMetadata() { Label = "Pan Left", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital }); - [JoinName("PanRight")] - public JoinDataComplete PanRight = new JoinDataComplete(new JoinData() { JoinNumber = 4, JoinSpan = 1 }, new JoinMetadata() { Label = "Pan Right", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital }); - [JoinName("ZoomIn")] - public JoinDataComplete ZoomIn = new JoinDataComplete(new JoinData() { JoinNumber = 5, JoinSpan = 1 }, new JoinMetadata() { Label = "Zoom In", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital }); - [JoinName("ZoomOut")] - public JoinDataComplete ZoomOut = new JoinDataComplete(new JoinData() { JoinNumber = 6, JoinSpan = 1 }, new JoinMetadata() { Label = "Zoom Out", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital }); - - [JoinName("IsOnline")] - public JoinDataComplete IsOnline = new JoinDataComplete(new JoinData() { JoinNumber = 9, JoinSpan = 1 }, new JoinMetadata() { Label = "Is Online", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital }); - [JoinName("PowerOn")] - public JoinDataComplete PowerOn = new JoinDataComplete(new JoinData() { JoinNumber = 7, JoinSpan = 1 }, new JoinMetadata() { Label = "Power On", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital }); - [JoinName("PowerOff")] - public JoinDataComplete PowerOff = new JoinDataComplete(new JoinData() { JoinNumber = 8, JoinSpan = 1 }, new JoinMetadata() { Label = "Power Off", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital }); - - [JoinName("NumberOfPresets")] - public JoinDataComplete NumberOfPresets = new JoinDataComplete(new JoinData() { JoinNumber = 11, JoinSpan = 1 }, new JoinMetadata() { Label = "Tells Essentials the number of defined presets", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Analog }); - [JoinName("PresetRecallStart")] - public JoinDataComplete PresetRecallStart = new JoinDataComplete(new JoinData() { JoinNumber = 11, JoinSpan = 20 }, new JoinMetadata() { Label = "Preset Recall Start", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital }); - [JoinName("PresetLabelStart")] - public JoinDataComplete PresetLabelStart = new JoinDataComplete(new JoinData() { JoinNumber = 11, JoinSpan = 20 }, new JoinMetadata() { Label = "Preset Label Start", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Serial }); - [JoinName("PresetSaveStart")] - public JoinDataComplete PresetSaveStart = new JoinDataComplete(new JoinData() { JoinNumber = 31, JoinSpan = 20 }, new JoinMetadata() { Label = "Preset Save Start", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital }); - - [JoinName("CameraModeAuto")] - public JoinDataComplete CameraModeAuto = new JoinDataComplete(new JoinData() { JoinNumber = 51, JoinSpan = 1 }, new JoinMetadata() { Label = "Camera Mode Auto", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital }); - [JoinName("CameraModeManual")] - public JoinDataComplete CameraModeManual = new JoinDataComplete(new JoinData() { JoinNumber = 52, JoinSpan = 1 }, new JoinMetadata() { Label = "Camera Mode Manual", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital }); - [JoinName("CameraModeOff")] - public JoinDataComplete CameraModeOff = new JoinDataComplete(new JoinData() { JoinNumber = 53, JoinSpan = 1 }, new JoinMetadata() { Label = "Camera Mode Off", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital }); - - [JoinName("SupportsCameraModeAuto")] - public JoinDataComplete SupportsCameraModeAuto = new JoinDataComplete(new JoinData() { JoinNumber = 55, JoinSpan = 1 }, new JoinMetadata() { Label = "Supports Camera Mode Auto", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital }); - [JoinName("SupportsCameraModeOff")] - public JoinDataComplete SupportsCameraModeOff = new JoinDataComplete(new JoinData() { JoinNumber = 56, JoinSpan = 1 }, new JoinMetadata() { Label = "Supports Camera Mode Off", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital }); - [JoinName("SupportsPresets")] - public JoinDataComplete SupportsPresets = new JoinDataComplete(new JoinData() { JoinNumber = 57, JoinSpan = 1 }, new JoinMetadata() { Label = "Supports Presets", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital }); - - public CameraControllerJoinMap(uint joinStart) - : base(joinStart, typeof(CameraControllerJoinMap)) - { - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/DigitalLoggerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/DigitalLoggerJoinMap.cs deleted file mode 100644 index 3f4c8c43..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/DigitalLoggerJoinMap.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class DigitalLoggerJoinMap : JoinMapBase - { - public uint IsOnline { get; set; } - public uint CircuitNames { get; set; } - public uint CircuitState { get; set; } - public uint CircuitCycle { get; set; } - public uint CircuitIsCritical { get; set; } - public uint CircuitOnCmd { get; set; } - public uint CircuitOffCmd { get; set; } - - public DigitalLoggerJoinMap() - { - // Digital - IsOnline = 9; - CircuitState = 0; - CircuitCycle = 0; - CircuitIsCritical = 10; - CircuitOnCmd = 10; - CircuitOffCmd = 20; - // Serial - CircuitNames = 0; - // Analog - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - IsOnline = IsOnline + joinOffset; - CircuitNames = CircuitNames + joinOffset; - CircuitState = CircuitState + joinOffset; - CircuitCycle = CircuitCycle + joinOffset; - CircuitIsCritical = CircuitIsCritical + joinOffset; - CircuitOnCmd = CircuitOnCmd + joinOffset; - CircuitOffCmd = CircuitOffCmd + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/DisplayControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/DisplayControllerJoinMap.cs deleted file mode 100644 index 48671d24..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/DisplayControllerJoinMap.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class DisplayControllerJoinMap : JoinMapBase - { - #region Digitals - /// - /// Turns the display off and reports power off feedback - /// - public uint PowerOff { get; set; } - /// - /// Turns the display on and repots power on feedback - /// - public uint PowerOn { get; set; } - /// - /// Indicates that the display device supports two way communication when high - /// - public uint IsTwoWayDisplay { get; set; } - /// - /// Increments the volume while high - /// - public uint VolumeUp { get; set; } - /// - /// Decrements teh volume while high - /// - public uint VolumeDown { get; set; } - /// - /// Toggles the mute state. Feedback is high when volume is muted - /// - public uint VolumeMute { get; set; } - /// - /// Range of digital joins to select inputs and report current input as feedback - /// - public uint InputSelectOffset { get; set; } - /// - /// Range of digital joins to report visibility for input buttons - /// - public uint ButtonVisibilityOffset { get; set; } - /// - /// High if the device is online - /// - public uint IsOnline { get; set; } - #endregion - - #region Analogs - /// - /// Analog join to set the input and report current input as feedback - /// - public uint InputSelect { get; set; } - /// - /// Sets the volume level and reports the current level as feedback - /// - public uint VolumeLevel { get; set; } - #endregion - - #region Serials - /// - /// Reports the name of the display as defined in config as feedback - /// - public uint Name { get; set; } - /// - /// Range of serial joins that reports the names of the inputs as feedback - /// - public uint InputNamesOffset { get; set; } - #endregion - - public DisplayControllerJoinMap() - { - // Digital - IsOnline = 50; - PowerOff = 1; - PowerOn = 2; - IsTwoWayDisplay = 3; - VolumeUp = 5; - VolumeDown = 6; - VolumeMute = 7; - - ButtonVisibilityOffset = 40; - InputSelectOffset = 10; - - // Analog - InputSelect = 11; - VolumeLevel = 5; - - // Serial - Name = 1; - InputNamesOffset = 10; - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - IsOnline = IsOnline + joinOffset; - PowerOff = PowerOff + joinOffset; - PowerOn = PowerOn + joinOffset; - IsTwoWayDisplay = IsTwoWayDisplay + joinOffset; - ButtonVisibilityOffset = ButtonVisibilityOffset + joinOffset; - Name = Name + joinOffset; - InputNamesOffset = InputNamesOffset + joinOffset; - InputSelectOffset = InputSelectOffset + joinOffset; - - InputSelect = InputSelect + joinOffset; - - VolumeUp = VolumeUp + joinOffset; - VolumeDown = VolumeDown + joinOffset; - VolumeMute = VolumeMute + joinOffset; - VolumeLevel = VolumeLevel + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/DmBladeChassisControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/DmBladeChassisControllerJoinMap.cs deleted file mode 100644 index 0779523a..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/DmBladeChassisControllerJoinMap.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges { - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class DmBladeChassisControllerJoinMap : JoinMapBase { - #region Digital/Analogs - #endregion - - #region Digitals - /// - /// High when device is online - /// - public uint IsOnline { get; set; } - /// - /// Range reports video sync feedback for each input - /// - public uint VideoSyncStatus { get; set; } - /// - /// Range reports high if corresponding input's endpoint is online - /// - public uint InputEndpointOnline { get; set; } - /// - /// Range reports high if corresponding output's endpoint is online - /// - public uint OutputEndpointOnline { get; set; } - /// - /// Range reports high if corresponding input's transmitter supports bridging as a separate device for detailed AV switching, HDCP control, etc. - /// - public uint TxAdvancedIsPresent { get; set; } // indicates that there is an attached transmitter that should be bridged to be interacted with - #endregion - - #region Analogs - /// - /// Range sets and reports the current video source for the corresponding output - /// - public uint OutputVideo { get; set; } - /// - /// Range sets and reports the current HDCP state for the corresponding input card - /// - public uint HdcpSupportState { get; set; } - /// - /// Range reports the highest supported HDCP state level for the corresponding input card - /// - public uint HdcpSupportCapability { get; set; } - #endregion - - #region Serials - /// - /// Range sets and reports the name for the corresponding input card - /// - public uint InputNames { get; set; } - /// - /// Range sets and reports the name for the corresponding output card - /// - public uint OutputNames { get; set; } - /// - /// Range reports the name of the current video source for the corresponding output card - /// - public uint OutputCurrentVideoInputNames { get; set; } - /// - /// Range reports the current input resolution for each corresponding input card - /// - public uint InputCurrentResolution { get; set; } - #endregion - - public DmBladeChassisControllerJoinMap() { - //Digital/Analog - - //Digital - IsOnline = 11; - VideoSyncStatus = 100; //101-299 - InputEndpointOnline = 500; //501-699 - OutputEndpointOnline = 700; //701-899 - TxAdvancedIsPresent = 1000; //1001-1199 - - //Analog - OutputVideo = 100; //101-299 - HdcpSupportState = 1000; //1001-1199 - HdcpSupportCapability = 1200; //1201-1399 - - - //Serial - InputNames = 100; //101-299 - OutputNames = 300; //301-499 - OutputCurrentVideoInputNames = 2000; //2001-2199 - InputCurrentResolution = 2400; // 2401-2599 - } - - public override void OffsetJoinNumbers(uint joinStart) { - var joinOffset = joinStart - 1; - - IsOnline = IsOnline + joinOffset; - OutputVideo = OutputVideo + joinOffset; - VideoSyncStatus = VideoSyncStatus + joinOffset; - InputNames = InputNames + joinOffset; - OutputNames = OutputNames + joinOffset; - OutputCurrentVideoInputNames = OutputCurrentVideoInputNames + joinOffset; - InputCurrentResolution = InputCurrentResolution + joinOffset; - InputEndpointOnline = InputEndpointOnline + joinOffset; - OutputEndpointOnline = OutputEndpointOnline + joinOffset; - HdcpSupportState = HdcpSupportState + joinOffset; - HdcpSupportCapability = HdcpSupportCapability + joinOffset; - } - } -} diff --git a/PepperDashEssentials/Bridges/JoinMaps/DmChassisControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/DmChassisControllerJoinMap.cs deleted file mode 100644 index ba00306d..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/DmChassisControllerJoinMap.cs +++ /dev/null @@ -1,164 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class DmChassisControllerJoinMap : JoinMapBase - { -#region Digital/Analogs - /// - /// Analog input sets System ID, output reports current ID as feedback. - /// Digital input applies System ID, output is high when applying busy. - /// - public uint SystemId { get; set; } -#endregion - -#region Digitals - /// - /// High when device is online - /// - public uint IsOnline { get; set; } - /// - /// Range reports video sync feedback for each input - /// - public uint VideoSyncStatus { get; set; } - /// - /// Range reports high if corresponding input's endpoint is online - /// - public uint InputEndpointOnline { get; set; } - /// - /// Range reports high if corresponding output's endpoint is online - /// - public uint OutputEndpointOnline { get; set; } - /// - /// Range reports high if corresponding input's transmitter supports bridging as a separate device for detailed AV switching, HDCP control, etc. - /// - public uint TxAdvancedIsPresent { get; set; } // indicates that there is an attached transmitter that should be bridged to be interacted with - /// - /// Range reports high if corresponding output is disabled by HDCP. - /// - public uint OutputDisabledByHdcp { get; set; } // indicates that there is an attached transmitter that should be bridged to be interacted with -#endregion - -#region Analogs - /// - /// Range sets and reports the current video source for the corresponding output - /// - public uint OutputVideo { get; set; } - /// - /// Range sets and reports the current audio source for the corresponding output - /// - public uint OutputAudio { get; set; } - /// - /// Range sets and reports the current Usb source for the corresponding output - /// - public uint OutputUsb { get; set; } - /// - /// Range sets and reports the current Usb source for the corresponding input - /// - public uint InputUsb { get; set; } - /// - /// Range sets and reports the current HDCP state for the corresponding input card - /// - public uint HdcpSupportState { get; set; } - /// - /// Range reports the highest supported HDCP state level for the corresponding input card - /// - public uint HdcpSupportCapability { get; set; } - /// - /// DM Chassis Stream Input Start (1), Stop (2), Pause (3) with Feedback - /// - public uint InputStreamCardStatus { get; set; } - /// - /// DM Chassis Stream Output Start (1), Stop (2), Pause (3) with Feedback - /// - public uint OutputStreamCardStatus { get; set; } -#endregion - -#region Serials - /// - /// Range sets and reports the name for the corresponding input card - /// - public uint InputNames { get; set; } - /// - /// Range sets and reports the name for the corresponding output card - /// - public uint OutputNames { get; set; } - /// - /// Range reports the name of the current video source for the corresponding output card - /// - public uint OutputCurrentVideoInputNames { get; set; } - /// - /// Range reports the name of the current audio source for the corresponding output card - /// - public uint OutputCurrentAudioInputNames { get; set; } - /// - /// Range reports the current input resolution for each corresponding input card - /// - public uint InputCurrentResolution { get; set; } -#endregion - - public DmChassisControllerJoinMap() - { - //Digital/Analog - SystemId = 10; // Analog sets/gets SystemId, digital input applies and provides feedback of ID change busy - - //Digital - IsOnline = 11; - VideoSyncStatus = 100; //101-299 - InputEndpointOnline = 500; //501-699 - OutputEndpointOnline = 700; //701-899 - TxAdvancedIsPresent = 1000; //1001-1199 - OutputDisabledByHdcp = 1200; //1201-1399 - - //Analog - OutputVideo = 100; //101-299 - OutputAudio = 300; //301-499 - OutputUsb = 500; //501-699 - InputUsb = 700; //701-899 - HdcpSupportState = 1000; //1001-1199 - HdcpSupportCapability = 1200; //1201-1399 - InputStreamCardStatus = 1500; //1501-1532 - OutputStreamCardStatus = 1600; //1601-1632 - - - //Serial - InputNames = 100; //101-299 - OutputNames = 300; //301-499 - OutputCurrentVideoInputNames = 2000; //2001-2199 - OutputCurrentAudioInputNames = 2200; //2201-2399 - InputCurrentResolution = 2400; // 2401-2599 - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - SystemId = SystemId + joinOffset; - IsOnline = IsOnline + joinOffset; - OutputVideo = OutputVideo + joinOffset; - OutputAudio = OutputAudio + joinOffset; - OutputUsb = OutputUsb + joinOffset; - InputUsb = InputUsb + joinOffset; - VideoSyncStatus = VideoSyncStatus + joinOffset; - InputNames = InputNames + joinOffset; - OutputNames = OutputNames + joinOffset; - OutputCurrentVideoInputNames = OutputCurrentVideoInputNames + joinOffset; - OutputCurrentAudioInputNames = OutputCurrentAudioInputNames + joinOffset; - InputCurrentResolution = InputCurrentResolution + joinOffset; - InputEndpointOnline = InputEndpointOnline + joinOffset; - OutputEndpointOnline = OutputEndpointOnline + joinOffset; - HdcpSupportState = HdcpSupportState + joinOffset; - HdcpSupportCapability = HdcpSupportCapability + joinOffset; - InputStreamCardStatus = InputStreamCardStatus + joinOffset; - OutputStreamCardStatus = OutputStreamCardStatus + joinOffset; - OutputDisabledByHdcp = OutputDisabledByHdcp + joinOffset; - TxAdvancedIsPresent = TxAdvancedIsPresent + joinOffset; - } - } -} diff --git a/PepperDashEssentials/Bridges/JoinMaps/DmRmcControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/DmRmcControllerJoinMap.cs deleted file mode 100644 index 3d7cec8d..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/DmRmcControllerJoinMap.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class DmRmcControllerJoinMap : JoinMapBase - { - #region Digitals - /// - /// High when device is online (if not attached to a DMP3 or DM chassis with a CPU3 card - /// - public uint IsOnline { get; set; } - #endregion - - #region Serials - /// - /// Reports the current output resolution - /// - public uint CurrentOutputResolution { get; set; } - /// - /// Reports the EDID manufacturer value - /// - public uint EdidManufacturer { get; set; } - /// - /// Reports the EDID Name value - /// - public uint EdidName { get; set; } - /// - /// Reports the EDID preffered timing value - /// - public uint EdidPrefferedTiming { get; set; } - /// - /// Reports the EDID serial number value - /// - public uint EdidSerialNumber { get; set; } - #endregion - - #region Analogs - public uint AudioVideoSource { get; set; } - #endregion - - public DmRmcControllerJoinMap() - { - // Digital - IsOnline = 1; - - // Serial - CurrentOutputResolution = 1; - EdidManufacturer = 2; - EdidName = 3; - EdidPrefferedTiming = 4; - EdidSerialNumber = 5; - - //Analog - AudioVideoSource = 1; - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - IsOnline = IsOnline + joinOffset; - CurrentOutputResolution = CurrentOutputResolution + joinOffset; - EdidManufacturer = EdidManufacturer + joinOffset; - EdidName = EdidName + joinOffset; - EdidPrefferedTiming = EdidPrefferedTiming + joinOffset; - EdidSerialNumber = EdidSerialNumber + joinOffset; - AudioVideoSource = AudioVideoSource + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/DmTxControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/DmTxControllerJoinMap.cs deleted file mode 100644 index f84134a1..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/DmTxControllerJoinMap.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class DmTxControllerJoinMap : JoinMapBase - { - #region Digitals - /// - /// High when device is online (if not attached to a DMP3 or DM chassis with a CPU3 card - /// - public uint IsOnline { get; set; } - /// - /// High when video sync is detected - /// - public uint VideoSyncStatus { get; set; } - /// - /// - /// - public uint FreeRunEnabled { get; set; } - #endregion - - #region Analogs - /// - /// Sets and reports the video source - /// - public uint VideoInput { get; set; } - /// - /// Sets and reports the audio source - /// - public uint AudioInput { get; set; } - /// - /// Reports the highest supported HDCP state level for the corresponding input card - /// - public uint HdcpSupportCapability { get; set; } - /// - /// Sets and reports the current HDCP state for the corresponding input port - /// - public uint Port1HdcpState { get; set; } - /// - /// Sets and reports the current HDCP state for the corresponding input port - /// - public uint Port2HdcpState { get; set; } - - /// - /// Sets and reports the current VGA Brightness level - /// - public uint VgaBrightness { get; set; } - - /// - /// Sets and reports the current VGA Contrast level - /// - public uint VgaContrast { get; set; } - #endregion - - #region Serials - /// - /// Reports the current input resolution - /// - public uint CurrentInputResolution { get; set; } - #endregion - - - public DmTxControllerJoinMap() - { - // Digital - IsOnline = 1; - VideoSyncStatus = 2; - FreeRunEnabled = 3; - // Serial - CurrentInputResolution = 1; - // Analog - VideoInput = 1; - AudioInput = 2; - HdcpSupportCapability = 3; - Port1HdcpState = 4; - Port2HdcpState = 5; - VgaBrightness = 6; - VgaContrast = 7; - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - IsOnline = IsOnline + joinOffset; - VideoSyncStatus = VideoSyncStatus + joinOffset; - FreeRunEnabled = FreeRunEnabled + joinOffset; - CurrentInputResolution = CurrentInputResolution + joinOffset; - VideoInput = VideoInput + joinOffset; - AudioInput = AudioInput + joinOffset; - HdcpSupportCapability = HdcpSupportCapability + joinOffset; - Port1HdcpState = Port1HdcpState + joinOffset; - Port2HdcpState = Port2HdcpState + joinOffset; - VgaBrightness = VgaBrightness + joinOffset; - VgaContrast = VgaContrast + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/DmpsAudioOutputControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/DmpsAudioOutputControllerJoinMap.cs deleted file mode 100644 index 47c7d50d..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/DmpsAudioOutputControllerJoinMap.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class DmpsAudioOutputControllerJoinMap : JoinMapBase - { - #region Digital/Analog - /// - /// Range of joins for Master Volume - /// Analog join 1 is volume level and feedback - /// Digital join 1 is Mute on and feedback - /// Digital join 2 is Mute off and feedback - /// Digital join 3 is volume up - /// Digital join 4 is volume down - /// - public uint MasterVolume { get; set; } - /// - /// Range of joins for Source Volume - /// Analog join 11 is volume level and feedback - /// Digital join 11 is Mute on and feedback - /// Digital join 12 is Mute off and feedback - /// Digital join 13 is volume up - /// Digital join 14 is volume down - /// - public uint SourceVolume { get; set; } - /// - /// Range of joins for Codec1 Volume (if applicable) - /// Analog join 21 is volume level and feedback - /// Digital join 21 is Mute on and feedback - /// Digital join 22 is Mute off and feedback - /// Digital join 23 is volume up - /// Digital join 24 is volume down - /// - public uint Codec1Volume { get; set; } - /// - /// Range of joins for Codec2 Volume (if applicable) - /// Analog join 31 is volume level and feedback - /// Digital join 31 is Mute on and feedback - /// Digital join 32 is Mute off and feedback - /// Digital join 33 is volume up - /// Digital join 34 is volume down - /// - public uint Codec2Volume { get; set; } - #endregion - - public DmpsAudioOutputControllerJoinMap() - { - MasterVolume = 1; // 1-10 - SourceVolume = 11; // 11-20 - Codec1Volume = 21; // 21-30 - Codec2Volume = 31; // 31-40 - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart; - - MasterVolume = MasterVolume + joinOffset; - SourceVolume = SourceVolume + joinOffset; - Codec1Volume = Codec1Volume + joinOffset; - Codec2Volume = Codec2Volume + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/DmpsRoutingControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/DmpsRoutingControllerJoinMap.cs deleted file mode 100644 index 308dddf0..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/DmpsRoutingControllerJoinMap.cs +++ /dev/null @@ -1,128 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class DmpsRoutingControllerJoinMap : JoinMapBase - { - #region Digitals - /// - /// Range reports video sync feedback for each input - /// - public uint VideoSyncStatus { get; set; } - /// - /// Range reports high if corresponding input's endpoint is online - /// - public uint InputEndpointOnline { get; set; } - /// - /// Range reports high if corresponding output's endpoint is online - /// - public uint OutputEndpointOnline { get; set; } - #endregion - - - #region Analogs - /// - /// Range sets and reports the current video source for the corresponding output - /// - public uint OutputVideo { get; set; } - /// - /// Range sets and reports the current audio source for the corresponding output - /// - public uint OutputAudio { get; set; } - /// - /// Range sets and reports the current Usb source for the corresponding output - /// - //public uint OutputUsb { get; set; } - ///// - ///// Range sets and reports the current Usb source for the corresponding input - ///// - //public uint InputUsb { get; set; } - ///// - ///// Range sets and reports the current HDCP state for the corresponding input card - ///// - //public uint HdcpSupportState { get; set; } - ///// - ///// Range reports the highest supported HDCP state level for the corresponding input card - ///// - //public uint HdcpSupportCapability { get; set; } - #endregion - - #region Serials - /// - /// Range sets and reports the name for the corresponding input card - /// - public uint InputNames { get; set; } - /// - /// Range sets and reports the name for the corresponding output card - /// - public uint OutputNames { get; set; } - /// - /// Range reports the name of the current video source for the corresponding output card - /// - public uint OutputCurrentVideoInputNames { get; set; } - /// - /// Range reports the name of the current audio source for the corresponding output card - /// - public uint OutputCurrentAudioInputNames { get; set; } - /// - /// Range reports the current input resolution for each corresponding input card - /// - public uint InputCurrentResolution { get; set; } - #endregion - - - public DmpsRoutingControllerJoinMap() - { - //Digital - VideoSyncStatus = 100; //101-299 - InputEndpointOnline = 500; //501-699 - OutputEndpointOnline = 700; //701-899 - - //Analog - OutputVideo = 100; //101-299 - OutputAudio = 300; //301-499 - //OutputUsb = 500; //501-699 - //InputUsb = 700; //701-899 - VideoSyncStatus = 100; //101-299 - //HdcpSupportState = 1000; //1001-1199 - //HdcpSupportCapability = 1200; //1201-1399 - - - //Serial - InputNames = 100; //101-299 - OutputNames = 300; //301-499 - OutputCurrentVideoInputNames = 2000; //2001-2199 - OutputCurrentAudioInputNames = 2200; //2201-2399 - InputCurrentResolution = 2400; // 2401-2599 - InputEndpointOnline = 500; //501-699 - OutputEndpointOnline = 700; //701-899 - - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - OutputVideo = OutputVideo + joinOffset; - OutputAudio = OutputAudio + joinOffset; - //OutputUsb = OutputUsb + joinOffset; - //InputUsb = InputUsb + joinOffset; - VideoSyncStatus = VideoSyncStatus + joinOffset; - InputNames = InputNames + joinOffset; - OutputNames = OutputNames + joinOffset; - OutputCurrentVideoInputNames = OutputCurrentVideoInputNames + joinOffset; - OutputCurrentAudioInputNames = OutputCurrentAudioInputNames + joinOffset; - InputCurrentResolution = InputCurrentResolution + joinOffset; - InputEndpointOnline = InputEndpointOnline + joinOffset; - OutputEndpointOnline = OutputEndpointOnline + joinOffset; - //HdcpSupportState = HdcpSupportState + joinOffset; - //HdcpSupportCapability = HdcpSupportCapability + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/GenericLightingJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/GenericLightingJoinMap.cs deleted file mode 100644 index 3bc9b19a..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/GenericLightingJoinMap.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Essentials.Core; - - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class GenericLightingJoinMap : JoinMapBase - { - public uint IsOnline { get; set; } - public uint SelectScene { get; set; } - public uint LightingSceneOffset { get; set; } - public uint ButtonVisibilityOffset { get; set; } - public uint IntegrationIdSet { get; set; } - - public GenericLightingJoinMap() - { - // Digital - IsOnline = 1; - SelectScene = 1; - IntegrationIdSet = 1; - LightingSceneOffset = 10; - ButtonVisibilityOffset = 40; - // Analog - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - IsOnline = IsOnline + joinOffset; - SelectScene = SelectScene + joinOffset; - LightingSceneOffset = LightingSceneOffset + joinOffset; - ButtonVisibilityOffset = ButtonVisibilityOffset + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/GenericRelayControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/GenericRelayControllerJoinMap.cs deleted file mode 100644 index 56b50724..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/GenericRelayControllerJoinMap.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class GenericRelayControllerJoinMap : JoinMapBase - { - #region Digitals - /// - /// Sets and reports the state of the relay (High = closed, Low = Open) - /// - public uint Relay { get; set; } - #endregion - - public GenericRelayControllerJoinMap() - { - Relay = 1; - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - Relay = Relay + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/GlsOccupancySensorBaseJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/GlsOccupancySensorBaseJoinMap.cs deleted file mode 100644 index 800f516c..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/GlsOccupancySensorBaseJoinMap.cs +++ /dev/null @@ -1,239 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class GlsOccupancySensorBaseJoinMap : JoinMapBase - { - #region Digitals - - /// - /// High when device is online - /// - public uint IsOnline { get; set; } - /// - /// Forces the device to report occupied status - /// - public uint ForceOccupied { get; set; } - /// - /// Forces the device to report vacant status - /// - public uint ForceVacant { get; set; } - /// - /// Enables raw status reporting - /// - public uint EnableRawStates { get; set; } - /// - /// High when raw occupancy is detected - /// - public uint RawOccupancyFeedback { get; set; } - /// - /// High when PIR sensor detects motion - /// - public uint RawOccupancyPirFeedback { get; set; } - /// - /// High when US sensor detects motion - /// - public uint RawOccupancyUsFeedback { get; set; } - /// - /// High when occupancy is detected - /// - public uint RoomOccupiedFeedback { get; set; } - /// - /// Hich when occupancy is detected in the grace period - /// - public uint GraceOccupancyDetectedFeedback { get; set; } - /// - /// High when vacancy is detected - /// - public uint RoomVacantFeedback { get; set; } - - /// - /// Enables the LED Flash when set high - /// - public uint EnableLedFlash { get; set; } - /// - /// Disables the LED flash when set high - /// - public uint DisableLedFlash { get; set; } - /// - /// Enables the Short Timeout - /// - public uint EnableShortTimeout { get; set; } - /// - /// Disables the Short Timout - /// - public uint DisableShortTimeout { get; set; } - /// - /// Set high to enable one technology to trigger occupancy - /// - public uint OrWhenVacated { get; set; } - /// - /// Set high to require both technologies to trigger occupancy - /// - public uint AndWhenVacated { get; set; } - /// - /// Enables Ultrasonic Sensor A - /// - public uint EnableUsA { get; set; } - /// - /// Disables Ultrasonic Sensor A - /// - public uint DisableUsA { get; set; } - /// - /// Enables Ultrasonic Sensor B - /// - public uint EnableUsB { get; set; } - /// - /// Disables Ultrasonic Sensor B - /// - public uint DisableUsB { get; set; } - /// - /// Enables Pir - /// - public uint EnablePir { get; set; } - /// - /// Disables Pir - /// - public uint DisablePir { get; set; } - public uint IncrementUsInOccupiedState { get; set; } - public uint DecrementUsInOccupiedState { get; set; } - public uint IncrementUsInVacantState { get; set; } - public uint DecrementUsInVacantState { get; set; } - public uint IncrementPirInOccupiedState { get; set; } - public uint DecrementPirInOccupiedState { get; set; } - public uint IncrementPirInVacantState { get; set; } - public uint DecrementPirInVacantState { get; set; } - #endregion - - #region Analogs - /// - /// Sets adn reports the remote timeout value - /// - public uint Timeout { get; set; } - /// - /// Reports the local timeout value - /// - public uint TimeoutLocalFeedback { get; set; } - /// - /// Sets the minimum internal photo sensor value and reports the current level - /// - public uint InternalPhotoSensorValue { get; set; } - /// - /// Sets the minimum external photo sensor value and reports the current level - /// - public uint ExternalPhotoSensorValue { get; set; } - - public uint UsSensitivityInOccupiedState { get; set; } - - public uint UsSensitivityInVacantState { get; set; } - - public uint PirSensitivityInOccupiedState { get; set; } - - public uint PirSensitivityInVacantState { get; set; } - #endregion - - #region Serial - public uint Name { get; set; } - #endregion - - public GlsOccupancySensorBaseJoinMap() - { - IsOnline = 1; - ForceOccupied = 2; - ForceVacant = 3; - EnableRawStates = 4; - RoomOccupiedFeedback = 2; - GraceOccupancyDetectedFeedback = 3; - RoomVacantFeedback = 4; - RawOccupancyFeedback = 5; - RawOccupancyPirFeedback = 6; - RawOccupancyUsFeedback = 7; - EnableLedFlash = 11; - DisableLedFlash = 12; - EnableShortTimeout = 13; - DisableShortTimeout = 14; - OrWhenVacated = 15; - AndWhenVacated = 16; - EnableUsA = 17; - DisableUsA = 18; - EnableUsB = 19; - DisableUsB = 20; - EnablePir = 21; - DisablePir = 22; - IncrementUsInOccupiedState = 23; - DecrementUsInOccupiedState = 24; - IncrementUsInVacantState = 25; - DecrementUsInVacantState = 26; - IncrementPirInOccupiedState = 27; - DecrementPirInOccupiedState = 28; - IncrementPirInVacantState = 29; - DecrementPirInVacantState = 30; - - Timeout = 1; - TimeoutLocalFeedback = 2; - InternalPhotoSensorValue = 3; - ExternalPhotoSensorValue = 4; - UsSensitivityInOccupiedState = 5; - UsSensitivityInVacantState = 6; - PirSensitivityInOccupiedState = 7; - PirSensitivityInVacantState = 8; - - Name = 1; - - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - IsOnline = IsOnline + joinOffset; - ForceOccupied = ForceOccupied + joinOffset; - ForceVacant = ForceVacant + joinOffset; - EnableRawStates = EnableRawStates + joinOffset; - RoomOccupiedFeedback = RoomOccupiedFeedback + joinOffset; - GraceOccupancyDetectedFeedback = GraceOccupancyDetectedFeedback + joinOffset; - RoomVacantFeedback = RoomVacantFeedback + joinOffset; - RawOccupancyFeedback = RawOccupancyFeedback + joinOffset; - RawOccupancyPirFeedback = RawOccupancyPirFeedback + joinOffset; - RawOccupancyUsFeedback = RawOccupancyUsFeedback + joinOffset; - EnableLedFlash = EnableLedFlash + joinOffset; - DisableLedFlash = DisableLedFlash + joinOffset; - EnableShortTimeout = EnableShortTimeout + joinOffset; - DisableShortTimeout = DisableShortTimeout + joinOffset; - OrWhenVacated = OrWhenVacated + joinOffset; - AndWhenVacated = AndWhenVacated + joinOffset; - EnableUsA = EnableUsA + joinOffset; - DisableUsA = DisableUsA + joinOffset; - EnableUsB = EnableUsB + joinOffset; - DisableUsB = DisableUsB + joinOffset; - EnablePir = EnablePir + joinOffset; - DisablePir = DisablePir + joinOffset; - IncrementUsInOccupiedState = IncrementUsInOccupiedState + joinOffset; - DecrementUsInOccupiedState = DecrementUsInOccupiedState + joinOffset; - IncrementUsInVacantState = IncrementUsInVacantState + joinOffset; - DecrementUsInVacantState = DecrementUsInVacantState + joinOffset; - IncrementPirInOccupiedState = IncrementPirInOccupiedState + joinOffset; - DecrementPirInOccupiedState = DecrementPirInOccupiedState + joinOffset; - IncrementPirInVacantState = IncrementPirInVacantState + joinOffset; - DecrementPirInVacantState = DecrementPirInVacantState + joinOffset; - - Timeout = Timeout + joinOffset; - TimeoutLocalFeedback = TimeoutLocalFeedback + joinOffset; - InternalPhotoSensorValue = InternalPhotoSensorValue + joinOffset; - ExternalPhotoSensorValue = ExternalPhotoSensorValue + joinOffset; - UsSensitivityInOccupiedState = UsSensitivityInOccupiedState + joinOffset; - UsSensitivityInVacantState = UsSensitivityInVacantState + joinOffset; - PirSensitivityInOccupiedState = PirSensitivityInOccupiedState + joinOffset; - PirSensitivityInVacantState = PirSensitivityInVacantState + joinOffset; - - Name = Name + joinOffset; - } - } - -} diff --git a/PepperDashEssentials/Bridges/JoinMaps/HdMdxxxCEControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/HdMdxxxCEControllerJoinMap.cs deleted file mode 100644 index d9fad27e..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/HdMdxxxCEControllerJoinMap.cs +++ /dev/null @@ -1,120 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class HdMdxxxCEControllerJoinMap : JoinMapBase - { - #region Digitals - /// - /// High when the pair is online - /// - public uint IsOnline { get; set; } - - /// - /// High when the remote end device is online - /// - public uint RemoteEndDetected { get; set; } - - /// - /// Sets Auto Route On and provides feedback - /// - public uint AutoRouteOn { get; set; } - - /// - /// Sets Auto Route Off and provides feedback - /// - public uint AutoRouteOff { get; set; } - - /// - /// Sets Priority Routing On and provides feedback - /// - public uint PriorityRoutingOn { get; set; } - - /// - /// Sets Priority Routing Off and provides feedback - /// - public uint PriorityRoutingOff { get; set; } - - /// - /// Enables OSD and provides feedback - /// - public uint InputOnScreenDisplayEnabled { get; set; } - - /// - /// Disables OSD and provides feedback - /// - public uint InputOnScreenDisplayDisabled { get; set; } - - /// - /// Provides Video Sync Detected feedback for each input - /// - public uint SyncDetected { get; set; } - #endregion - - #region Analogs - /// - /// Sets the video source for the receiver's HDMI out and provides feedback - /// - public uint VideoSource { get; set; } - - /// - /// Indicates the number of sources supported by the Tx/Rx pair - /// - public uint SourceCount { get; set; } - #endregion - - #region Serials - /// - /// Indicates the name of each input port - /// - public uint SourceNames { get; set; } - #endregion - - public HdMdxxxCEControllerJoinMap() - { - //Digital - IsOnline = 1; - RemoteEndDetected = 2; - AutoRouteOn = 3; - AutoRouteOff = 4; - PriorityRoutingOn = 5; - PriorityRoutingOff = 6; - InputOnScreenDisplayEnabled = 7; - InputOnScreenDisplayDisabled = 8; - SyncDetected = 10; // 11-15 - - //Analog - VideoSource = 1; - SourceCount = 2; - - //Serials - SourceNames = 10; // 11-15 - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - IsOnline = IsOnline + joinOffset; - RemoteEndDetected = RemoteEndDetected + joinOffset; - AutoRouteOn = AutoRouteOn + joinOffset; - AutoRouteOff = AutoRouteOff + joinOffset; - PriorityRoutingOn = PriorityRoutingOn + joinOffset; - PriorityRoutingOff = PriorityRoutingOff + joinOffset; - InputOnScreenDisplayEnabled = InputOnScreenDisplayEnabled + joinOffset; - InputOnScreenDisplayDisabled = InputOnScreenDisplayDisabled + joinOffset; - SyncDetected = SyncDetected + joinOffset; - - VideoSource = VideoSource + joinOffset; - SourceCount = SourceCount + joinOffset; - - SourceNames = SourceNames + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/IBasicCommunicationJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/IBasicCommunicationJoinMap.cs deleted file mode 100644 index c8939ef8..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/IBasicCommunicationJoinMap.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class IBasicCommunicationJoinMap : JoinMapBase - { - #region Digitals - /// - /// Set High to connect, Low to disconnect - /// - public uint Connect { get; set; } - /// - /// Reports Connected State (High = Connected) - /// - public uint Connected { get; set; } - #endregion - - #region Analogs - /// - /// Reports the connections status value - /// - public uint Status { get; set; } - #endregion - - #region Serials - /// - /// Data back from port - /// - public uint TextReceived { get; set; } - /// - /// Sends data to the port - /// - public uint SendText { get; set; } - /// - /// Takes a JSON serialized string that sets a COM port's parameters - /// - public uint SetPortConfig { get; set; } - #endregion - - public IBasicCommunicationJoinMap() - { - TextReceived = 1; - SendText = 1; - SetPortConfig = 2; - Connect = 1; - Connected = 1; - Status = 1; - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - TextReceived = TextReceived + joinOffset; - SendText = SendText + joinOffset; - SetPortConfig = SetPortConfig + joinOffset; - Connect = Connect + joinOffset; - Connected = Connected + joinOffset; - Status = Status + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/IDigitalInputJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/IDigitalInputJoinMap.cs deleted file mode 100644 index a4c4aaa9..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/IDigitalInputJoinMap.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class IDigitalInputJoinMap : JoinMapBase - { - #region Digitals - /// - /// Reports the state of the digital input - /// - public uint InputState { get; set; } - #endregion - - public IDigitalInputJoinMap() - { - InputState = 1; - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - InputState = InputState + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/SetTopBoxControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/SetTopBoxControllerJoinMap.cs deleted file mode 100644 index 20b0d9a9..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/SetTopBoxControllerJoinMap.cs +++ /dev/null @@ -1,213 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; -using Crestron.SimplSharp.Reflection; - - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class SetTopBoxControllerJoinMap : JoinMapBase - { - #region Digitals - public uint DvrList { get; set; } // - public uint Replay { get; set; } - public uint Up { get; set; } // - public uint Down { get; set; } // - public uint Left { get; set; } // - public uint Right { get; set; } // - public uint Select { get; set; } // - public uint Menu { get; set; } // - public uint Exit { get; set; } // - public uint Digit0 { get; set; } // - public uint Digit1 { get; set; } // - public uint Digit2 { get; set; } // - public uint Digit3 { get; set; } // - public uint Digit4 { get; set; } // - public uint Digit5 { get; set; } // - public uint Digit6 { get; set; } // - public uint Digit7 { get; set; } // - public uint Digit8 { get; set; } // - public uint Digit9 { get; set; } // - public uint Dash { get; set; } // - public uint KeypadEnter { get; set; } // - public uint ChannelUp { get; set; } // - public uint ChannelDown { get; set; } // - public uint LastChannel { get; set; } // - public uint Guide { get; set; } // - public uint Info { get; set; } // - public uint Red { get; set; } // - public uint Green { get; set; } // - public uint Yellow { get; set; } // - public uint Blue { get; set; } // - public uint ChapMinus { get; set; } - public uint ChapPlus { get; set; } - public uint FFwd { get; set; } // - public uint Pause { get; set; } // - public uint Play { get; set; } // - public uint Record { get; set; } - public uint Rewind { get; set; } // - public uint Stop { get; set; } // - - public uint PowerOn { get; set; } // - public uint PowerOff { get; set; } // - public uint PowerToggle { get; set; } // - - public uint HasKeypadAccessoryButton1 { get; set; } - public uint HasKeypadAccessoryButton2 { get; set; } - - public uint KeypadAccessoryButton1Press { get; set; } - public uint KeypadAccessoryButton2Press { get; set; } - - - public uint HasDvr { get; set; } - public uint HasPresets { get; set; } - public uint HasNumeric { get; set; } - public uint HasDpad { get; set; } - - - #endregion - - #region Analogs - - #endregion - - #region Strings - public uint Name { get; set; } - public uint LoadPresets { get; set; } - public uint KeypadAccessoryButton1Label { get; set; } - public uint KeypadAccessoryButton2Label { get; set; } - - #endregion - - public SetTopBoxControllerJoinMap() - { - PowerOn = 1; - PowerOff = 2; - PowerToggle = 3; - - HasDpad = 4; - Up = 4; - Down = 5; - Left = 6; - Right = 7; - Select = 8; - Menu = 9; - Exit = 10; - - HasNumeric = 11; - Digit0 = 11; - Digit1 = 12; - Digit2 = 13; - Digit3 = 14; - Digit4 = 15; - Digit5 = 16; - Digit6 = 17; - Digit7 = 18; - Digit8 = 19; - Digit9 = 20; - Dash = 21; - KeypadEnter = 22; - ChannelUp = 23; - ChannelDown = 24; - LastChannel = 25; - - Guide = 26; - Info = 27; - Red = 28; - Green = 29; - Yellow = 30; - Blue = 31; - - HasDvr = 32; - DvrList = 32; - Play = 33; - Pause = 34; - Stop = 35; - FFwd = 36; - Rewind = 37; - ChapPlus = 38; - ChapMinus = 39; - Replay = 40; - Record = 41; - HasKeypadAccessoryButton1 = 42; - KeypadAccessoryButton1Press = 42; - HasKeypadAccessoryButton2 = 43; - KeypadAccessoryButton2Press = 43; - - Name = 1; - KeypadAccessoryButton1Label = 42; - KeypadAccessoryButton2Label = 43; - - LoadPresets = 50; - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - PowerOn += joinOffset; - PowerOff += joinOffset; - PowerToggle += joinOffset; - - HasDpad += joinOffset; - Up += joinOffset; - Down += joinOffset; - Left += joinOffset; - Right += joinOffset; - Select += joinOffset; - Menu += joinOffset; - Exit += joinOffset; - - HasNumeric += joinOffset; - Digit0 += joinOffset; - Digit1 += joinOffset; - Digit2 += joinOffset; - Digit3 += joinOffset; - Digit4 += joinOffset; - Digit5 += joinOffset; - Digit6 += joinOffset; - Digit7 += joinOffset; - Digit8 += joinOffset; - Digit9 += joinOffset; - Dash += joinOffset; - KeypadEnter += joinOffset; - ChannelUp += joinOffset; - ChannelDown += joinOffset; - LastChannel += joinOffset; - - Guide += joinOffset; - Info += joinOffset; - Red += joinOffset; - Green += joinOffset; - Yellow += joinOffset; - Blue += joinOffset; - - HasDvr += joinOffset; - DvrList += joinOffset; - Play += joinOffset; - Pause += joinOffset; - Stop += joinOffset; - FFwd += joinOffset; - Rewind += joinOffset; - ChapPlus += joinOffset; - ChapMinus += joinOffset; - Replay += joinOffset; - Record += joinOffset; - HasKeypadAccessoryButton1 += joinOffset; - KeypadAccessoryButton1Press += joinOffset; - HasKeypadAccessoryButton2 += joinOffset; - KeypadAccessoryButton2Press += joinOffset; - - Name += joinOffset; - KeypadAccessoryButton1Label += joinOffset; - KeypadAccessoryButton2Label += joinOffset; - - LoadPresets += joinOffset; - } - - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/StatusSignControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/StatusSignControllerJoinMap.cs deleted file mode 100644 index 3d8916a7..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/StatusSignControllerJoinMap.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Linq; -using Crestron.SimplSharp.Reflection; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class StatusSignControllerJoinMap:JoinMapBase - { - public uint IsOnline { get; set; } - public uint Name { get; set; } - public uint RedLed { get; set; } - public uint GreenLed { get; set; } - public uint BlueLed { get; set; } - public uint RedControl { get; set; } - public uint GreenControl { get; set; } - public uint BlueControl { get; set; } - - public StatusSignControllerJoinMap() - { - //digital - IsOnline = 1; - RedControl = 2; - GreenControl = 3; - BlueControl = 4; - - //Analog - RedLed = 2; - GreenLed = 3; - BlueLed = 4; - - //string - Name = 1; - - - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - var properties = - GetType().GetCType().GetProperties().Where(p => p.PropertyType == typeof (uint)).ToList(); - - foreach (var propertyInfo in properties) - { - propertyInfo.SetValue(this, (uint) propertyInfo.GetValue(this, null) + joinOffset, null); - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/JoinMaps/SystemMonitorJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/SystemMonitorJoinMap.cs deleted file mode 100644 index fe59416a..00000000 --- a/PepperDashEssentials/Bridges/JoinMaps/SystemMonitorJoinMap.cs +++ /dev/null @@ -1,227 +0,0 @@ -using System; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Bridges -{ - [Obsolete("Please use version PepperDash.Essentials.Core.Bridges")] - public class SystemMonitorJoinMap : JoinMapBase - { - /// - /// Offset to indicate where the range of iterated program joins will start - /// - public uint ProgramStartJoin { get; set; } - - /// - /// Offset to indicate where the range of iterated Ethernet joins will start - /// - public uint EthernetStartJoin { get; set; } - - /// - /// Offset between each program join set - /// - public uint ProgramOffsetJoin { get; set; } - - /// - /// Offset between each Ethernet Interface join set - /// - public uint EthernetOffsetJoin { get; set; } - - #region Digitals - /// - /// Range Sets and reports whether the corresponding program slot is started - /// - public uint ProgramStart { get; set; } - /// - /// Range Sets and reports whether the corresponding program slot is stopped - /// - public uint ProgramStop { get; set; } - /// - /// Range Sets and reports whether the corresponding program is registered - /// - public uint ProgramRegister { get; set; } - /// - /// Range Sets and reports whether the corresponding program is unregistered - /// - public uint ProgramUnregister { get; set; } - #endregion - - #region Analogs - /// - /// Sets and reports the time zone - /// - public uint TimeZone { get; set; } - #endregion - - #region Serials - /// - /// Reports the time zone name - /// - public uint TimeZoneName { get; set; } - /// - /// Reports the IO Controller Version - /// - public uint IOControllerVersion { get; set; } - /// - /// Reports the SNMP App Version - /// - public uint SnmpAppVersion { get; set; } - /// - /// Reports the BACnet App Version - /// - public uint BACnetAppVersion { get; set; } - /// - /// Reports the firmware version - /// - public uint ControllerVersion { get; set; } - - /// - /// Reports the name of the corresponding program - /// - public uint ProgramName { get; set; } - /// - /// Reports the compile time of the corresponding program - /// - public uint ProgramCompiledTime { get; set; } - /// - /// Reports the Crestron Database version of the corresponding program - /// - public uint ProgramCrestronDatabaseVersion { get; set; } - /// - /// Reports the Environment Version of the corresponding program - /// - public uint ProgramEnvironmentVersion { get; set; } - /// - /// Serialized JSON output that aggregates the program info of the corresponding program - /// - public uint AggregatedProgramInfo { get; set; } - /// - /// Reports the controller serial number - /// - public uint SerialNumber { get; set; } - /// - /// Reports the controller model - /// - public uint Model { get; set; } - /// - /// Reports the Host name set on the corresponding interface - /// - public uint HostName { get; set; } - /// - /// Reports the Current IP address set on the corresponding interface. If DHCP is enabled, this will be the DHCP assigned address. - /// - public uint CurrentIpAddress { get; set; } - /// - /// Reporst the Current Default Gateway set on the corresponding interface. If DHCP is enabled, this will be the DHCP assigned gateway - /// - public uint CurrentDefaultGateway { get; set; } - /// - /// Reports the Current Subnet Mask set on the corresponding interface. If DHCP is enabled, this will be the DHCP assigned subnet mask - /// - public uint CurrentSubnetMask { get; set; } - /// - /// Reports the Static IP address set on the corresponding interface. If DHCP is disabled, this will match the Current IP address - /// - public uint StaticIpAddress { get; set; } - /// - /// Reporst the Static Default Gateway set on the corresponding interface. If DHCP is disabled, this will match the Current gateway - /// - public uint StaticDefaultGateway { get; set; } - /// - /// Reports the Current Subnet Mask set on the corresponding interface. If DHCP is enabled, this will be the DHCP assigned subnet mask - /// - public uint StaticSubnetMask { get; set; } - /// - /// Reports the current DomainFeedback on the corresponding interface - /// - public uint Domain { get; set; } - /// - /// Reports the current DNS Servers on the corresponding interface - /// - public uint DnsServer { get; set; } - /// - /// Reports the MAC Address of the corresponding interface - /// - public uint MacAddress { get; set; } - /// - /// Reports the DHCP Status of the corresponding interface - /// - public uint DhcpStatus { get; set; } - - /// - /// Reports the current uptime. Updated in 5 minute intervals. - /// - public uint Uptime { get; set; } - - /// - /// Reports the date of the last boot - /// - public uint LastBoot { get; set; } - #endregion - - public SystemMonitorJoinMap() - { - TimeZone = 1; - - TimeZoneName = 1; - IOControllerVersion = 2; - SnmpAppVersion = 3; - BACnetAppVersion = 4; - ControllerVersion = 5; - SerialNumber = 6; - Model = 7; - Uptime = 8; - LastBoot = 9; - - - ProgramStartJoin = 10; - - ProgramOffsetJoin = 5; - - // Offset in groups of 5 joins - ProgramStart = 1; - ProgramStop = 2; - ProgramRegister = 3; - ProgramUnregister = 4; - - ProgramName = 1; - ProgramCompiledTime = 2; - ProgramCrestronDatabaseVersion = 3; - ProgramEnvironmentVersion = 4; - AggregatedProgramInfo = 5; - - EthernetStartJoin = 75; - - EthernetOffsetJoin = 15; - - // Offset in groups of 15 - HostName = 1; - CurrentIpAddress = 2; - CurrentSubnetMask = 3; - CurrentDefaultGateway = 4; - StaticIpAddress = 5; - StaticSubnetMask = 6; - StaticDefaultGateway = 7; - Domain = 8; - DnsServer = 9; - MacAddress = 10; - DhcpStatus = 11; - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - TimeZone = TimeZone + joinOffset; - - TimeZoneName = TimeZoneName + joinOffset; - IOControllerVersion = IOControllerVersion + joinOffset; - SnmpAppVersion = SnmpAppVersion + joinOffset; - BACnetAppVersion = BACnetAppVersion + joinOffset; - ControllerVersion = ControllerVersion + joinOffset; - - // Sets the initial join value where the iterated program joins will begin - ProgramStartJoin = ProgramStartJoin + joinOffset; - EthernetStartJoin = EthernetStartJoin + joinOffset; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/StatusSignControllerBridge.cs b/PepperDashEssentials/Bridges/StatusSignControllerBridge.cs deleted file mode 100644 index 0b35677d..00000000 --- a/PepperDashEssentials/Bridges/StatusSignControllerBridge.cs +++ /dev/null @@ -1,65 +0,0 @@ -using Crestron.SimplSharpPro.DeviceSupport; -using Newtonsoft.Json; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.CrestronIO; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class StatusSignDeviceApiExtensions - { - public static void LinkToApi(this StatusSignController ssDevice, BasicTriList trilist, uint joinStart, - string joinMapKey) - { - var joinMap = new StatusSignControllerJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, ssDevice, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - trilist.SetBoolSigAction(joinMap.RedControl, b => EnableControl(trilist, joinMap, ssDevice)); - trilist.SetBoolSigAction(joinMap.GreenControl, b => EnableControl(trilist, joinMap, ssDevice)); - trilist.SetBoolSigAction(joinMap.BlueControl, b => EnableControl(trilist, joinMap, ssDevice)); - - trilist.SetUShortSigAction(joinMap.RedLed, u => SetColor(trilist, joinMap, ssDevice)); - trilist.SetUShortSigAction(joinMap.GreenLed, u => SetColor(trilist, joinMap, ssDevice)); - trilist.SetUShortSigAction(joinMap.BlueLed, u => SetColor(trilist, joinMap, ssDevice)); - - trilist.StringInput[joinMap.Name].StringValue = ssDevice.Name; - - ssDevice.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); - ssDevice.RedLedEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RedControl]); - ssDevice.BlueLedEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.BlueControl]); - ssDevice.GreenLedEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.GreenControl]); - - ssDevice.RedLedBrightnessFeedback.LinkInputSig(trilist.UShortInput[joinMap.RedLed]); - ssDevice.BlueLedBrightnessFeedback.LinkInputSig(trilist.UShortInput[joinMap.BlueLed]); - ssDevice.GreenLedBrightnessFeedback.LinkInputSig(trilist.UShortInput[joinMap.GreenLed]); - - } - - private static void EnableControl(BasicTriList triList, StatusSignControllerJoinMap joinMap, - StatusSignController device) - { - var redEnable = triList.BooleanOutput[joinMap.RedControl].BoolValue; - var greenEnable = triList.BooleanOutput[joinMap.GreenControl].BoolValue; - var blueEnable = triList.BooleanOutput[joinMap.BlueControl].BoolValue; - device.EnableLedControl(redEnable, greenEnable, blueEnable); - } - - private static void SetColor(BasicTriList triList, StatusSignControllerJoinMap joinMap, - StatusSignController device) - { - var redBrightness = triList.UShortOutput[joinMap.RedLed].UShortValue; - var greenBrightness = triList.UShortOutput[joinMap.GreenLed].UShortValue; - var blueBrightness = triList.UShortOutput[joinMap.BlueLed].UShortValue; - - device.SetColor(redBrightness, greenBrightness, blueBrightness); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Bridges/SystemMonitorBridge.cs b/PepperDashEssentials/Bridges/SystemMonitorBridge.cs deleted file mode 100644 index 5999c500..00000000 --- a/PepperDashEssentials/Bridges/SystemMonitorBridge.cs +++ /dev/null @@ -1,108 +0,0 @@ -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.Diagnostics; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Monitoring; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core.Bridges -{ - public static class SystemMonitorBridge - { - public static void LinkToApi(this SystemMonitorController systemMonitorController, BasicTriList trilist, uint joinStart, string joinMapKey) - { - var joinMap = new SystemMonitorJoinMap(); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if(!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - joinMap.OffsetJoinNumbers(joinStart); - - Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - Debug.Console(2, systemMonitorController, "Linking API starting at join: {0}", joinStart); - - systemMonitorController.TimeZoneFeedback.LinkInputSig(trilist.UShortInput[joinMap.TimeZone]); - systemMonitorController.TimeZoneTextFeedback.LinkInputSig(trilist.StringInput[joinMap.TimeZoneName]); - - systemMonitorController.IoControllerVersionFeedback.LinkInputSig(trilist.StringInput[joinMap.IOControllerVersion]); - systemMonitorController.SnmpVersionFeedback.LinkInputSig(trilist.StringInput[joinMap.SnmpAppVersion]); - systemMonitorController.BaCnetAppVersionFeedback.LinkInputSig(trilist.StringInput[joinMap.BACnetAppVersion]); - systemMonitorController.ControllerVersionFeedback.LinkInputSig(trilist.StringInput[joinMap.ControllerVersion]); - systemMonitorController.SerialNumberFeedback.LinkInputSig(trilist.StringInput[joinMap.SerialNumber]); - systemMonitorController.ModelFeedback.LinkInputSig(trilist.StringInput[joinMap.Model]); - systemMonitorController.UptimeFeedback.LinkInputSig(trilist.StringInput[joinMap.Uptime]); - systemMonitorController.LastStartFeedback.LinkInputSig(trilist.StringInput[joinMap.LastBoot]); - - // iterate the program status feedback collection and map all the joins - LinkProgramInfoJoins(systemMonitorController, trilist, joinMap); - - LinkEthernetInfoJoins(systemMonitorController, trilist, joinMap); - } - - private static void LinkEthernetInfoJoins(SystemMonitorController systemMonitorController, BasicTriList trilist, SystemMonitorJoinMap joinMap) - { - var ethernetSlotJoinStart = joinMap.EthernetStartJoin; - - foreach (var fb in systemMonitorController.EthernetStatusFeedbackCollection) - { - fb.Value.CurrentIpAddressFeedback.LinkInputSig(trilist.StringInput[ethernetSlotJoinStart + joinMap.CurrentIpAddress]); - fb.Value.CurrentSubnetMaskFeedback.LinkInputSig(trilist.StringInput[ethernetSlotJoinStart + joinMap.CurrentSubnetMask]); - fb.Value.CurrentDefaultGatewayFeedback.LinkInputSig(trilist.StringInput[ethernetSlotJoinStart + joinMap.CurrentDefaultGateway]); - fb.Value.StaticIpAddressFeedback.LinkInputSig(trilist.StringInput[ethernetSlotJoinStart + joinMap.StaticIpAddress]); - fb.Value.StaticSubnetMaskFeedback.LinkInputSig(trilist.StringInput[ethernetSlotJoinStart + joinMap.StaticSubnetMask]); - fb.Value.StaticDefaultGatewayFeedback.LinkInputSig(trilist.StringInput[ethernetSlotJoinStart + joinMap.StaticDefaultGateway]); - fb.Value.HostNameFeedback.LinkInputSig(trilist.StringInput[ethernetSlotJoinStart + joinMap.HostName]); - fb.Value.MacAddressFeedback.LinkInputSig(trilist.StringInput[ethernetSlotJoinStart + joinMap.MacAddress]); - fb.Value.DomainFeedback.LinkInputSig(trilist.StringInput[ethernetSlotJoinStart + joinMap.Domain]); - fb.Value.DnsServerFeedback.LinkInputSig(trilist.StringInput[ethernetSlotJoinStart + joinMap.DnsServer]); - fb.Value.DhcpStatusFeedback.LinkInputSig(trilist.StringInput[ethernetSlotJoinStart + joinMap.DhcpStatus]); - - ethernetSlotJoinStart += joinMap.EthernetOffsetJoin; - } - } - - private static void LinkProgramInfoJoins(SystemMonitorController systemMonitorController, BasicTriList trilist, - SystemMonitorJoinMap joinMap) - { - var programSlotJoinStart = joinMap.ProgramStartJoin; - - foreach (var p in systemMonitorController.ProgramStatusFeedbackCollection) - { - var programNumber = p.Value.Program.Number; - - trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramStart, - b => SystemMonitor.ProgramCollection[programNumber].OperatingState = eProgramOperatingState.Start); - p.Value.ProgramStartedFeedback.LinkInputSig(trilist.BooleanInput[programSlotJoinStart + joinMap.ProgramStart]); - - trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramStop, - b => SystemMonitor.ProgramCollection[programNumber].OperatingState = eProgramOperatingState.Stop); - p.Value.ProgramStoppedFeedback.LinkInputSig(trilist.BooleanInput[programSlotJoinStart + joinMap.ProgramStop]); - - trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramRegister, - b => SystemMonitor.ProgramCollection[programNumber].RegistrationState = eProgramRegistrationState.Register); - p.Value.ProgramRegisteredFeedback.LinkInputSig( - trilist.BooleanInput[programSlotJoinStart + joinMap.ProgramRegister]); - - trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramUnregister, - b => SystemMonitor.ProgramCollection[programNumber].RegistrationState = eProgramRegistrationState.Unregister); - p.Value.ProgramUnregisteredFeedback.LinkInputSig( - trilist.BooleanInput[programSlotJoinStart + joinMap.ProgramUnregister]); - - p.Value.ProgramNameFeedback.LinkInputSig(trilist.StringInput[programSlotJoinStart + joinMap.ProgramName]); - p.Value.ProgramCompileTimeFeedback.LinkInputSig( - trilist.StringInput[programSlotJoinStart + joinMap.ProgramCompiledTime]); - p.Value.CrestronDataBaseVersionFeedback.LinkInputSig( - trilist.StringInput[programSlotJoinStart + joinMap.ProgramCrestronDatabaseVersion]); - p.Value.EnvironmentVersionFeedback.LinkInputSig( - trilist.StringInput[programSlotJoinStart + joinMap.ProgramEnvironmentVersion]); - p.Value.AggregatedProgramInfoFeedback.LinkInputSig( - trilist.StringInput[programSlotJoinStart + joinMap.AggregatedProgramInfo]); - - programSlotJoinStart = programSlotJoinStart + joinMap.ProgramOffsetJoin; - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Devices/Amplifier.cs b/PepperDashEssentials/Devices/Amplifier.cs deleted file mode 100644 index b2725109..00000000 --- a/PepperDashEssentials/Devices/Amplifier.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.Routing; - -namespace PepperDash.Essentials -{ - public class Amplifier : EssentialsDevice, IRoutingSinkNoSwitching - { - public event SourceInfoChangeHandler CurrentSourceChange; - - public string CurrentSourceInfoKey { get; set; } - public SourceListItem CurrentSourceInfo - { - get - { - return _CurrentSourceInfo; - } - set - { - if (value == _CurrentSourceInfo) return; - - var handler = CurrentSourceChange; - - if (handler != null) - handler(_CurrentSourceInfo, ChangeType.WillChange); - - _CurrentSourceInfo = value; - - if (handler != null) - handler(_CurrentSourceInfo, ChangeType.DidChange); - } - } - SourceListItem _CurrentSourceInfo; - - public RoutingInputPort AudioIn { get; private set; } - - public Amplifier(string key, string name) - : base(key, name) - { - AudioIn = new RoutingInputPort(RoutingPortNames.AnyAudioIn, eRoutingSignalType.Audio, - eRoutingPortConnectionType.None, null, this); - InputPorts = new RoutingPortCollection { AudioIn }; - } - - #region IRoutingInputs Members - - public RoutingPortCollection InputPorts { get; private set; } - - #endregion - } - - public class AmplifierFactory : EssentialsDeviceFactory - { - public AmplifierFactory() - { - TypeNames = new List() { "amplifier" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new Amplifier Device"); - return new Amplifier(dc.Key, dc.Name); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Fusion/EssentialsHuddleVtc1FusionController.cs b/PepperDashEssentials/Fusion/EssentialsHuddleVtc1FusionController.cs deleted file mode 100644 index c3877706..00000000 --- a/PepperDashEssentials/Fusion/EssentialsHuddleVtc1FusionController.cs +++ /dev/null @@ -1,358 +0,0 @@ -using System; -using System.Linq; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.Fusion; - - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.Fusion; - -namespace PepperDash.Essentials.Fusion -{ - public class EssentialsHuddleVtc1FusionController : EssentialsHuddleSpaceFusionSystemControllerBase - { - BooleanSigData CodecIsInCall; - - public EssentialsHuddleVtc1FusionController(IEssentialsHuddleVtc1Room room, uint ipId, string joinMapKey) - : base(room, ipId, joinMapKey) - { - - } - - /// - /// Called in base class constructor before RVI and GUID files are built - /// - protected override void ExecuteCustomSteps() - { - SetUpCodec(); - } - - /// - /// Creates a static asset for the codec and maps the joins to the main room symbol - /// - void SetUpCodec() - { - try - { - var codec = (Room as IEssentialsHuddleVtc1Room).VideoCodec; - - if (codec == null) - { - Debug.Console(1, this, "Cannot link codec to Fusion because codec is null"); - return; - } - - codec.UsageTracker = new UsageTracking(codec); - codec.UsageTracker.UsageIsTracked = true; - codec.UsageTracker.DeviceUsageEnded += UsageTracker_DeviceUsageEnded; - - var codecPowerOnAction = new Action(b => { if (!b) codec.StandbyDeactivate(); }); - var codecPowerOffAction = new Action(b => { if (!b) codec.StandbyActivate(); }); - - // Map FusionRoom Attributes: - - // Codec volume - var codecVolume = FusionRoom.CreateOffsetUshortSig(JoinMap.VolumeFader1.JoinNumber, JoinMap.VolumeFader1.AttributeName, eSigIoMask.InputOutputSig); - codecVolume.OutputSig.UserObject = new Action(b => (codec as IBasicVolumeWithFeedback).SetVolume(b)); - (codec as IBasicVolumeWithFeedback).VolumeLevelFeedback.LinkInputSig(codecVolume.InputSig); - - // In Call Status - CodecIsInCall = FusionRoom.CreateOffsetBoolSig(JoinMap.VcCodecInCall.JoinNumber, JoinMap.VcCodecInCall.AttributeName, eSigIoMask.InputSigOnly); - codec.CallStatusChange += new EventHandler(codec_CallStatusChange); - - // Online status - if (codec is ICommunicationMonitor) - { - var c = codec as ICommunicationMonitor; - var codecOnline = FusionRoom.CreateOffsetBoolSig(JoinMap.VcCodecOnline.JoinNumber, JoinMap.VcCodecOnline.AttributeName, eSigIoMask.InputSigOnly); - codecOnline.InputSig.BoolValue = c.CommunicationMonitor.Status == MonitorStatus.IsOk; - c.CommunicationMonitor.StatusChange += (o, a) => - { - codecOnline.InputSig.BoolValue = a.Status == MonitorStatus.IsOk; - }; - Debug.Console(0, this, "Linking '{0}' communication monitor to Fusion '{1}'", codec.Key, JoinMap.VcCodecOnline.AttributeName); - } - - // Codec IP Address - bool codecHasIpInfo = false; - var codecComm = codec.Communication; - - string codecIpAddress = string.Empty; - int codecIpPort = 0; - - StringSigData codecIpAddressSig; - StringSigData codecIpPortSig; - - if(codecComm is GenericSshClient) - { - codecIpAddress = (codecComm as GenericSshClient).Hostname; - codecIpPort = (codecComm as GenericSshClient).Port; - codecHasIpInfo = true; - } - else if (codecComm is GenericTcpIpClient) - { - codecIpAddress = (codecComm as GenericTcpIpClient).Hostname; - codecIpPort = (codecComm as GenericTcpIpClient).Port; - codecHasIpInfo = true; - } - - if (codecHasIpInfo) - { - codecIpAddressSig = FusionRoom.CreateOffsetStringSig(JoinMap.VcCodecIpAddress.JoinNumber, JoinMap.VcCodecIpAddress.AttributeName, eSigIoMask.InputSigOnly); - codecIpAddressSig.InputSig.StringValue = codecIpAddress; - - codecIpPortSig = FusionRoom.CreateOffsetStringSig(JoinMap.VcCodecIpPort.JoinNumber, JoinMap.VcCodecIpPort.AttributeName, eSigIoMask.InputSigOnly); - codecIpPortSig.InputSig.StringValue = codecIpPort.ToString(); - } - - var tempAsset = new FusionAsset(); - - var deviceConfig = ConfigReader.ConfigObject.Devices.FirstOrDefault(c => c.Key.Equals(codec.Key)); - - if (FusionStaticAssets.ContainsKey(deviceConfig.Uid)) - { - tempAsset = FusionStaticAssets[deviceConfig.Uid]; - } - else - { - // Create a new asset - tempAsset = new FusionAsset(FusionRoomGuids.GetNextAvailableAssetNumber(FusionRoom), codec.Name, "Codec", ""); - FusionStaticAssets.Add(deviceConfig.Uid, tempAsset); - } - - var codecAsset = FusionRoom.CreateStaticAsset(tempAsset.SlotNumber, tempAsset.Name, "Codec", tempAsset.InstanceId); - codecAsset.PowerOn.OutputSig.UserObject = codecPowerOnAction; - codecAsset.PowerOff.OutputSig.UserObject = codecPowerOffAction; - codec.StandbyIsOnFeedback.LinkComplementInputSig(codecAsset.PowerOn.InputSig); - - // TODO: Map relevant attributes on asset symbol - - codecAsset.TrySetMakeModel(codec); - codecAsset.TryLinkAssetErrorToCommunication(codec); - } - catch (Exception e) - { - Debug.Console(1, this, "Error setting up codec in Fusion: {0}", e); - } - } - - void codec_CallStatusChange(object sender, PepperDash.Essentials.Devices.Common.Codec.CodecCallStatusItemChangeEventArgs e) - { - var codec = (Room as IEssentialsHuddleVtc1Room).VideoCodec; - - CodecIsInCall.InputSig.BoolValue = codec.IsInCall; - } - - // These methods are overridden because they access the room class which is of a different type - - protected override void CreateSymbolAndBasicSigs(uint ipId) - { - Debug.Console(0, this, "Creating Fusion Room symbol with GUID: {0} and IP-ID {1:X2}", RoomGuid, ipId); - - FusionRoom = new FusionRoom(ipId, Global.ControlSystem, Room.Name, RoomGuid); - FusionRoom.ExtenderRoomViewSchedulingDataReservedSigs.Use(); - FusionRoom.ExtenderFusionRoomDataReservedSigs.Use(); - - FusionRoom.Register(); - - FusionRoom.FusionStateChange += FusionRoom_FusionStateChange; - - FusionRoom.ExtenderRoomViewSchedulingDataReservedSigs.DeviceExtenderSigChange += FusionRoomSchedule_DeviceExtenderSigChange; - FusionRoom.ExtenderFusionRoomDataReservedSigs.DeviceExtenderSigChange += ExtenderFusionRoomDataReservedSigs_DeviceExtenderSigChange; - FusionRoom.OnlineStatusChange += FusionRoom_OnlineStatusChange; - - CrestronConsole.AddNewConsoleCommand(RequestFullRoomSchedule, "FusReqRoomSchedule", "Requests schedule of the room for the next 24 hours", ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(ModifyMeetingEndTimeConsoleHelper, "FusReqRoomSchMod", "Ends or extends a meeting by the specified time", ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(CreateAdHocMeeting, "FusCreateMeeting", "Creates and Ad Hoc meeting for on hour or until the next meeting", ConsoleAccessLevelEnum.AccessOperator); - - // Room to fusion room - Room.OnFeedback.LinkInputSig(FusionRoom.SystemPowerOn.InputSig); - - // Moved to - CurrentRoomSourceNameSig = FusionRoom.CreateOffsetStringSig(JoinMap.Display1CurrentSourceName.JoinNumber, JoinMap.Display1CurrentSourceName.AttributeName, eSigIoMask.InputSigOnly); - // Don't think we need to get current status of this as nothing should be alive yet. - (Room as IEssentialsHuddleVtc1Room).CurrentSourceChange += Room_CurrentSourceInfoChange; - - - FusionRoom.SystemPowerOn.OutputSig.SetSigFalseAction((Room as IEssentialsHuddleVtc1Room).PowerOnToDefaultOrLastSource); - FusionRoom.SystemPowerOff.OutputSig.SetSigFalseAction(() => (Room as IEssentialsHuddleVtc1Room).RunRouteAction("roomOff", Room.SourceListKey)); - - - CrestronEnvironment.EthernetEventHandler += CrestronEnvironment_EthernetEventHandler; - } - - protected override void SetUpSources() - { - // Sources - var dict = ConfigReader.ConfigObject.GetSourceListForKey((Room as IEssentialsHuddleVtc1Room).SourceListKey); - if (dict != null) - { - // NEW PROCESS: - // Make these lists and insert the fusion attributes by iterating these - var setTopBoxes = dict.Where(d => d.Value.SourceDevice is ISetTopBoxControls); - uint i = 1; - foreach (var kvp in setTopBoxes) - { - TryAddRouteActionSigs(JoinMap.Display1DiscPlayerSourceStart.AttributeName + " " + i, JoinMap.Display1DiscPlayerSourceStart.JoinNumber + i, kvp.Key, kvp.Value.SourceDevice); - i++; - if (i > JoinMap.Display1SetTopBoxSourceStart.JoinSpan) // We only have five spots - break; - } - - var discPlayers = dict.Where(d => d.Value.SourceDevice is IDiscPlayerControls); - i = 1; - foreach (var kvp in discPlayers) - { - TryAddRouteActionSigs(JoinMap.Display1DiscPlayerSourceStart.AttributeName + " " + i, JoinMap.Display1DiscPlayerSourceStart.JoinNumber + i, kvp.Key, kvp.Value.SourceDevice); - i++; - if (i > 5) // We only have five spots - break; - } - - var laptops = dict.Where(d => d.Value.SourceDevice is Core.Devices.Laptop); - i = 1; - foreach (var kvp in laptops) - { - TryAddRouteActionSigs(JoinMap.Display1LaptopSourceStart.AttributeName + " " + i, JoinMap.Display1LaptopSourceStart.JoinNumber + i, kvp.Key, kvp.Value.SourceDevice); - i++; - if (i > JoinMap.Display1LaptopSourceStart.JoinSpan) // We only have ten spots??? - break; - } - - foreach (var kvp in dict) - { - var usageDevice = kvp.Value.SourceDevice as IUsageTracking; - - if (usageDevice != null) - { - usageDevice.UsageTracker = new UsageTracking(usageDevice as Device); - usageDevice.UsageTracker.UsageIsTracked = true; - usageDevice.UsageTracker.DeviceUsageEnded += new EventHandler(UsageTracker_DeviceUsageEnded); - } - } - - } - else - { - Debug.Console(1, this, "WARNING: Config source list '{0}' not found for room '{1}'", - (Room as IEssentialsHuddleVtc1Room).SourceListKey, Room.Key); - } - } - - protected override void SetUpDisplay() - { - try - { - //Setup Display Usage Monitoring - - var displays = DeviceManager.AllDevices.Where(d => d is DisplayBase); - - // Consider updating this in multiple display systems - - foreach (DisplayBase display in displays) - { - display.UsageTracker = new UsageTracking(display); - display.UsageTracker.UsageIsTracked = true; - display.UsageTracker.DeviceUsageEnded += new EventHandler(UsageTracker_DeviceUsageEnded); - } - - var defaultDisplay = (Room as IEssentialsHuddleVtc1Room).DefaultDisplay as DisplayBase; - if (defaultDisplay == null) - { - Debug.Console(1, this, "Cannot link null display to Fusion because default display is null"); - return; - } - - var dispPowerOnAction = new Action(b => { if (!b) defaultDisplay.PowerOn(); }); - var dispPowerOffAction = new Action(b => { if (!b) defaultDisplay.PowerOff(); }); - - // Display to fusion room sigs - FusionRoom.DisplayPowerOn.OutputSig.UserObject = dispPowerOnAction; - FusionRoom.DisplayPowerOff.OutputSig.UserObject = dispPowerOffAction; - - var defaultDisplayTwoWay = defaultDisplay as IHasPowerControlWithFeedback; - if (defaultDisplayTwoWay != null) - { - defaultDisplayTwoWay.PowerIsOnFeedback.LinkInputSig(FusionRoom.DisplayPowerOn.InputSig); - } - - if (defaultDisplay is IDisplayUsage) - (defaultDisplay as IDisplayUsage).LampHours.LinkInputSig(FusionRoom.DisplayUsage.InputSig); - - MapDisplayToRoomJoins(1, JoinMap.Display1Start.JoinNumber, defaultDisplay); - - var deviceConfig = ConfigReader.ConfigObject.Devices.FirstOrDefault(d => d.Key.Equals(defaultDisplay.Key)); - - //Check for existing asset in GUIDs collection - - var tempAsset = new FusionAsset(); - - if (FusionStaticAssets.ContainsKey(deviceConfig.Uid)) - { - tempAsset = FusionStaticAssets[deviceConfig.Uid]; - } - else - { - // Create a new asset - tempAsset = new FusionAsset(FusionRoomGuids.GetNextAvailableAssetNumber(FusionRoom), defaultDisplay.Name, "Display", ""); - FusionStaticAssets.Add(deviceConfig.Uid, tempAsset); - } - - var dispAsset = FusionRoom.CreateStaticAsset(tempAsset.SlotNumber, tempAsset.Name, "Display", tempAsset.InstanceId); - dispAsset.PowerOn.OutputSig.UserObject = dispPowerOnAction; - dispAsset.PowerOff.OutputSig.UserObject = dispPowerOffAction; - - - var defaultTwoWayDisplay = defaultDisplay as IHasPowerControlWithFeedback; - if (defaultTwoWayDisplay != null) - { - defaultTwoWayDisplay.PowerIsOnFeedback.LinkInputSig(FusionRoom.DisplayPowerOn.InputSig); - if (defaultDisplay is IDisplayUsage) - (defaultDisplay as IDisplayUsage).LampHours.LinkInputSig(FusionRoom.DisplayUsage.InputSig); - - defaultTwoWayDisplay.PowerIsOnFeedback.LinkInputSig(dispAsset.PowerOn.InputSig); - } - - // Use extension methods - dispAsset.TrySetMakeModel(defaultDisplay); - dispAsset.TryLinkAssetErrorToCommunication(defaultDisplay); - } - catch (Exception e) - { - Debug.Console(1, this, "Error setting up display in Fusion: {0}", e); - } - - } - - protected override void MapDisplayToRoomJoins(int displayIndex, uint joinOffset, DisplayBase display) - { - string displayName = string.Format("Display {0} - ", displayIndex); - - - if (display == (Room as IEssentialsHuddleVtc1Room).DefaultDisplay) - { - // Power on - var defaultDisplayPowerOn = FusionRoom.CreateOffsetBoolSig((uint)joinOffset, displayName + "Power On", eSigIoMask.InputOutputSig); - defaultDisplayPowerOn.OutputSig.UserObject = new Action(b => { if (!b) display.PowerOn(); }); - - // Power Off - var defaultDisplayPowerOff = FusionRoom.CreateOffsetBoolSig((uint)joinOffset + 1, displayName + "Power Off", eSigIoMask.InputOutputSig); - defaultDisplayPowerOn.OutputSig.UserObject = new Action(b => { if (!b) display.PowerOff(); }); ; - - var displayTwoWay = display as IHasPowerControlWithFeedback; - if (displayTwoWay != null) - { - displayTwoWay.PowerIsOnFeedback.LinkInputSig(defaultDisplayPowerOn.InputSig); - displayTwoWay.PowerIsOnFeedback.LinkInputSig(defaultDisplayPowerOn.InputSig); - } - - // Current Source - var defaultDisplaySourceNone = FusionRoom.CreateOffsetBoolSig((uint)joinOffset + 8, displayName + "Source None", eSigIoMask.InputOutputSig); - defaultDisplaySourceNone.OutputSig.UserObject = new Action(b => { if (!b) (Room as IEssentialsHuddleVtc1Room).RunRouteAction("roomOff", Room.SourceListKey); }); ; - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Fusion/EssentialsTechRoomFusionSystemController.cs b/PepperDashEssentials/Fusion/EssentialsTechRoomFusionSystemController.cs deleted file mode 100644 index 0630c53a..00000000 --- a/PepperDashEssentials/Fusion/EssentialsTechRoomFusionSystemController.cs +++ /dev/null @@ -1,106 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.Fusion; - -namespace PepperDash.Essentials.Fusion -{ - public class EssentialsTechRoomFusionSystemController : EssentialsHuddleSpaceFusionSystemControllerBase - { - public EssentialsTechRoomFusionSystemController(EssentialsTechRoom room, uint ipId, string joinMapKey) - : base(room, ipId, joinMapKey) - { - - } - - protected override void SetUpDisplay() - { - try - { - - var displays = (Room as EssentialsTechRoom).Displays; - - Debug.Console(1, this, "Setting up Static Assets for {0} Displays", displays.Count); - - foreach (var display in displays.Values.Cast()) - { - var disp = display; // Local scope variable - - Debug.Console(2, this, "Setting up Static Asset for {0}", disp.Key); - - disp.UsageTracker = new UsageTracking(disp) { UsageIsTracked = true }; - disp.UsageTracker.DeviceUsageEnded += UsageTracker_DeviceUsageEnded; - - var dispPowerOnAction = new Action(b => - { - if (!b) - { - disp.PowerOn(); - } - }); - var dispPowerOffAction = new Action(b => - { - if (!b) - { - disp.PowerOff(); - } - }); - - var deviceConfig = ConfigReader.ConfigObject.GetDeviceForKey(disp.Key); - - FusionAsset tempAsset; - - if (FusionStaticAssets.ContainsKey(deviceConfig.Uid)) - { - // Used existing asset - tempAsset = FusionStaticAssets[deviceConfig.Uid]; - } - else - { - // Create a new asset - tempAsset = new FusionAsset(FusionRoomGuids.GetNextAvailableAssetNumber(FusionRoom), - disp.Name, "Display", ""); - FusionStaticAssets.Add(deviceConfig.Uid, tempAsset); - } - - var dispAsset = FusionRoom.CreateStaticAsset(tempAsset.SlotNumber, tempAsset.Name, "Display", - tempAsset.InstanceId); - - if (dispAsset != null) - { - dispAsset.PowerOn.OutputSig.UserObject = dispPowerOnAction; - dispAsset.PowerOff.OutputSig.UserObject = dispPowerOffAction; - - // Use extension methods - dispAsset.TrySetMakeModel(disp); - dispAsset.TryLinkAssetErrorToCommunication(disp); - } - - var defaultTwoWayDisplay = disp as IHasPowerControlWithFeedback; - if (defaultTwoWayDisplay != null) - { - defaultTwoWayDisplay.PowerIsOnFeedback.LinkInputSig(FusionRoom.DisplayPowerOn.InputSig); - if (disp is IDisplayUsage) - { - (disp as IDisplayUsage).LampHours.LinkInputSig(FusionRoom.DisplayUsage.InputSig); - } - - if(dispAsset != null) - defaultTwoWayDisplay.PowerIsOnFeedback.LinkInputSig(dispAsset.PowerOn.InputSig); - } - - } - } - catch (Exception e) - { - Debug.Console(1, this, "Error setting up displays in Fusion: {0}", e); - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Fusion/FusionSystemController.cs.orig b/PepperDashEssentials/Fusion/FusionSystemController.cs.orig deleted file mode 100644 index f783b3c7..00000000 --- a/PepperDashEssentials/Fusion/FusionSystemController.cs.orig +++ /dev/null @@ -1,1415 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -using Crestron.SimplSharp; -using Crestron.SimplSharp.CrestronIO; -using Crestron.SimplSharp.CrestronXml; -using Crestron.SimplSharp.CrestronXml.Serialization; -using Crestron.SimplSharp.CrestronXmlLinq; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.Fusion; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; - -using PepperDash.Core; -using PepperDash.Essentials; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Devices.Common; - - - -namespace PepperDash.Essentials.Fusion -{ - public class EssentialsHuddleSpaceFusionSystemController : Device - { - public event EventHandler ScheduleChange; - public event EventHandler MeetingEndWarning; - public event EventHandler NextMeetingBeginWarning; - - FusionRoom FusionRoom; - EssentialsHuddleSpaceRoom Room; - Dictionary SourceToFeedbackSigs = - new Dictionary(); - - //BooleanSigData OccupancyStatusSig; - - StatusMonitorCollection ErrorMessageRollUp; - - StringSigData CurrentRoomSourceNameSig; - - #region System Info Sigs - //StringSigData SystemName; - //StringSigData Model; - //StringSigData SerialNumber; - //StringSigData Uptime; - #endregion - - - #region Processor Info Sigs - StringSigData Ip1; - StringSigData Ip2; - StringSigData Gateway; - StringSigData Hostname; - StringSigData Domain; - StringSigData Dns1; - StringSigData Dns2; - StringSigData Mac1; - StringSigData Mac2; - StringSigData NetMask1; - StringSigData NetMask2; - StringSigData Firmware; - - StringSigData[] Program = new StringSigData[10]; - #endregion - - #region Default Display Source Sigs - - BooleanSigData[] Source = new BooleanSigData[10]; - - #endregion - - RoomSchedule CurrentSchedule; - - Event NextMeeting; - - Event CurrentMeeting; - - string RoomGuid - { - get - { - return GUIDs.RoomGuid; - } - - } - - uint IpId; - - FusionRoomGuids GUIDs; - - bool GuidFileExists; - - bool IsRegisteredForSchedulePushNotifications = false; - - CTimer PollTimer = null; - - CTimer PushNotificationTimer = null; - - // Default poll time is 5 min unless overridden by config value - public long SchedulePollInterval = 300000; - - public long PushNotificationTimeout = 5000; - - Dictionary FusionStaticAssets; - - FusionOccupancySensorAsset FusionOccSensor; - - //ScheduleResponseEvent NextMeeting; - - public EssentialsHuddleSpaceFusionSystemController(EssentialsHuddleSpaceRoom room, uint ipId) - : base(room.Key + "-fusion") - { - - Room = room; - - IpId = ipId; - - FusionStaticAssets = new Dictionary(); - - GUIDs = new FusionRoomGuids(); - - var mac = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_MAC_ADDRESS, 0); - - var slot = Global.ControlSystem.ProgramNumber; - - string guidFilePath = string.Format(@"\NVRAM\Program{0}\{1}-FusionGuids.json", Global.ControlSystem.ProgramNumber, InitialParametersClass.ProgramIDTag); - - GuidFileExists = File.Exists(guidFilePath); - - if (GuidFileExists) - { - ReadGuidFile(guidFilePath); - } - else - { - GUIDs = new FusionRoomGuids(Room.Name, ipId, GUIDs.GenerateNewRoomGuid(slot, mac), FusionStaticAssets); - } - - CreateSymbolAndBasicSigs(IpId); - SetUpSources(); - SetUpCommunitcationMonitors(); - SetUpDisplay(); - SetUpError(); - //SetUpOccupancy(); - - // Make it so! - FusionRVI.GenerateFileForAllFusionDevices(); - - GenerateGuidFile(guidFilePath); - } - - /// - /// Generates the guid file in NVRAM. If the file already exists it will be overwritten. - /// - /// path for the file - void GenerateGuidFile(string filePath) - { - if (string.IsNullOrEmpty(filePath)) - { - Debug.Console(0, this, "Error writing guid file. No path specified."); - return; - } - - CCriticalSection _fileLock = new CCriticalSection(); - - try - { - if (_fileLock == null || _fileLock.Disposed) - return; - - _fileLock.Enter(); - - Debug.Console(1, this, "Writing GUIDs to file"); - - if (FusionOccSensor == null) - GUIDs = new FusionRoomGuids(Room.Name, IpId, RoomGuid, FusionStaticAssets); - else - GUIDs = new FusionRoomGuids(Room.Name, IpId, RoomGuid, FusionStaticAssets, FusionOccSensor); - - var JSON = JsonConvert.SerializeObject(GUIDs, Newtonsoft.Json.Formatting.Indented); - - using (StreamWriter sw = new StreamWriter(filePath)) - { - sw.Write(JSON); - sw.Flush(); - } - - Debug.Console(1, this, "Guids successfully written to file '{0}'", filePath); - - } - catch (Exception e) - { - Debug.Console(0, this, "Error writing guid file: {0}", e); - } - finally - { - if (_fileLock != null && !_fileLock.Disposed) - _fileLock.Leave(); - } - } - - /// - /// Reads the guid file from NVRAM - /// - /// path for te file - void ReadGuidFile(string filePath) - { - if(string.IsNullOrEmpty(filePath)) - { - Debug.Console(0, this, "Error reading guid file. No path specified."); - return; - } - - CCriticalSection _fileLock = new CCriticalSection(); - - try - { - if(_fileLock == null || _fileLock.Disposed) - return; - - _fileLock.Enter(); - - if(File.Exists(filePath)) - { - var JSON = File.ReadToEnd(filePath, Encoding.ASCII); - - GUIDs = JsonConvert.DeserializeObject(JSON); - - IpId = GUIDs.IpId; - - FusionStaticAssets = GUIDs.StaticAssets; - - } - - Debug.Console(0, this, "Fusion Guids successfully read from file:"); - - Debug.Console(1, this, "\nRoom Name: {0}\nIPID: {1:x}\n RoomGuid: {2}", Room.Name, IpId, RoomGuid); - - foreach (KeyValuePair item in FusionStaticAssets) - { - Debug.Console(1, this, "\nAsset Name: {0}\nAsset No: {1}\n Guid: {2}", item.Value.Name, item.Value.SlotNumber, item.Value.InstanceId); - } - } - catch (Exception e) - { - Debug.Console(0, this, "Error reading guid file: {0}", e); - } - finally - { - if(_fileLock != null && !_fileLock.Disposed) - _fileLock.Leave(); - } - - } - - void CreateSymbolAndBasicSigs(uint ipId) - { - Debug.Console(1, this, "Creating Fusion Room symbol with GUID: {0}", RoomGuid); - - FusionRoom = new FusionRoom(ipId, Global.ControlSystem, Room.Name, RoomGuid); - FusionRoom.ExtenderRoomViewSchedulingDataReservedSigs.Use(); - FusionRoom.ExtenderFusionRoomDataReservedSigs.Use(); - - FusionRoom.Register(); - - FusionRoom.FusionStateChange += new FusionStateEventHandler(FusionRoom_FusionStateChange); - - FusionRoom.ExtenderRoomViewSchedulingDataReservedSigs.DeviceExtenderSigChange += new DeviceExtenderJoinChangeEventHandler(FusionRoomSchedule_DeviceExtenderSigChange); - FusionRoom.ExtenderFusionRoomDataReservedSigs.DeviceExtenderSigChange += new DeviceExtenderJoinChangeEventHandler(ExtenderFusionRoomDataReservedSigs_DeviceExtenderSigChange); - FusionRoom.OnlineStatusChange += new OnlineStatusChangeEventHandler(FusionRoom_OnlineStatusChange); - - CrestronConsole.AddNewConsoleCommand(RequestFullRoomSchedule, "FusReqRoomSchedule", "Requests schedule of the room for the next 24 hours", ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(ModifyMeetingEndTimeConsoleHelper, "FusReqRoomSchMod", "Ends or extends a meeting by the specified time", ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(CreateAsHocMeeting, "FusCreateMeeting", "Creates and Ad Hoc meeting for on hour or until the next meeting", ConsoleAccessLevelEnum.AccessOperator); - - // Room to fusion room - Room.OnFeedback.LinkInputSig(FusionRoom.SystemPowerOn.InputSig); - - // Moved to - CurrentRoomSourceNameSig = FusionRoom.CreateOffsetStringSig(84, "Display 1 - Current Source", eSigIoMask.InputSigOnly); - // Don't think we need to get current status of this as nothing should be alive yet. - Room.CurrentSingleSourceChange += new SourceInfoChangeHandler(Room_CurrentSourceInfoChange); - - - FusionRoom.SystemPowerOn.OutputSig.SetSigFalseAction(Room.PowerOnToDefaultOrLastSource); - FusionRoom.SystemPowerOff.OutputSig.SetSigFalseAction(() => Room.RunRouteAction("roomOff")); - // NO!! room.RoomIsOn.LinkComplementInputSig(FusionRoom.SystemPowerOff.InputSig); - FusionRoom.ErrorMessage.InputSig.StringValue = - "3: 7 Errors: This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;"; - - GetProcessorEthernetValues(); - - GetSystemInfo(); - - GetProcessorInfo(); - - CrestronEnvironment.EthernetEventHandler += new EthernetEventHandler(CrestronEnvironment_EthernetEventHandler); - } - - void CrestronEnvironment_EthernetEventHandler(EthernetEventArgs ethernetEventArgs) - { - if (ethernetEventArgs.EthernetEventType == eEthernetEventType.LinkUp) - { - GetProcessorEthernetValues(); - } - } - - void GetSystemInfo() - { - //SystemName.InputSig.StringValue = Room.Name; - //Model.InputSig.StringValue = InitialParametersClass.ControllerPromptName; - //SerialNumber.InputSig.StringValue = InitialParametersClass. - - string response = string.Empty; - - var systemReboot = FusionRoom.CreateOffsetBoolSig(74, "Processor - Reboot", eSigIoMask.OutputSigOnly); - systemReboot.OutputSig.SetSigFalseAction(() => CrestronConsole.SendControlSystemCommand("reboot", ref response)); - } - - void GetProcessorEthernetValues() - { - Ip1 = FusionRoom.CreateOffsetStringSig(50, "Info - Processor - IP 1", eSigIoMask.InputSigOnly); - Ip2 = FusionRoom.CreateOffsetStringSig(51, "Info - Processor - IP 2", eSigIoMask.InputSigOnly); - Gateway = FusionRoom.CreateOffsetStringSig(52, "Info - Processor - Gateway", eSigIoMask.InputSigOnly); - Hostname = FusionRoom.CreateOffsetStringSig(53, "Info - Processor - Hostname", eSigIoMask.InputSigOnly); - Domain = FusionRoom.CreateOffsetStringSig(54, "Info - Processor - Domain", eSigIoMask.InputSigOnly); - Dns1 = FusionRoom.CreateOffsetStringSig(55, "Info - Processor - DNS 1", eSigIoMask.InputSigOnly); - Dns2 = FusionRoom.CreateOffsetStringSig(56, "Info - Processor - DNS 2", eSigIoMask.InputSigOnly); - Mac1 = FusionRoom.CreateOffsetStringSig(57, "Info - Processor - MAC 1", eSigIoMask.InputSigOnly); - Mac2 = FusionRoom.CreateOffsetStringSig(58, "Info - Processor - MAC 2", eSigIoMask.InputSigOnly); - NetMask1 = FusionRoom.CreateOffsetStringSig(59, "Info - Processor - Net Mask 1", eSigIoMask.InputSigOnly); - NetMask2 = FusionRoom.CreateOffsetStringSig(60, "Info - Processor - Net Mask 2", eSigIoMask.InputSigOnly); - - // Interface =0 - Ip1.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, 0); - Gateway.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_ROUTER, 0); - Hostname.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_HOSTNAME, 0); - Domain.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_DOMAIN_NAME, 0); - - var dnsServers = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_DNS_SERVER, 0).Split(','); - Dns1.InputSig.StringValue = dnsServers[0]; - if (dnsServers.Length > 1) - Dns2.InputSig.StringValue = dnsServers[1]; - - Mac1.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_MAC_ADDRESS, 0); - NetMask1.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_MASK, 0); - - // Interface 1 - - if (InitialParametersClass.NumberOfEthernetInterfaces > 1) // Only get these values if the processor has more than 1 NIC - { - Ip2.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, 1); - Mac2.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_MAC_ADDRESS, 1); - NetMask2.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_MASK, 1); - } - } - - void GetProcessorInfo() - { - //SystemName = FusionRoom.CreateOffsetStringSig(50, "Info - Processor - System Name", eSigIoMask.InputSigOnly); - //Model = FusionRoom.CreateOffsetStringSig(51, "Info - Processor - Model", eSigIoMask.InputSigOnly); - //SerialNumber = FusionRoom.CreateOffsetStringSig(52, "Info - Processor - Serial Number", eSigIoMask.InputSigOnly); - //Uptime = FusionRoom.CreateOffsetStringSig(53, "Info - Processor - Uptime", eSigIoMask.InputSigOnly); - - Firmware = FusionRoom.CreateOffsetStringSig(61, "Info - Processor - Firmware", eSigIoMask.InputSigOnly); - - for (int i = 0; i < Global.ControlSystem.NumProgramsSupported; i++) - { - var join = 62 + i; - var progNum = i + 1; - Program[i] = FusionRoom.CreateOffsetStringSig((uint)join, string.Format("Info - Processor - Program {0}", progNum), eSigIoMask.InputSigOnly); - } - - Firmware.InputSig.StringValue = InitialParametersClass.FirmwareVersion; - - //var programs = ProcessorProgReg.GetProcessorProgReg(); - - //for (int i = 1; i < Global.ControlSystem.NumProgramsSupported; i++) - //{ - // var join = 62 + i; - // var progNum = i + 1; - // if (programs[i].Exists) - // Program[i].InputSig.StringValue = programs[i].Name; - //} - - } - - void GetTouchpanelInfo() - { - // TODO Get IP and Project Name from TP - } - - void FusionRoom_OnlineStatusChange(GenericBase currentDevice, OnlineOfflineEventArgs args) - { - if (args.DeviceOnLine) - { - CrestronEnvironment.Sleep(200); - - // Send Push Notification Action request: - - string requestID = "InitialPushRequest"; - - - string actionRequest = - string.Format("\n{0}\n", requestID) + - "RegisterPushModel\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n"; - - Debug.Console(2, this, "Sending Fusion ActionRequest: \n{0}", actionRequest); - - FusionRoom.ExtenderFusionRoomDataReservedSigs.ActionQuery.StringValue = actionRequest; - - - // Request current Fusion Server Time - - string timeRequestID = "TimeRequest"; - - string timeRequest = string.Format("{0}", timeRequestID); - - FusionRoom.ExtenderFusionRoomDataReservedSigs.LocalDateTimeQuery.StringValue = timeRequest; - } - - } - - /// - /// Generates a room schedule request for this room for the next 24 hours. - /// - /// string identifying this request. Used with a corresponding ScheduleResponse value - public void RequestFullRoomSchedule(object callbackObject) - { - DateTime now = DateTime.Today; - - string currentTime = now.ToString("s"); - - string requestTest = - string.Format("FullSchedleRequest{0}{1}24", RoomGuid, currentTime); - - Debug.Console(2, this, "Sending Fusion ScheduleQuery: \n{0}", requestTest); - - FusionRoom.ExtenderRoomViewSchedulingDataReservedSigs.ScheduleQuery.StringValue = requestTest; - - if (IsRegisteredForSchedulePushNotifications) - PushNotificationTimer.Stop(); - } - - /// - /// Wrapper method to allow console commands to modify the current meeting end time - /// - /// meetingID extendTime - public void ModifyMeetingEndTimeConsoleHelper(string command) - { - string requestID; - string meetingID = null; - int extendMinutes = -1; - - requestID = "ModifyMeetingTest12345"; - - try - { - var tokens = command.Split(' '); - - meetingID = tokens[0]; - extendMinutes = Int32.Parse(tokens[1]); - - } - catch (Exception e) - { - Debug.Console(1, this, "Error parsing console command: {0}", e); - } - - ModifyMeetingEndTime(requestID, extendMinutes); - - } - - /// - /// Ends or Extends the current meeting by the specified number of minutes. - /// - /// Number of minutes to extend the meeting. A value of 0 will end the meeting. - public void ModifyMeetingEndTime(string requestID, int extendMinutes) - { - if(CurrentMeeting == null) - { - Debug.Console(1, this, "No meeting in progress. Unable to modify end time."); - return; - } - - if (extendMinutes > -1) - { - if(extendMinutes > 0) - { - var extendTime = CurrentMeeting.dtEnd - DateTime.Now; - double extendMinutesRaw = extendTime.TotalMinutes; - - extendMinutes = extendMinutes + (int)Math.Round(extendMinutesRaw); - } - - - string requestTest = string.Format( - "{0}{1}MeetingChange" - , requestID, RoomGuid, CurrentMeeting.MeetingID, extendMinutes); - - Debug.Console(1, this, "Sending MeetingChange Request: \n{0}", requestTest); - - FusionRoom.ExtenderFusionRoomDataReservedSigs.ActionQuery.StringValue = requestTest; - } - else - { - Debug.Console(1, this, "Invalid time specified"); - } - - - } - - /// - /// Creates and Ad Hoc meeting with a duration of 1 hour, or until the next meeting if in less than 1 hour. - /// - public void CreateAsHocMeeting(string command) - { - string requestID = "CreateAdHocMeeting"; - - DateTime now = DateTime.Now.AddMinutes(1); - - now.AddSeconds(-now.Second); - - // Assume 1 hour meeting if possible - DateTime dtEnd = now.AddHours(1); - - // Check if room is available for 1 hour before next meeting - if (NextMeeting != null) - { - var roomAvailable = NextMeeting.dtEnd.Subtract(dtEnd); - - if (roomAvailable.TotalMinutes < 60) - { - /// Room not available for full hour, book until next meeting starts - dtEnd = NextMeeting.dtEnd; - } - } - - string createMeetingRequest = - "" + - string.Format("{0}", requestID) + - string.Format("{0}", RoomGuid) + - "" + - string.Format("{0}", now.ToString("s")) + - string.Format("{0}", dtEnd.ToString("s")) + - "AdHoc Meeting" + - "Room User" + - "Example Message" + - "" + - ""; - - Debug.Console(2, this, "Sending CreateMeeting Request: \n{0}", createMeetingRequest); - - FusionRoom.ExtenderRoomViewSchedulingDataReservedSigs.CreateMeeting.StringValue = createMeetingRequest; - - //Debug.Console(1, this, "Sending CreateMeeting Request: \n{0}", command); - - //FusionRoom.ExtenderRoomViewSchedulingDataReservedSigs.CreateMeeting.StringValue = command; - - } - - /// - /// Event handler method for Device Extender sig changes - /// - /// - /// - void ExtenderFusionRoomDataReservedSigs_DeviceExtenderSigChange(DeviceExtender currentDeviceExtender, SigEventArgs args) - { - Debug.Console(2, this, "Event: {0}\n Sig: {1}\nFusionResponse:\n{2}", args.Event, args.Sig.Name, args.Sig.StringValue); - - - if (args.Sig == FusionRoom.ExtenderFusionRoomDataReservedSigs.ActionQueryResponse) - { - try - { - XmlDocument message = new XmlDocument(); - - message.LoadXml(args.Sig.StringValue); - - var actionResponse = message["ActionResponse"]; - - if (actionResponse != null) - { - var requestID = actionResponse["RequestID"]; - - if (requestID.InnerText == "InitialPushRequest") - { - if (actionResponse["ActionID"].InnerText == "RegisterPushModel") - { - var parameters = actionResponse["Parameters"]; - - foreach (XmlElement parameter in parameters) - { - if (parameter.HasAttributes) - { - var attributes = parameter.Attributes; - - if (attributes["ID"].Value == "Registered") - { - var isRegistered = Int32.Parse(attributes["Value"].Value); - - if (isRegistered == 1) - { - IsRegisteredForSchedulePushNotifications = true; - - if (PollTimer != null && !PollTimer.Disposed) - { - PollTimer.Stop(); - PollTimer.Dispose(); - } - - PushNotificationTimer = new CTimer(RequestFullRoomSchedule, null, PushNotificationTimeout, PushNotificationTimeout); - - PushNotificationTimer.Reset(PushNotificationTimeout, PushNotificationTimeout); - } - else if (isRegistered == 0) - { - IsRegisteredForSchedulePushNotifications = false; - - if (PushNotificationTimer != null && !PushNotificationTimer.Disposed) - { - PushNotificationTimer.Stop(); - PushNotificationTimer.Dispose(); - } - - PollTimer = new CTimer(RequestFullRoomSchedule, null, SchedulePollInterval, SchedulePollInterval); - - PollTimer.Reset(SchedulePollInterval, SchedulePollInterval); - } - } - } - } - } - } - } - } - catch (Exception e) - { - Debug.Console(1, this, "Error parsing ActionQueryResponse: {0}", e); - } - } - else if (args.Sig == FusionRoom.ExtenderFusionRoomDataReservedSigs.LocalDateTimeQueryResponse) - { - try - { - XmlDocument message = new XmlDocument(); - - message.LoadXml(args.Sig.StringValue); - - var localDateTimeResponse = message["LocalTimeResponse"]; - - if (localDateTimeResponse != null) - { - var localDateTime = localDateTimeResponse["LocalDateTime"]; - - if (localDateTime != null) - { - var tempLocalDateTime = localDateTime.InnerText; - - DateTime currentTime = DateTime.Parse(tempLocalDateTime); - - Debug.Console(1, this, "DateTime from Fusion Server: {0}", currentTime); - - // Parse time and date from response and insert values - CrestronEnvironment.SetTimeAndDate((ushort)currentTime.Hour, (ushort)currentTime.Minute, (ushort)currentTime.Second, (ushort)currentTime.Month, (ushort)currentTime.Day, (ushort)currentTime.Year); - - Debug.Console(1, this, "Processor time set to {0}", CrestronEnvironment.GetLocalTime()); - } - } - } - catch (Exception e) - { - Debug.Console(1, this, "Error parsing LocalDateTimeQueryResponse: {0}", e); - } - } - } - - /// - /// Event handler method for Device Extender sig changes - /// - /// - /// - void FusionRoomSchedule_DeviceExtenderSigChange(DeviceExtender currentDeviceExtender, SigEventArgs args) - { - Debug.Console(2, this, "Scehdule Response Event: {0}\n Sig: {1}\nFusionResponse:\n{2}", args.Event, args.Sig.Name, args.Sig.StringValue); - - - if (args.Sig == FusionRoom.ExtenderRoomViewSchedulingDataReservedSigs.ScheduleResponse) - { - try - { - ScheduleResponse scheduleResponse = new ScheduleResponse(); - - XmlDocument message = new XmlDocument(); - - message.LoadXml(args.Sig.StringValue); - - var response = message["ScheduleResponse"]; - - if (response != null) - { - // Check for push notification - if (response["RequestID"].InnerText == "RVRequest") - { - var action = response["Action"]; - - if (action.OuterXml.IndexOf("RequestSchedule") > -1) - { - PushNotificationTimer.Reset(PushNotificationTimeout, PushNotificationTimeout); - } - } - else // Not a push notification - { - CurrentSchedule = new RoomSchedule(); // Clear Current Schedule - CurrentMeeting = null; // Clear Current Meeting - NextMeeting = null; // Clear Next Meeting - - bool isNextMeeting = false; - - foreach (XmlElement element in message.FirstChild.ChildNodes) - { - if (element.Name == "RequestID") - { - scheduleResponse.RequestID = element.InnerText; - } - else if (element.Name == "RoomID") - { - scheduleResponse.RoomID = element.InnerText; - } - else if (element.Name == "RoomName") - { - scheduleResponse.RoomName = element.InnerText; - } - else if (element.Name == "Event") - { - Debug.Console(2, this, "Event Found:\n{0}", element.OuterXml); - - XmlReader reader = new XmlReader(element.OuterXml); - - Event tempEvent = new Event(); - - tempEvent = CrestronXMLSerialization.DeSerializeObject(reader); - - scheduleResponse.Events.Add(tempEvent); - - // Check is this is the current event - if (tempEvent.dtStart <= DateTime.Now && tempEvent.dtEnd >= DateTime.Now) - { - CurrentMeeting = tempEvent; // Set Current Meeting - isNextMeeting = true; // Flag that next element is next meeting - } - - if (isNextMeeting) - { - NextMeeting = tempEvent; // Set Next Meeting - isNextMeeting = false; - } - - CurrentSchedule.Meetings.Add(tempEvent); - } - - } - - PrintTodaysSchedule(); - - if (!IsRegisteredForSchedulePushNotifications) - PollTimer.Reset(SchedulePollInterval, SchedulePollInterval); - - // Fire Schedule Change Event - var handler = ScheduleChange; - - if (handler != null) - { - handler(this, new ScheduleChangeEventArgs() { Schedule = CurrentSchedule }); - } - - } - } - - - - } - catch (Exception e) - { - Debug.Console(1, this, "Error parsing ScheduleResponse: {0}", e); - } - } - else if (args.Sig == FusionRoom.ExtenderRoomViewSchedulingDataReservedSigs.CreateResponse) - { - Debug.Console(2, this, "Create Meeting Response Event: {0}\n Sig: {1}\nFusionResponse:\n{2}", args.Event, args.Sig.Name, args.Sig.StringValue); - } - - } - - /// - /// Prints today's schedule to console for debugging - /// - void PrintTodaysSchedule() - { - if (Debug.Level > 1) - { - if (CurrentSchedule.Meetings.Count > 0) - { - Debug.Console(1, this, "Today's Schedule for '{0}'\n", Room.Name); - - foreach (Event e in CurrentSchedule.Meetings) - { - Debug.Console(1, this, "Subject: {0}", e.Subject); - Debug.Console(1, this, "Organizer: {0}", e.Organizer); - Debug.Console(1, this, "MeetingID: {0}", e.MeetingID); - Debug.Console(1, this, "Start Time: {0}", e.dtStart); - Debug.Console(1, this, "End Time: {0}", e.dtEnd); - Debug.Console(1, this, "Duration: {0}\n", e.DurationInMinutes); - } - } - } - } - - void SetUpSources() - { - // Sources - var dict = ConfigReader.ConfigObject.GetSourceListForKey(Room.SourceListKey); - if (dict != null) - { - // NEW PROCESS: - // Make these lists and insert the fusion attributes by iterating these - var setTopBoxes = dict.Where(d => d.Value.SourceDevice is ISetTopBoxControls); - uint i = 1; - foreach (var kvp in setTopBoxes) - { - TryAddRouteActionSigs("Display 1 - Source TV " + i, 188 + i, kvp.Key, kvp.Value.SourceDevice); - i++; - if (i > 5) // We only have five spots - break; - } - - var discPlayers = dict.Where(d => d.Value.SourceDevice is IDiscPlayerControls); - i = 1; - foreach (var kvp in discPlayers) - { - TryAddRouteActionSigs("Display 1 - Source DVD " + i, 181 + i, kvp.Key, kvp.Value.SourceDevice); - i++; - if (i > 5) // We only have five spots - break; - } - - var laptops = dict.Where(d => d.Value.SourceDevice is Laptop); - i = 1; - foreach (var kvp in laptops) - { - TryAddRouteActionSigs("Display 1 - Source Laptop " + i, 166 + i, kvp.Key, kvp.Value.SourceDevice); - i++; - if (i > 10) // We only have ten spots??? - break; - } - - foreach (var kvp in dict) - { - var usageDevice = kvp.Value.SourceDevice as IUsageTracking; - - if (usageDevice != null) - { - usageDevice.UsageTracker = new UsageTracking(usageDevice as Device); - usageDevice.UsageTracker.UsageIsTracked = true; - usageDevice.UsageTracker.DeviceUsageEnded += new EventHandler(UsageTracker_DeviceUsageEnded); - } - } - - } - else - { - Debug.Console(1, this, "WARNING: Config source list '{0}' not found for room '{1}'", - Room.SourceListKey, Room.Key); - } - } - - /// - /// Collects usage data from source and sends to Fusion - /// - /// - /// - void UsageTracker_DeviceUsageEnded(object sender, DeviceUsageEventArgs e) - { - var deviceTracker = sender as UsageTracking; - - var configDevice = ConfigReader.ConfigObject.Devices.Where(d => d.Key.Equals(deviceTracker.Parent)); - - string group = ConfigReader.GetGroupForDeviceKey(deviceTracker.Parent.Key); - - string currentMeetingId = "-"; - - if (CurrentMeeting != null) - currentMeetingId = CurrentMeeting.MeetingID; - - //String Format: "USAGE||[Date YYYY-MM-DD]||[Time HH-mm-ss]||TIME||[Asset_Type]||[Asset_Name]||[Minutes_used]||[Asset_ID]||[Meeting_ID]" - // [Asset_ID] property does not appear to be used in Crestron SSI examples. They are sending "-" instead so that's what is replicated here - string deviceUsage = string.Format("USAGE||{0}||{1}||TIME||{2}||{3}||-||{4}||-||{5}||{6}||\r\n", e.UsageEndTime.ToString("yyyy-MM-dd"), e.UsageEndTime.ToString("HH:mm:ss"), - group, deviceTracker.Parent.Name, e.MinutesUsed, "-", currentMeetingId); - - Debug.Console(1, this, "Device usage for: {0} ended at {1}. In use for {2} minutes", deviceTracker.Parent.Name, e.UsageEndTime, e.MinutesUsed); - - FusionRoom.DeviceUsage.InputSig.StringValue = deviceUsage; - - Debug.Console(1, this, "Device usage string: {0}", deviceUsage); - } - - - void TryAddRouteActionSigs(string attrName, uint attrNum, string routeKey, Device pSrc) - { - Debug.Console(2, this, "Creating attribute '{0}' with join {1} for source {2}", - attrName, attrNum, pSrc.Key); - try - { - var sigD = FusionRoom.CreateOffsetBoolSig(attrNum, attrName, eSigIoMask.InputOutputSig); - // Need feedback when this source is selected - // Event handler, added below, will compare source changes with this sig dict - SourceToFeedbackSigs.Add(pSrc, sigD.InputSig); - - // And respond to selection in Fusion - sigD.OutputSig.SetSigFalseAction(() => Room.RunRouteAction(routeKey)); - } - catch (Exception) - { - Debug.Console(2, this, "Error creating Fusion signal {0} {1} for device '{2}'. THIS NEEDS REWORKING", attrNum, attrName, pSrc.Key); - } - } - - /// - /// - /// - void SetUpCommunitcationMonitors() - { - // Attach to all room's devices with monitors. - //foreach (var dev in DeviceManager.Devices) - foreach (var dev in DeviceManager.GetDevices()) - { - if (!(dev is ICommunicationMonitor)) - continue; - - var keyNum = ExtractNumberFromKey(dev.Key); - if (keyNum == -1) - { - Debug.Console(1, this, "WARNING: Cannot link device '{0}' to numbered Fusion monitoring attributes", - dev.Key); - continue; - } - string attrName = null; - uint attrNum = Convert.ToUInt32(keyNum); - -<<<<<<< HEAD - - - if (dev is BasicTriListWithSmartObject) - { - if (attrNum > 10) - continue; - attrName = "Online - Touch Panel " + attrNum; - attrNum += 150; - } - // add xpanel here - - //if (dev is Crestron.SimplSharpPro.UI.XpanelForSmartGraphics) - //{ - // if (attrNum > 10) - // continue; - // attrName = "Online - XPanel " + attrNum; - // attrNum += 160; - //} -======= - if (dev is EssentialsTouchpanelController) - { - if ((dev as EssentialsTouchpanelController).Panel is Crestron.SimplSharpPro.DeviceSupport.TswFt5Button) - { - if (attrNum > 10) - continue; - attrName = "Online - Touch Panel " + attrNum; - attrNum += 150; - } - else if ((dev as EssentialsTouchpanelController).Panel is Crestron.SimplSharpPro.UI.XpanelForSmartGraphics) - { - if (attrNum > 10) - continue; - attrName = "Online - XPanel " + attrNum; - attrNum += 160; - } - } ->>>>>>> origin/feature/cisco-spark - - //else - if (dev is DisplayBase) - { - if (attrNum > 10) - continue; - attrName = "Online - Display " + attrNum; - attrNum += 170; - } - //else if (dev is DvdDeviceBase) - //{ - // if (attrNum > 5) - // continue; - // attrName = "Device Ok - DVD " + attrNum; - // attrNum += 260; - //} - // add set top box - - // add Cresnet roll-up - - // add DM-devices roll-up - - if (attrName != null) - { - // Link comm status to sig and update - var sigD = FusionRoom.CreateOffsetBoolSig(attrNum, attrName, eSigIoMask.InputSigOnly); - var smd = dev as ICommunicationMonitor; - sigD.InputSig.BoolValue = smd.CommunicationMonitor.Status == MonitorStatus.IsOk; - smd.CommunicationMonitor.StatusChange += (o, a) => - { sigD.InputSig.BoolValue = a.Status == MonitorStatus.IsOk; }; - Debug.Console(0, this, "Linking '{0}' communication monitor to Fusion '{1}'", dev.Key, attrName); - } - } - } - - void SetUpDisplay() - { - try - { - //Setup Display Usage Monitoring - - var displays = DeviceManager.AllDevices.Where(d => d is DisplayBase); - - // Consider updating this in multiple display systems - - foreach (DisplayBase display in displays) - { - display.UsageTracker = new UsageTracking(display); - display.UsageTracker.UsageIsTracked = true; - display.UsageTracker.DeviceUsageEnded += new EventHandler(UsageTracker_DeviceUsageEnded); - } - - var defaultDisplay = Room.DefaultDisplay as DisplayBase; - if (defaultDisplay == null) - { - Debug.Console(1, this, "Cannot link null display to Fusion"); - return; - } - - var dispPowerOnAction = new Action(b => { if (!b) defaultDisplay.PowerOn(); }); - var dispPowerOffAction = new Action(b => { if (!b) defaultDisplay.PowerOff(); }); - - // Display to fusion room sigs - FusionRoom.DisplayPowerOn.OutputSig.UserObject = dispPowerOnAction; - FusionRoom.DisplayPowerOff.OutputSig.UserObject = dispPowerOffAction; - defaultDisplay.PowerIsOnFeedback.LinkInputSig(FusionRoom.DisplayPowerOn.InputSig); - if (defaultDisplay is IDisplayUsage) - (defaultDisplay as IDisplayUsage).LampHours.LinkInputSig(FusionRoom.DisplayUsage.InputSig); - - - - MapDisplayToRoomJoins(1, 158, defaultDisplay); - - - var deviceConfig = ConfigReader.ConfigObject.Devices.FirstOrDefault(d => d.Key.Equals(defaultDisplay.Key)); - - //Check for existing asset in GUIDs collection - - var tempAsset = new FusionAsset(); - - if (FusionStaticAssets.ContainsKey(deviceConfig.Uid)) - { - tempAsset = FusionStaticAssets[deviceConfig.Uid]; - } - else - { - // Create a new asset - tempAsset = new FusionAsset(FusionRoomGuids.GetNextAvailableAssetNumber(FusionRoom), defaultDisplay.Name, "Display", ""); - FusionStaticAssets.Add(deviceConfig.Uid, tempAsset); - } - - var dispAsset = FusionRoom.CreateStaticAsset(tempAsset.SlotNumber, tempAsset.Name, "Display", tempAsset.InstanceId); - dispAsset.PowerOn.OutputSig.UserObject = dispPowerOnAction; - dispAsset.PowerOff.OutputSig.UserObject = dispPowerOffAction; - defaultDisplay.PowerIsOnFeedback.LinkInputSig(dispAsset.PowerOn.InputSig); - // NO!! display.PowerIsOn.LinkComplementInputSig(dispAsset.PowerOff.InputSig); - // Use extension methods - dispAsset.TrySetMakeModel(defaultDisplay); - dispAsset.TryLinkAssetErrorToCommunication(defaultDisplay); - } - catch (Exception e) - { - Debug.Console(1, this, "Error setting up display in Fusion: {0}", e); - } - - } - - /// - /// Maps room attributes to a display at a specified index - /// - /// - /// a - void MapDisplayToRoomJoins(int displayIndex, int joinOffset, DisplayBase display) - { - string displayName = string.Format("Display {0} - ", displayIndex); - - - if(display == Room.DefaultDisplay) - { - // Display volume - var defaultDisplayVolume = FusionRoom.CreateOffsetUshortSig(50, "Volume - Fader01", eSigIoMask.InputOutputSig); - defaultDisplayVolume.OutputSig.UserObject = new Action(b => (display as IBasicVolumeWithFeedback).SetVolume(b)); - (display as IBasicVolumeWithFeedback).VolumeLevelFeedback.LinkInputSig(defaultDisplayVolume.InputSig); - - // Power on - var defaultDisplayPowerOn = FusionRoom.CreateOffsetBoolSig((uint)joinOffset, displayName + "Power On", eSigIoMask.InputOutputSig); - defaultDisplayPowerOn.OutputSig.UserObject = new Action(b => { if (!b) display.PowerOn(); }); - display.PowerIsOnFeedback.LinkInputSig(defaultDisplayPowerOn.InputSig); - - // Power Off - var defaultDisplayPowerOff = FusionRoom.CreateOffsetBoolSig((uint)joinOffset + 1, displayName + "Power Off", eSigIoMask.InputOutputSig); - defaultDisplayPowerOn.OutputSig.UserObject = new Action(b => { if (!b) display.PowerOff(); }); ; - display.PowerIsOnFeedback.LinkInputSig(defaultDisplayPowerOn.InputSig); - - // Current Source - var defaultDisplaySourceNone = FusionRoom.CreateOffsetBoolSig((uint)joinOffset + 8, displayName + "Source None", eSigIoMask.InputOutputSig); - defaultDisplaySourceNone.OutputSig.UserObject = new Action(b => { if (!b) Room.RunRouteAction("roomOff"); }); ; - - //var dict = ConfigReader.ConfigObject.GetSourceListForKey(Room.SourceListKey); - - //foreach (var item in dict) - //{ - // if(item.Key != "roomOff") - // { - // var defaultDisplaySource = FusionRoom.CreateOffsetBoolSig((uint)joinOffset + (uint)item.Value.Order + 9 , string.Format("{0}Source {1}", displayIndex, item.Value.Order), eSigIoMask.InputOutputSig); - // defaultDisplaySource.OutputSig.UserObject = new Action(b => { if (!b) Room.RunRouteAction(item.Key); }); - - // //defaultDisplaySource.InputSig = Source[item.Value.Order].InputSig; - // } - - //} - } - } - - //void Room_CurrentSingleSourceChange(EssentialsRoomBase room, SourceListItem info, ChangeType type) - //{ - // for (int i = 1; i <= Source.Length; i++) - // { - // Source[i].InputSig.BoolValue = false; - // } - - // Source[info.Order].InputSig.BoolValue = true; - - // // Need to check for current source key against source list and update Source[] BooleanSigData as appropriate - - //} - - void SetUpError() - { - // Roll up ALL device errors - ErrorMessageRollUp = new StatusMonitorCollection(this); - foreach (var dev in DeviceManager.GetDevices()) - { - var md = dev as ICommunicationMonitor; - if (md != null) - { - ErrorMessageRollUp.AddMonitor(md.CommunicationMonitor); - Debug.Console(2, this, "Adding '{0}' to room's overall error monitor", md.CommunicationMonitor.Parent.Key); - } - } - ErrorMessageRollUp.Start(); - FusionRoom.ErrorMessage.InputSig.StringValue = ErrorMessageRollUp.Message; - ErrorMessageRollUp.StatusChange += (o, a) => - { - FusionRoom.ErrorMessage.InputSig.StringValue = ErrorMessageRollUp.Message; - }; - - } - - void SetUpOccupancy() - { - - // Need to have the room occupancy object first and somehow determine the slot number of the Occupancy asset but will not be able to use the UID from config likely. - // Consider defining an object just for Room Occupancy (either eAssetType.Occupancy Sensor (local) or eAssetType.RemoteOccupancySensor (from Fusion sched. panel)) and reserving slot 4 for that asset (statics would start at 5) - - //if (Room.OccupancyObj != null) - //{ - - var tempOccAsset = GUIDs.OccupancyAsset; - - if(tempOccAsset == null) - { - FusionOccSensor = new FusionOccupancySensorAsset(eAssetType.OccupancySensor); - tempOccAsset = FusionOccSensor; - } - - var occSensorAsset = FusionRoom.CreateOccupancySensorAsset(tempOccAsset.SlotNumber, tempOccAsset.Name, "Occupancy Sensor", tempOccAsset.InstanceId); - - occSensorAsset.RoomOccupied.AddSigToRVIFile = true; - - var occSensorShutdownMinutes = FusionRoom.CreateOffsetUshortSig(70, "Occ Shutdown - Minutes", eSigIoMask.InputOutputSig); - - // Tie to method on occupancy object - //occSensorShutdownMinutes.OutputSig.UserObject(new Action(ushort)(b => Room.OccupancyObj.SetShutdownMinutes(b)); - - - // use Room.OccObject.RoomOccupiedFeedback.LinkInputSig(occSensorAsset.InputSig); - //} - } - - /// - /// Helper to get the number from the end of a device's key string - /// - /// -1 if no number matched - int ExtractNumberFromKey(string key) - { - var capture = System.Text.RegularExpressions.Regex.Match(key, @"\D+(\d+)"); - if (!capture.Success) - return -1; - else return Convert.ToInt32(capture.Groups[1].Value); - } - - /// - /// Event handler for when room source changes - /// - void Room_CurrentSourceInfoChange(EssentialsRoomBase room, SourceListItem info, ChangeType type) - { - // Handle null. Nothing to do when switching from or to null - if (info == null || info.SourceDevice == null) - return; - - var dev = info.SourceDevice; - if (type == ChangeType.WillChange) - { - if (SourceToFeedbackSigs.ContainsKey(dev)) - SourceToFeedbackSigs[dev].BoolValue = false; - } - else - { - if (SourceToFeedbackSigs.ContainsKey(dev)) - SourceToFeedbackSigs[dev].BoolValue = true; - var name = (room == null ? "" : room.Name); - CurrentRoomSourceNameSig.InputSig.StringValue = info.SourceDevice.Name; - } - } - - void FusionRoom_FusionStateChange(FusionBase device, FusionStateEventArgs args) - { - - // The sig/UO method: Need separate handlers for fixed and user sigs, all flavors, - // even though they all contain sigs. - - var sigData = (args.UserConfiguredSigDetail as BooleanSigDataFixedName); - if (sigData != null) - { - var outSig = sigData.OutputSig; - if (outSig.UserObject is Action) - (outSig.UserObject as Action).Invoke(outSig.BoolValue); - else if (outSig.UserObject is Action) - (outSig.UserObject as Action).Invoke(outSig.UShortValue); - else if (outSig.UserObject is Action) - (outSig.UserObject as Action).Invoke(outSig.StringValue); - return; - } - - var attrData = (args.UserConfiguredSigDetail as BooleanSigData); - if (attrData != null) - { - var outSig = attrData.OutputSig; - if (outSig.UserObject is Action) - (outSig.UserObject as Action).Invoke(outSig.BoolValue); - else if (outSig.UserObject is Action) - (outSig.UserObject as Action).Invoke(outSig.UShortValue); - else if (outSig.UserObject is Action) - (outSig.UserObject as Action).Invoke(outSig.StringValue); - return; - } - - } - } - - - public static class FusionRoomExtensions - { - /// - /// Creates and returns a fusion attribute. The join number will match the established Simpl - /// standard of 50+, and will generate a 50+ join in the RVI. It calls - /// FusionRoom.AddSig with join number - 49 - /// - /// The new attribute - public static BooleanSigData CreateOffsetBoolSig(this FusionRoom fr, uint number, string name, eSigIoMask mask) - { - if (number < 50) throw new ArgumentOutOfRangeException("number", "Cannot be less than 50"); - number -= 49; - fr.AddSig(eSigType.Bool, number, name, mask); - return fr.UserDefinedBooleanSigDetails[number]; - } - - /// - /// Creates and returns a fusion attribute. The join number will match the established Simpl - /// standard of 50+, and will generate a 50+ join in the RVI. It calls - /// FusionRoom.AddSig with join number - 49 - /// - /// The new attribute - public static UShortSigData CreateOffsetUshortSig(this FusionRoom fr, uint number, string name, eSigIoMask mask) - { - if (number < 50) throw new ArgumentOutOfRangeException("number", "Cannot be less than 50"); - number -= 49; - fr.AddSig(eSigType.UShort, number, name, mask); - return fr.UserDefinedUShortSigDetails[number]; - } - - /// - /// Creates and returns a fusion attribute. The join number will match the established Simpl - /// standard of 50+, and will generate a 50+ join in the RVI. It calls - /// FusionRoom.AddSig with join number - 49 - /// - /// The new attribute - public static StringSigData CreateOffsetStringSig(this FusionRoom fr, uint number, string name, eSigIoMask mask) - { - if (number < 50) throw new ArgumentOutOfRangeException("number", "Cannot be less than 50"); - number -= 49; - fr.AddSig(eSigType.String, number, name, mask); - return fr.UserDefinedStringSigDetails[number]; - } - - /// - /// Creates and returns a static asset - /// - /// the new asset - public static FusionStaticAsset CreateStaticAsset(this FusionRoom fr, uint number, string name, string type, string instanceId) - { - Debug.Console(0, "Adding Fusion Static Asset '{0}' to slot {1} with GUID: '{2}'", name, number, instanceId); - - fr.AddAsset(eAssetType.StaticAsset, number, name, type, instanceId); - return fr.UserConfigurableAssetDetails[number].Asset as FusionStaticAsset; - } - - public static FusionOccupancySensor CreateOccupancySensorAsset(this FusionRoom fr, uint number, string name, string type, string instanceId) - { - Debug.Console(0, "Adding Fusion Occupancy Sensor Asset '{0}' to slot {1} with GUID: '{2}'", name, number, instanceId); - - fr.AddAsset(eAssetType.OccupancySensor, number, name, type, instanceId); - return fr.UserConfigurableAssetDetails[number].Asset as FusionOccupancySensor; - } - } - - //************************************************************************************************ - /// - /// Extensions to enhance Fusion room, asset and signal creation. - /// - public static class FusionStaticAssetExtensions - { - /// - /// Tries to set a Fusion asset with the make and model of a device. - /// If the provided Device is IMakeModel, will set the corresponding parameters on the fusion static asset. - /// Otherwise, does nothing. - /// - public static void TrySetMakeModel(this FusionStaticAsset asset, Device device) - { - var mm = device as IMakeModel; - if (mm != null) - { - asset.ParamMake.Value = mm.DeviceMake; - asset.ParamModel.Value = mm.DeviceModel; - } - } - - /// - /// Tries to attach the AssetError input on a Fusion asset to a Device's - /// CommunicationMonitor.StatusChange event. Does nothing if the device is not - /// IStatusMonitor - /// - /// - /// - public static void TryLinkAssetErrorToCommunication(this FusionStaticAsset asset, Device device) - { - if (device is ICommunicationMonitor) - { - var monitor = (device as ICommunicationMonitor).CommunicationMonitor; - monitor.StatusChange += (o, a) => - { - // Link connected and error inputs on asset - asset.Connected.InputSig.BoolValue = a.Status == MonitorStatus.IsOk; - asset.AssetError.InputSig.StringValue = a.Status.ToString(); - }; - // set current value - asset.Connected.InputSig.BoolValue = monitor.Status == MonitorStatus.IsOk; - asset.AssetError.InputSig.StringValue = monitor.Status.ToString(); - } - } - } - - -} \ No newline at end of file diff --git a/PepperDashEssentials/PepperDash Essentials TSW-760.sgd b/PepperDashEssentials/PepperDash Essentials TSW-760.sgd deleted file mode 100644 index e8a75d91..00000000 --- a/PepperDashEssentials/PepperDash Essentials TSW-760.sgd +++ /dev/null @@ -1,19857 +0,0 @@ -[ -ObjTp=FSgntr -Sgntr=SGD -RelVrs=3 -VTProeVer=6.1.05 -Schema=1 -CRCGUID=6C002F1C-3D96-4EBF-A0D9-8A124BE8F48A -] -;================================================================================ -[ -ObjTp=Hd -ProjectFile=PepperDash Essentials TSW-760.vtp -VtpGuid=D8D5F125-CB35-42E9-8AE3-4142597FD2C5 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[C.AC] Keypad_AC DTMF Keypad_2.ced -Hint=AC DTMF Keypad_2 (Smart Object ID=1101) -Code=1 -SGControlType=Simple Keypad -SGControlName=AC DTMF Keypad_2 -GUID=F2A259FE-82AD-4085-B5A6-22D7B034458C -SmplCName=PepperDash Essentials TSW-760_[C.AC] Keypad_AC DTMF Keypad_2.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10061 -;Define the number of inputs, outputs and parameters -MinVariableInputs=12 -MaxVariableInputs=12 -MinVariableOutputs=12 -MaxVariableOutputs=12 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=1 -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=2 -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=3 -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=4 -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=5 -OutputSigType5=Digital -InputCue6=[~UNUSED3~] -InputSigType6=Digital -OutputCue6=6 -OutputSigType6=Digital -InputCue7=[~UNUSED3~] -InputSigType7=Digital -OutputCue7=7 -OutputSigType7=Digital -InputCue8=[~UNUSED3~] -InputSigType8=Digital -OutputCue8=8 -OutputSigType8=Digital -InputCue9=[~UNUSED3~] -InputSigType9=Digital -OutputCue9=9 -OutputSigType9=Digital -InputCue10=[~UNUSED3~] -InputSigType10=Digital -OutputCue10=0 -OutputSigType10=Digital -InputCue11=[~UNUSED3~] -InputSigType11=Digital -OutputCue11=* -OutputSigType11=Digital -InputCue12=[~UNUSED3~] -InputSigType12=Digital -OutputCue12=/# -OutputSigType12=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=1 -CedH=1 -SmartObjId=1101d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=1 -Tp=1 -HD=TRUE -DV=1101d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=1 -Name=PepperDash Essentials TSW-760_[C.AC] Keypad_AC DTMF Keypad_2.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[D.VC] Directory_Directory List.ced -Hint=Directory List (Smart Object ID=1202) -Code=2 -SGControlType=Dynamic Button List Vertical -SGControlName=Directory List -GUID=79060F3C-D3A4-4A8D-ACF0-CB2376A31702 -SmplCName=PepperDash Essentials TSW-760_[D.VC] Directory_Directory List.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10112 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=6016 -MaxVariableInputs=6016 -MinVariableOutputs=6016 -MaxVariableOutputs=6016 -NumFixedParams=1 -MinVariableInputsList2=2012 -MaxVariableInputsList2=2012 -MinVariableOutputsList2=2012 -MaxVariableOutputsList2=2012 -MinVariableInputsList3=4014 -MaxVariableInputsList3=4014 -MinVariableOutputsList3=4014 -MaxVariableOutputsList3=4014 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=Disable Redraw -InputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Press -InputSigType11=Digital -InputCue12=Item 1 Selected -InputSigType12=Digital -InputCue13=Item 2 Selected -InputSigType13=Digital -InputCue14=Item 3 Selected -InputSigType14=Digital -InputCue15=Item 4 Selected -InputSigType15=Digital -InputCue16=Item 5 Selected -InputSigType16=Digital -InputCue17=Item 6 Selected -InputSigType17=Digital -InputCue18=Item 7 Selected -InputSigType18=Digital -InputCue19=Item 8 Selected -InputSigType19=Digital -InputCue20=Item 9 Selected -InputSigType20=Digital -InputCue21=Item 10 Selected -InputSigType21=Digital -InputCue22=Item 11 Selected -InputSigType22=Digital -InputCue23=Item 12 Selected -InputSigType23=Digital -InputCue24=Item 13 Selected -InputSigType24=Digital -InputCue25=Item 14 Selected -InputSigType25=Digital -InputCue26=Item 15 Selected -InputSigType26=Digital -InputCue27=Item 16 Selected -InputSigType27=Digital -InputCue28=Item 17 Selected -InputSigType28=Digital -InputCue29=Item 18 Selected -InputSigType29=Digital -InputCue30=Item 19 Selected -InputSigType30=Digital -InputCue31=Item 20 Selected -InputSigType31=Digital -InputCue32=Item 21 Selected -InputSigType32=Digital -InputCue33=Item 22 Selected -InputSigType33=Digital -InputCue34=Item 23 Selected -InputSigType34=Digital -InputCue35=Item 24 Selected -InputSigType35=Digital -InputCue36=Item 25 Selected -InputSigType36=Digital -InputCue37=Item 26 Selected -InputSigType37=Digital -InputCue38=Item 27 Selected -InputSigType38=Digital -InputCue39=Item 28 Selected -InputSigType39=Digital -InputCue40=Item 29 Selected -InputSigType40=Digital -InputCue41=Item 30 Selected -InputSigType41=Digital -InputCue42=Item 31 Selected -InputSigType42=Digital -InputCue43=Item 32 Selected -InputSigType43=Digital -InputCue44=Item 33 Selected -InputSigType44=Digital -InputCue45=Item 34 Selected -InputSigType45=Digital -InputCue46=Item 35 Selected -InputSigType46=Digital -InputCue47=Item 36 Selected -InputSigType47=Digital -InputCue48=Item 37 Selected -InputSigType48=Digital -InputCue49=Item 38 Selected -InputSigType49=Digital -InputCue50=Item 39 Selected -InputSigType50=Digital -InputCue51=Item 40 Selected -InputSigType51=Digital -InputCue52=Item 41 Selected -InputSigType52=Digital -InputCue53=Item 42 Selected -InputSigType53=Digital -InputCue54=Item 43 Selected -InputSigType54=Digital -InputCue55=Item 44 Selected -InputSigType55=Digital -InputCue56=Item 45 Selected -InputSigType56=Digital -InputCue57=Item 46 Selected -InputSigType57=Digital -InputCue58=Item 47 Selected -InputSigType58=Digital -InputCue59=Item 48 Selected -InputSigType59=Digital -InputCue60=Item 49 Selected -InputSigType60=Digital -InputCue61=Item 50 Selected -InputSigType61=Digital -InputCue62=Item 51 Selected -InputSigType62=Digital -InputCue63=Item 52 Selected -InputSigType63=Digital -InputCue64=Item 53 Selected -InputSigType64=Digital -InputCue65=Item 54 Selected -InputSigType65=Digital -InputCue66=Item 55 Selected -InputSigType66=Digital -InputCue67=Item 56 Selected -InputSigType67=Digital -InputCue68=Item 57 Selected -InputSigType68=Digital -InputCue69=Item 58 Selected -InputSigType69=Digital -InputCue70=Item 59 Selected -InputSigType70=Digital -InputCue71=Item 60 Selected -InputSigType71=Digital -InputCue72=Item 61 Selected -InputSigType72=Digital -InputCue73=Item 62 Selected -InputSigType73=Digital -InputCue74=Item 63 Selected -InputSigType74=Digital -InputCue75=Item 64 Selected -InputSigType75=Digital -InputCue76=Item 65 Selected -InputSigType76=Digital -InputCue77=Item 66 Selected -InputSigType77=Digital -InputCue78=Item 67 Selected -InputSigType78=Digital -InputCue79=Item 68 Selected -InputSigType79=Digital -InputCue80=Item 69 Selected -InputSigType80=Digital -InputCue81=Item 70 Selected -InputSigType81=Digital -InputCue82=Item 71 Selected -InputSigType82=Digital -InputCue83=Item 72 Selected -InputSigType83=Digital -InputCue84=Item 73 Selected -InputSigType84=Digital -InputCue85=Item 74 Selected -InputSigType85=Digital -InputCue86=Item 75 Selected -InputSigType86=Digital -InputCue87=Item 76 Selected -InputSigType87=Digital -InputCue88=Item 77 Selected -InputSigType88=Digital -InputCue89=Item 78 Selected -InputSigType89=Digital -InputCue90=Item 79 Selected -InputSigType90=Digital -InputCue91=Item 80 Selected -InputSigType91=Digital -InputCue92=Item 81 Selected -InputSigType92=Digital -InputCue93=Item 82 Selected -InputSigType93=Digital -InputCue94=Item 83 Selected -InputSigType94=Digital -InputCue95=Item 84 Selected -InputSigType95=Digital -InputCue96=Item 85 Selected -InputSigType96=Digital -InputCue97=Item 86 Selected -InputSigType97=Digital -InputCue98=Item 87 Selected -InputSigType98=Digital -InputCue99=Item 88 Selected -InputSigType99=Digital -InputCue100=Item 89 Selected -InputSigType100=Digital -InputCue101=Item 90 Selected -InputSigType101=Digital -InputCue102=Item 91 Selected -InputSigType102=Digital -InputCue103=Item 92 Selected -InputSigType103=Digital -InputCue104=Item 93 Selected -InputSigType104=Digital -InputCue105=Item 94 Selected -InputSigType105=Digital -InputCue106=Item 95 Selected -InputSigType106=Digital -InputCue107=Item 96 Selected -InputSigType107=Digital -InputCue108=Item 97 Selected -InputSigType108=Digital -InputCue109=Item 98 Selected -InputSigType109=Digital -InputCue110=Item 99 Selected -InputSigType110=Digital -InputCue111=Item 100 Selected -InputSigType111=Digital -InputCue112=Item 101 Selected -InputSigType112=Digital -InputCue113=Item 102 Selected -InputSigType113=Digital -InputCue114=Item 103 Selected -InputSigType114=Digital -InputCue115=Item 104 Selected -InputSigType115=Digital -InputCue116=Item 105 Selected -InputSigType116=Digital -InputCue117=Item 106 Selected -InputSigType117=Digital -InputCue118=Item 107 Selected -InputSigType118=Digital -InputCue119=Item 108 Selected -InputSigType119=Digital -InputCue120=Item 109 Selected -InputSigType120=Digital -InputCue121=Item 110 Selected -InputSigType121=Digital -InputCue122=Item 111 Selected -InputSigType122=Digital -InputCue123=Item 112 Selected -InputSigType123=Digital -InputCue124=Item 113 Selected -InputSigType124=Digital -InputCue125=Item 114 Selected -InputSigType125=Digital -InputCue126=Item 115 Selected -InputSigType126=Digital -InputCue127=Item 116 Selected -InputSigType127=Digital -InputCue128=Item 117 Selected -InputSigType128=Digital -InputCue129=Item 118 Selected -InputSigType129=Digital -InputCue130=Item 119 Selected -InputSigType130=Digital -InputCue131=Item 120 Selected -InputSigType131=Digital -InputCue132=Item 121 Selected -InputSigType132=Digital -InputCue133=Item 122 Selected -InputSigType133=Digital -InputCue134=Item 123 Selected -InputSigType134=Digital -InputCue135=Item 124 Selected -InputSigType135=Digital -InputCue136=Item 125 Selected -InputSigType136=Digital -InputCue137=Item 126 Selected -InputSigType137=Digital -InputCue138=Item 127 Selected -InputSigType138=Digital -InputCue139=Item 128 Selected -InputSigType139=Digital -InputCue140=Item 129 Selected -InputSigType140=Digital -InputCue141=Item 130 Selected -InputSigType141=Digital -InputCue142=Item 131 Selected -InputSigType142=Digital -InputCue143=Item 132 Selected -InputSigType143=Digital -InputCue144=Item 133 Selected -InputSigType144=Digital -InputCue145=Item 134 Selected -InputSigType145=Digital -InputCue146=Item 135 Selected -InputSigType146=Digital -InputCue147=Item 136 Selected -InputSigType147=Digital -InputCue148=Item 137 Selected -InputSigType148=Digital -InputCue149=Item 138 Selected -InputSigType149=Digital -InputCue150=Item 139 Selected -InputSigType150=Digital -InputCue151=Item 140 Selected -InputSigType151=Digital -InputCue152=Item 141 Selected -InputSigType152=Digital -InputCue153=Item 142 Selected -InputSigType153=Digital -InputCue154=Item 143 Selected -InputSigType154=Digital -InputCue155=Item 144 Selected -InputSigType155=Digital -InputCue156=Item 145 Selected -InputSigType156=Digital -InputCue157=Item 146 Selected -InputSigType157=Digital -InputCue158=Item 147 Selected -InputSigType158=Digital -InputCue159=Item 148 Selected -InputSigType159=Digital -InputCue160=Item 149 Selected -InputSigType160=Digital -InputCue161=Item 150 Selected -InputSigType161=Digital -InputCue162=Item 151 Selected -InputSigType162=Digital -InputCue163=Item 152 Selected -InputSigType163=Digital -InputCue164=Item 153 Selected -InputSigType164=Digital -InputCue165=Item 154 Selected -InputSigType165=Digital -InputCue166=Item 155 Selected -InputSigType166=Digital -InputCue167=Item 156 Selected -InputSigType167=Digital -InputCue168=Item 157 Selected -InputSigType168=Digital -InputCue169=Item 158 Selected -InputSigType169=Digital -InputCue170=Item 159 Selected -InputSigType170=Digital -InputCue171=Item 160 Selected -InputSigType171=Digital -InputCue172=Item 161 Selected -InputSigType172=Digital -InputCue173=Item 162 Selected -InputSigType173=Digital -InputCue174=Item 163 Selected -InputSigType174=Digital -InputCue175=Item 164 Selected -InputSigType175=Digital -InputCue176=Item 165 Selected -InputSigType176=Digital -InputCue177=Item 166 Selected -InputSigType177=Digital -InputCue178=Item 167 Selected -InputSigType178=Digital -InputCue179=Item 168 Selected -InputSigType179=Digital -InputCue180=Item 169 Selected -InputSigType180=Digital -InputCue181=Item 170 Selected -InputSigType181=Digital -InputCue182=Item 171 Selected -InputSigType182=Digital -InputCue183=Item 172 Selected -InputSigType183=Digital -InputCue184=Item 173 Selected -InputSigType184=Digital -InputCue185=Item 174 Selected -InputSigType185=Digital -InputCue186=Item 175 Selected -InputSigType186=Digital -InputCue187=Item 176 Selected -InputSigType187=Digital -InputCue188=Item 177 Selected -InputSigType188=Digital -InputCue189=Item 178 Selected -InputSigType189=Digital -InputCue190=Item 179 Selected -InputSigType190=Digital -InputCue191=Item 180 Selected -InputSigType191=Digital -InputCue192=Item 181 Selected -InputSigType192=Digital -InputCue193=Item 182 Selected -InputSigType193=Digital -InputCue194=Item 183 Selected -InputSigType194=Digital -InputCue195=Item 184 Selected -InputSigType195=Digital -InputCue196=Item 185 Selected -InputSigType196=Digital -InputCue197=Item 186 Selected -InputSigType197=Digital -InputCue198=Item 187 Selected -InputSigType198=Digital -InputCue199=Item 188 Selected -InputSigType199=Digital -InputCue200=Item 189 Selected -InputSigType200=Digital -InputCue201=Item 190 Selected -InputSigType201=Digital -InputCue202=Item 191 Selected -InputSigType202=Digital -InputCue203=Item 192 Selected -InputSigType203=Digital -InputCue204=Item 193 Selected -InputSigType204=Digital -InputCue205=Item 194 Selected -InputSigType205=Digital -InputCue206=Item 195 Selected -InputSigType206=Digital -InputCue207=Item 196 Selected -InputSigType207=Digital -InputCue208=Item 197 Selected -InputSigType208=Digital -InputCue209=Item 198 Selected -InputSigType209=Digital -InputCue210=Item 199 Selected -InputSigType210=Digital -InputCue211=Item 200 Selected -InputSigType211=Digital -InputCue212=Item 201 Selected -InputSigType212=Digital -InputCue213=Item 202 Selected -InputSigType213=Digital -InputCue214=Item 203 Selected -InputSigType214=Digital -InputCue215=Item 204 Selected -InputSigType215=Digital -InputCue216=Item 205 Selected -InputSigType216=Digital -InputCue217=Item 206 Selected -InputSigType217=Digital -InputCue218=Item 207 Selected -InputSigType218=Digital -InputCue219=Item 208 Selected -InputSigType219=Digital -InputCue220=Item 209 Selected -InputSigType220=Digital -InputCue221=Item 210 Selected -InputSigType221=Digital -InputCue222=Item 211 Selected -InputSigType222=Digital -InputCue223=Item 212 Selected -InputSigType223=Digital -InputCue224=Item 213 Selected -InputSigType224=Digital -InputCue225=Item 214 Selected -InputSigType225=Digital -InputCue226=Item 215 Selected -InputSigType226=Digital -InputCue227=Item 216 Selected -InputSigType227=Digital -InputCue228=Item 217 Selected -InputSigType228=Digital -InputCue229=Item 218 Selected -InputSigType229=Digital -InputCue230=Item 219 Selected -InputSigType230=Digital -InputCue231=Item 220 Selected -InputSigType231=Digital -InputCue232=Item 221 Selected -InputSigType232=Digital -InputCue233=Item 222 Selected -InputSigType233=Digital -InputCue234=Item 223 Selected -InputSigType234=Digital -InputCue235=Item 224 Selected -InputSigType235=Digital -InputCue236=Item 225 Selected -InputSigType236=Digital -InputCue237=Item 226 Selected -InputSigType237=Digital -InputCue238=Item 227 Selected -InputSigType238=Digital -InputCue239=Item 228 Selected -InputSigType239=Digital -InputCue240=Item 229 Selected -InputSigType240=Digital -InputCue241=Item 230 Selected -InputSigType241=Digital -InputCue242=Item 231 Selected -InputSigType242=Digital -InputCue243=Item 232 Selected -InputSigType243=Digital -InputCue244=Item 233 Selected -InputSigType244=Digital -InputCue245=Item 234 Selected -InputSigType245=Digital -InputCue246=Item 235 Selected -InputSigType246=Digital -InputCue247=Item 236 Selected -InputSigType247=Digital -InputCue248=Item 237 Selected -InputSigType248=Digital -InputCue249=Item 238 Selected -InputSigType249=Digital -InputCue250=Item 239 Selected -InputSigType250=Digital -InputCue251=Item 240 Selected -InputSigType251=Digital -InputCue252=Item 241 Selected -InputSigType252=Digital -InputCue253=Item 242 Selected -InputSigType253=Digital -InputCue254=Item 243 Selected -InputSigType254=Digital -InputCue255=Item 244 Selected -InputSigType255=Digital -InputCue256=Item 245 Selected -InputSigType256=Digital -InputCue257=Item 246 Selected -InputSigType257=Digital -InputCue258=Item 247 Selected -InputSigType258=Digital -InputCue259=Item 248 Selected -InputSigType259=Digital -InputCue260=Item 249 Selected -InputSigType260=Digital -InputCue261=Item 250 Selected -InputSigType261=Digital -InputCue262=Item 251 Selected -InputSigType262=Digital -InputCue263=Item 252 Selected -InputSigType263=Digital -InputCue264=Item 253 Selected -InputSigType264=Digital -InputCue265=Item 254 Selected -InputSigType265=Digital -InputCue266=Item 255 Selected -InputSigType266=Digital -InputCue267=[~UNUSED2~] -InputSigType267=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Press -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Enable -InputSigType2013=Digital -InputCue2014=Item 1 Enabled -InputSigType2014=Digital -InputCue2015=Item 2 Enabled -InputSigType2015=Digital -InputCue2016=Item 3 Enabled -InputSigType2016=Digital -InputCue2017=Item 4 Enabled -InputSigType2017=Digital -InputCue2018=Item 5 Enabled -InputSigType2018=Digital -InputCue2019=Item 6 Enabled -InputSigType2019=Digital -InputCue2020=Item 7 Enabled -InputSigType2020=Digital -InputCue2021=Item 8 Enabled -InputSigType2021=Digital -InputCue2022=Item 9 Enabled -InputSigType2022=Digital -InputCue2023=Item 10 Enabled -InputSigType2023=Digital -InputCue2024=Item 11 Enabled -InputSigType2024=Digital -InputCue2025=Item 12 Enabled -InputSigType2025=Digital -InputCue2026=Item 13 Enabled -InputSigType2026=Digital -InputCue2027=Item 14 Enabled -InputSigType2027=Digital -InputCue2028=Item 15 Enabled -InputSigType2028=Digital -InputCue2029=Item 16 Enabled -InputSigType2029=Digital -InputCue2030=Item 17 Enabled -InputSigType2030=Digital -InputCue2031=Item 18 Enabled -InputSigType2031=Digital -InputCue2032=Item 19 Enabled -InputSigType2032=Digital -InputCue2033=Item 20 Enabled -InputSigType2033=Digital -InputCue2034=Item 21 Enabled -InputSigType2034=Digital -InputCue2035=Item 22 Enabled -InputSigType2035=Digital -InputCue2036=Item 23 Enabled -InputSigType2036=Digital -InputCue2037=Item 24 Enabled -InputSigType2037=Digital -InputCue2038=Item 25 Enabled -InputSigType2038=Digital -InputCue2039=Item 26 Enabled -InputSigType2039=Digital -InputCue2040=Item 27 Enabled -InputSigType2040=Digital -InputCue2041=Item 28 Enabled -InputSigType2041=Digital -InputCue2042=Item 29 Enabled -InputSigType2042=Digital -InputCue2043=Item 30 Enabled -InputSigType2043=Digital -InputCue2044=Item 31 Enabled -InputSigType2044=Digital -InputCue2045=Item 32 Enabled -InputSigType2045=Digital -InputCue2046=Item 33 Enabled -InputSigType2046=Digital -InputCue2047=Item 34 Enabled -InputSigType2047=Digital -InputCue2048=Item 35 Enabled -InputSigType2048=Digital -InputCue2049=Item 36 Enabled -InputSigType2049=Digital -InputCue2050=Item 37 Enabled -InputSigType2050=Digital -InputCue2051=Item 38 Enabled -InputSigType2051=Digital -InputCue2052=Item 39 Enabled -InputSigType2052=Digital -InputCue2053=Item 40 Enabled -InputSigType2053=Digital -InputCue2054=Item 41 Enabled -InputSigType2054=Digital -InputCue2055=Item 42 Enabled -InputSigType2055=Digital -InputCue2056=Item 43 Enabled -InputSigType2056=Digital -InputCue2057=Item 44 Enabled -InputSigType2057=Digital -InputCue2058=Item 45 Enabled -InputSigType2058=Digital -InputCue2059=Item 46 Enabled -InputSigType2059=Digital -InputCue2060=Item 47 Enabled -InputSigType2060=Digital -InputCue2061=Item 48 Enabled -InputSigType2061=Digital -InputCue2062=Item 49 Enabled -InputSigType2062=Digital -InputCue2063=Item 50 Enabled -InputSigType2063=Digital -InputCue2064=Item 51 Enabled -InputSigType2064=Digital -InputCue2065=Item 52 Enabled -InputSigType2065=Digital -InputCue2066=Item 53 Enabled -InputSigType2066=Digital -InputCue2067=Item 54 Enabled -InputSigType2067=Digital -InputCue2068=Item 55 Enabled -InputSigType2068=Digital -InputCue2069=Item 56 Enabled -InputSigType2069=Digital -InputCue2070=Item 57 Enabled -InputSigType2070=Digital -InputCue2071=Item 58 Enabled -InputSigType2071=Digital -InputCue2072=Item 59 Enabled -InputSigType2072=Digital -InputCue2073=Item 60 Enabled -InputSigType2073=Digital -InputCue2074=Item 61 Enabled -InputSigType2074=Digital -InputCue2075=Item 62 Enabled -InputSigType2075=Digital -InputCue2076=Item 63 Enabled -InputSigType2076=Digital -InputCue2077=Item 64 Enabled -InputSigType2077=Digital -InputCue2078=Item 65 Enabled -InputSigType2078=Digital -InputCue2079=Item 66 Enabled -InputSigType2079=Digital -InputCue2080=Item 67 Enabled -InputSigType2080=Digital -InputCue2081=Item 68 Enabled -InputSigType2081=Digital -InputCue2082=Item 69 Enabled -InputSigType2082=Digital -InputCue2083=Item 70 Enabled -InputSigType2083=Digital -InputCue2084=Item 71 Enabled -InputSigType2084=Digital -InputCue2085=Item 72 Enabled -InputSigType2085=Digital -InputCue2086=Item 73 Enabled -InputSigType2086=Digital -InputCue2087=Item 74 Enabled -InputSigType2087=Digital -InputCue2088=Item 75 Enabled -InputSigType2088=Digital -InputCue2089=Item 76 Enabled -InputSigType2089=Digital -InputCue2090=Item 77 Enabled -InputSigType2090=Digital -InputCue2091=Item 78 Enabled -InputSigType2091=Digital -InputCue2092=Item 79 Enabled -InputSigType2092=Digital -InputCue2093=Item 80 Enabled -InputSigType2093=Digital -InputCue2094=Item 81 Enabled -InputSigType2094=Digital -InputCue2095=Item 82 Enabled -InputSigType2095=Digital -InputCue2096=Item 83 Enabled -InputSigType2096=Digital -InputCue2097=Item 84 Enabled -InputSigType2097=Digital -InputCue2098=Item 85 Enabled -InputSigType2098=Digital -InputCue2099=Item 86 Enabled -InputSigType2099=Digital -InputCue2100=Item 87 Enabled -InputSigType2100=Digital -InputCue2101=Item 88 Enabled -InputSigType2101=Digital -InputCue2102=Item 89 Enabled -InputSigType2102=Digital -InputCue2103=Item 90 Enabled -InputSigType2103=Digital -InputCue2104=Item 91 Enabled -InputSigType2104=Digital -InputCue2105=Item 92 Enabled -InputSigType2105=Digital -InputCue2106=Item 93 Enabled -InputSigType2106=Digital -InputCue2107=Item 94 Enabled -InputSigType2107=Digital -InputCue2108=Item 95 Enabled -InputSigType2108=Digital -InputCue2109=Item 96 Enabled -InputSigType2109=Digital -InputCue2110=Item 97 Enabled -InputSigType2110=Digital -InputCue2111=Item 98 Enabled -InputSigType2111=Digital -InputCue2112=Item 99 Enabled -InputSigType2112=Digital -InputCue2113=Item 100 Enabled -InputSigType2113=Digital -InputCue2114=Item 101 Enabled -InputSigType2114=Digital -InputCue2115=Item 102 Enabled -InputSigType2115=Digital -InputCue2116=Item 103 Enabled -InputSigType2116=Digital -InputCue2117=Item 104 Enabled -InputSigType2117=Digital -InputCue2118=Item 105 Enabled -InputSigType2118=Digital -InputCue2119=Item 106 Enabled -InputSigType2119=Digital -InputCue2120=Item 107 Enabled -InputSigType2120=Digital -InputCue2121=Item 108 Enabled -InputSigType2121=Digital -InputCue2122=Item 109 Enabled -InputSigType2122=Digital -InputCue2123=Item 110 Enabled -InputSigType2123=Digital -InputCue2124=Item 111 Enabled -InputSigType2124=Digital -InputCue2125=Item 112 Enabled -InputSigType2125=Digital -InputCue2126=Item 113 Enabled -InputSigType2126=Digital -InputCue2127=Item 114 Enabled -InputSigType2127=Digital -InputCue2128=Item 115 Enabled -InputSigType2128=Digital -InputCue2129=Item 116 Enabled -InputSigType2129=Digital -InputCue2130=Item 117 Enabled -InputSigType2130=Digital -InputCue2131=Item 118 Enabled -InputSigType2131=Digital -InputCue2132=Item 119 Enabled -InputSigType2132=Digital -InputCue2133=Item 120 Enabled -InputSigType2133=Digital -InputCue2134=Item 121 Enabled -InputSigType2134=Digital -InputCue2135=Item 122 Enabled -InputSigType2135=Digital -InputCue2136=Item 123 Enabled -InputSigType2136=Digital -InputCue2137=Item 124 Enabled -InputSigType2137=Digital -InputCue2138=Item 125 Enabled -InputSigType2138=Digital -InputCue2139=Item 126 Enabled -InputSigType2139=Digital -InputCue2140=Item 127 Enabled -InputSigType2140=Digital -InputCue2141=Item 128 Enabled -InputSigType2141=Digital -InputCue2142=Item 129 Enabled -InputSigType2142=Digital -InputCue2143=Item 130 Enabled -InputSigType2143=Digital -InputCue2144=Item 131 Enabled -InputSigType2144=Digital -InputCue2145=Item 132 Enabled -InputSigType2145=Digital -InputCue2146=Item 133 Enabled -InputSigType2146=Digital -InputCue2147=Item 134 Enabled -InputSigType2147=Digital -InputCue2148=Item 135 Enabled -InputSigType2148=Digital -InputCue2149=Item 136 Enabled -InputSigType2149=Digital -InputCue2150=Item 137 Enabled -InputSigType2150=Digital -InputCue2151=Item 138 Enabled -InputSigType2151=Digital -InputCue2152=Item 139 Enabled -InputSigType2152=Digital -InputCue2153=Item 140 Enabled -InputSigType2153=Digital -InputCue2154=Item 141 Enabled -InputSigType2154=Digital -InputCue2155=Item 142 Enabled -InputSigType2155=Digital -InputCue2156=Item 143 Enabled -InputSigType2156=Digital -InputCue2157=Item 144 Enabled -InputSigType2157=Digital -InputCue2158=Item 145 Enabled -InputSigType2158=Digital -InputCue2159=Item 146 Enabled -InputSigType2159=Digital -InputCue2160=Item 147 Enabled -InputSigType2160=Digital -InputCue2161=Item 148 Enabled -InputSigType2161=Digital -InputCue2162=Item 149 Enabled -InputSigType2162=Digital -InputCue2163=Item 150 Enabled -InputSigType2163=Digital -InputCue2164=Item 151 Enabled -InputSigType2164=Digital -InputCue2165=Item 152 Enabled -InputSigType2165=Digital -InputCue2166=Item 153 Enabled -InputSigType2166=Digital -InputCue2167=Item 154 Enabled -InputSigType2167=Digital -InputCue2168=Item 155 Enabled -InputSigType2168=Digital -InputCue2169=Item 156 Enabled -InputSigType2169=Digital -InputCue2170=Item 157 Enabled -InputSigType2170=Digital -InputCue2171=Item 158 Enabled -InputSigType2171=Digital -InputCue2172=Item 159 Enabled -InputSigType2172=Digital -InputCue2173=Item 160 Enabled -InputSigType2173=Digital -InputCue2174=Item 161 Enabled -InputSigType2174=Digital -InputCue2175=Item 162 Enabled -InputSigType2175=Digital -InputCue2176=Item 163 Enabled -InputSigType2176=Digital -InputCue2177=Item 164 Enabled -InputSigType2177=Digital -InputCue2178=Item 165 Enabled -InputSigType2178=Digital -InputCue2179=Item 166 Enabled -InputSigType2179=Digital -InputCue2180=Item 167 Enabled -InputSigType2180=Digital -InputCue2181=Item 168 Enabled -InputSigType2181=Digital -InputCue2182=Item 169 Enabled -InputSigType2182=Digital -InputCue2183=Item 170 Enabled -InputSigType2183=Digital -InputCue2184=Item 171 Enabled -InputSigType2184=Digital -InputCue2185=Item 172 Enabled -InputSigType2185=Digital -InputCue2186=Item 173 Enabled -InputSigType2186=Digital -InputCue2187=Item 174 Enabled -InputSigType2187=Digital -InputCue2188=Item 175 Enabled -InputSigType2188=Digital -InputCue2189=Item 176 Enabled -InputSigType2189=Digital -InputCue2190=Item 177 Enabled -InputSigType2190=Digital -InputCue2191=Item 178 Enabled -InputSigType2191=Digital -InputCue2192=Item 179 Enabled -InputSigType2192=Digital -InputCue2193=Item 180 Enabled -InputSigType2193=Digital -InputCue2194=Item 181 Enabled -InputSigType2194=Digital -InputCue2195=Item 182 Enabled -InputSigType2195=Digital -InputCue2196=Item 183 Enabled -InputSigType2196=Digital -InputCue2197=Item 184 Enabled -InputSigType2197=Digital -InputCue2198=Item 185 Enabled -InputSigType2198=Digital -InputCue2199=Item 186 Enabled -InputSigType2199=Digital -InputCue2200=Item 187 Enabled -InputSigType2200=Digital -InputCue2201=Item 188 Enabled -InputSigType2201=Digital -InputCue2202=Item 189 Enabled -InputSigType2202=Digital -InputCue2203=Item 190 Enabled -InputSigType2203=Digital -InputCue2204=Item 191 Enabled -InputSigType2204=Digital -InputCue2205=Item 192 Enabled -InputSigType2205=Digital -InputCue2206=Item 193 Enabled -InputSigType2206=Digital -InputCue2207=Item 194 Enabled -InputSigType2207=Digital -InputCue2208=Item 195 Enabled -InputSigType2208=Digital -InputCue2209=Item 196 Enabled -InputSigType2209=Digital -InputCue2210=Item 197 Enabled -InputSigType2210=Digital -InputCue2211=Item 198 Enabled -InputSigType2211=Digital -InputCue2212=Item 199 Enabled -InputSigType2212=Digital -InputCue2213=Item 200 Enabled -InputSigType2213=Digital -InputCue2214=Item 201 Enabled -InputSigType2214=Digital -InputCue2215=Item 202 Enabled -InputSigType2215=Digital -InputCue2216=Item 203 Enabled -InputSigType2216=Digital -InputCue2217=Item 204 Enabled -InputSigType2217=Digital -InputCue2218=Item 205 Enabled -InputSigType2218=Digital -InputCue2219=Item 206 Enabled -InputSigType2219=Digital -InputCue2220=Item 207 Enabled -InputSigType2220=Digital -InputCue2221=Item 208 Enabled -InputSigType2221=Digital -InputCue2222=Item 209 Enabled -InputSigType2222=Digital -InputCue2223=Item 210 Enabled -InputSigType2223=Digital -InputCue2224=Item 211 Enabled -InputSigType2224=Digital -InputCue2225=Item 212 Enabled -InputSigType2225=Digital -InputCue2226=Item 213 Enabled -InputSigType2226=Digital -InputCue2227=Item 214 Enabled -InputSigType2227=Digital -InputCue2228=Item 215 Enabled -InputSigType2228=Digital -InputCue2229=Item 216 Enabled -InputSigType2229=Digital -InputCue2230=Item 217 Enabled -InputSigType2230=Digital -InputCue2231=Item 218 Enabled -InputSigType2231=Digital -InputCue2232=Item 219 Enabled -InputSigType2232=Digital -InputCue2233=Item 220 Enabled -InputSigType2233=Digital -InputCue2234=Item 221 Enabled -InputSigType2234=Digital -InputCue2235=Item 222 Enabled -InputSigType2235=Digital -InputCue2236=Item 223 Enabled -InputSigType2236=Digital -InputCue2237=Item 224 Enabled -InputSigType2237=Digital -InputCue2238=Item 225 Enabled -InputSigType2238=Digital -InputCue2239=Item 226 Enabled -InputSigType2239=Digital -InputCue2240=Item 227 Enabled -InputSigType2240=Digital -InputCue2241=Item 228 Enabled -InputSigType2241=Digital -InputCue2242=Item 229 Enabled -InputSigType2242=Digital -InputCue2243=Item 230 Enabled -InputSigType2243=Digital -InputCue2244=Item 231 Enabled -InputSigType2244=Digital -InputCue2245=Item 232 Enabled -InputSigType2245=Digital -InputCue2246=Item 233 Enabled -InputSigType2246=Digital -InputCue2247=Item 234 Enabled -InputSigType2247=Digital -InputCue2248=Item 235 Enabled -InputSigType2248=Digital -InputCue2249=Item 236 Enabled -InputSigType2249=Digital -InputCue2250=Item 237 Enabled -InputSigType2250=Digital -InputCue2251=Item 238 Enabled -InputSigType2251=Digital -InputCue2252=Item 239 Enabled -InputSigType2252=Digital -InputCue2253=Item 240 Enabled -InputSigType2253=Digital -InputCue2254=Item 241 Enabled -InputSigType2254=Digital -InputCue2255=Item 242 Enabled -InputSigType2255=Digital -InputCue2256=Item 243 Enabled -InputSigType2256=Digital -InputCue2257=Item 244 Enabled -InputSigType2257=Digital -InputCue2258=Item 245 Enabled -InputSigType2258=Digital -InputCue2259=Item 246 Enabled -InputSigType2259=Digital -InputCue2260=Item 247 Enabled -InputSigType2260=Digital -InputCue2261=Item 248 Enabled -InputSigType2261=Digital -InputCue2262=Item 249 Enabled -InputSigType2262=Digital -InputCue2263=Item 250 Enabled -InputSigType2263=Digital -InputCue2264=Item 251 Enabled -InputSigType2264=Digital -InputCue2265=Item 252 Enabled -InputSigType2265=Digital -InputCue2266=Item 253 Enabled -InputSigType2266=Digital -InputCue2267=Item 254 Enabled -InputSigType2267=Digital -InputCue2268=Item 255 Enabled -InputSigType2268=Digital -InputCue2269=[~UNUSED2~] -InputSigType2269=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Enable -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]Visible -InputSigType4015=Digital -InputCue4016=Item 1 Visible -InputSigType4016=Digital -InputCue4017=Item 2 Visible -InputSigType4017=Digital -InputCue4018=Item 3 Visible -InputSigType4018=Digital -InputCue4019=Item 4 Visible -InputSigType4019=Digital -InputCue4020=Item 5 Visible -InputSigType4020=Digital -InputCue4021=Item 6 Visible -InputSigType4021=Digital -InputCue4022=Item 7 Visible -InputSigType4022=Digital -InputCue4023=Item 8 Visible -InputSigType4023=Digital -InputCue4024=Item 9 Visible -InputSigType4024=Digital -InputCue4025=Item 10 Visible -InputSigType4025=Digital -InputCue4026=Item 11 Visible -InputSigType4026=Digital -InputCue4027=Item 12 Visible -InputSigType4027=Digital -InputCue4028=Item 13 Visible -InputSigType4028=Digital -InputCue4029=Item 14 Visible -InputSigType4029=Digital -InputCue4030=Item 15 Visible -InputSigType4030=Digital -InputCue4031=Item 16 Visible -InputSigType4031=Digital -InputCue4032=Item 17 Visible -InputSigType4032=Digital -InputCue4033=Item 18 Visible -InputSigType4033=Digital -InputCue4034=Item 19 Visible -InputSigType4034=Digital -InputCue4035=Item 20 Visible -InputSigType4035=Digital -InputCue4036=Item 21 Visible -InputSigType4036=Digital -InputCue4037=Item 22 Visible -InputSigType4037=Digital -InputCue4038=Item 23 Visible -InputSigType4038=Digital -InputCue4039=Item 24 Visible -InputSigType4039=Digital -InputCue4040=Item 25 Visible -InputSigType4040=Digital -InputCue4041=Item 26 Visible -InputSigType4041=Digital -InputCue4042=Item 27 Visible -InputSigType4042=Digital -InputCue4043=Item 28 Visible -InputSigType4043=Digital -InputCue4044=Item 29 Visible -InputSigType4044=Digital -InputCue4045=Item 30 Visible -InputSigType4045=Digital -InputCue4046=Item 31 Visible -InputSigType4046=Digital -InputCue4047=Item 32 Visible -InputSigType4047=Digital -InputCue4048=Item 33 Visible -InputSigType4048=Digital -InputCue4049=Item 34 Visible -InputSigType4049=Digital -InputCue4050=Item 35 Visible -InputSigType4050=Digital -InputCue4051=Item 36 Visible -InputSigType4051=Digital -InputCue4052=Item 37 Visible -InputSigType4052=Digital -InputCue4053=Item 38 Visible -InputSigType4053=Digital -InputCue4054=Item 39 Visible -InputSigType4054=Digital -InputCue4055=Item 40 Visible -InputSigType4055=Digital -InputCue4056=Item 41 Visible -InputSigType4056=Digital -InputCue4057=Item 42 Visible -InputSigType4057=Digital -InputCue4058=Item 43 Visible -InputSigType4058=Digital -InputCue4059=Item 44 Visible -InputSigType4059=Digital -InputCue4060=Item 45 Visible -InputSigType4060=Digital -InputCue4061=Item 46 Visible -InputSigType4061=Digital -InputCue4062=Item 47 Visible -InputSigType4062=Digital -InputCue4063=Item 48 Visible -InputSigType4063=Digital -InputCue4064=Item 49 Visible -InputSigType4064=Digital -InputCue4065=Item 50 Visible -InputSigType4065=Digital -InputCue4066=Item 51 Visible -InputSigType4066=Digital -InputCue4067=Item 52 Visible -InputSigType4067=Digital -InputCue4068=Item 53 Visible -InputSigType4068=Digital -InputCue4069=Item 54 Visible -InputSigType4069=Digital -InputCue4070=Item 55 Visible -InputSigType4070=Digital -InputCue4071=Item 56 Visible -InputSigType4071=Digital -InputCue4072=Item 57 Visible -InputSigType4072=Digital -InputCue4073=Item 58 Visible -InputSigType4073=Digital -InputCue4074=Item 59 Visible -InputSigType4074=Digital -InputCue4075=Item 60 Visible -InputSigType4075=Digital -InputCue4076=Item 61 Visible -InputSigType4076=Digital -InputCue4077=Item 62 Visible -InputSigType4077=Digital -InputCue4078=Item 63 Visible -InputSigType4078=Digital -InputCue4079=Item 64 Visible -InputSigType4079=Digital -InputCue4080=Item 65 Visible -InputSigType4080=Digital -InputCue4081=Item 66 Visible -InputSigType4081=Digital -InputCue4082=Item 67 Visible -InputSigType4082=Digital -InputCue4083=Item 68 Visible -InputSigType4083=Digital -InputCue4084=Item 69 Visible -InputSigType4084=Digital -InputCue4085=Item 70 Visible -InputSigType4085=Digital -InputCue4086=Item 71 Visible -InputSigType4086=Digital -InputCue4087=Item 72 Visible -InputSigType4087=Digital -InputCue4088=Item 73 Visible -InputSigType4088=Digital -InputCue4089=Item 74 Visible -InputSigType4089=Digital -InputCue4090=Item 75 Visible -InputSigType4090=Digital -InputCue4091=Item 76 Visible -InputSigType4091=Digital -InputCue4092=Item 77 Visible -InputSigType4092=Digital -InputCue4093=Item 78 Visible -InputSigType4093=Digital -InputCue4094=Item 79 Visible -InputSigType4094=Digital -InputCue4095=Item 80 Visible -InputSigType4095=Digital -InputCue4096=Item 81 Visible -InputSigType4096=Digital -InputCue4097=Item 82 Visible -InputSigType4097=Digital -InputCue4098=Item 83 Visible -InputSigType4098=Digital -InputCue4099=Item 84 Visible -InputSigType4099=Digital -InputCue4100=Item 85 Visible -InputSigType4100=Digital -InputCue4101=Item 86 Visible -InputSigType4101=Digital -InputCue4102=Item 87 Visible -InputSigType4102=Digital -InputCue4103=Item 88 Visible -InputSigType4103=Digital -InputCue4104=Item 89 Visible -InputSigType4104=Digital -InputCue4105=Item 90 Visible -InputSigType4105=Digital -InputCue4106=Item 91 Visible -InputSigType4106=Digital -InputCue4107=Item 92 Visible -InputSigType4107=Digital -InputCue4108=Item 93 Visible -InputSigType4108=Digital -InputCue4109=Item 94 Visible -InputSigType4109=Digital -InputCue4110=Item 95 Visible -InputSigType4110=Digital -InputCue4111=Item 96 Visible -InputSigType4111=Digital -InputCue4112=Item 97 Visible -InputSigType4112=Digital -InputCue4113=Item 98 Visible -InputSigType4113=Digital -InputCue4114=Item 99 Visible -InputSigType4114=Digital -InputCue4115=Item 100 Visible -InputSigType4115=Digital -InputCue4116=Item 101 Visible -InputSigType4116=Digital -InputCue4117=Item 102 Visible -InputSigType4117=Digital -InputCue4118=Item 103 Visible -InputSigType4118=Digital -InputCue4119=Item 104 Visible -InputSigType4119=Digital -InputCue4120=Item 105 Visible -InputSigType4120=Digital -InputCue4121=Item 106 Visible -InputSigType4121=Digital -InputCue4122=Item 107 Visible -InputSigType4122=Digital -InputCue4123=Item 108 Visible -InputSigType4123=Digital -InputCue4124=Item 109 Visible -InputSigType4124=Digital -InputCue4125=Item 110 Visible -InputSigType4125=Digital -InputCue4126=Item 111 Visible -InputSigType4126=Digital -InputCue4127=Item 112 Visible -InputSigType4127=Digital -InputCue4128=Item 113 Visible -InputSigType4128=Digital -InputCue4129=Item 114 Visible -InputSigType4129=Digital -InputCue4130=Item 115 Visible -InputSigType4130=Digital -InputCue4131=Item 116 Visible -InputSigType4131=Digital -InputCue4132=Item 117 Visible -InputSigType4132=Digital -InputCue4133=Item 118 Visible -InputSigType4133=Digital -InputCue4134=Item 119 Visible -InputSigType4134=Digital -InputCue4135=Item 120 Visible -InputSigType4135=Digital -InputCue4136=Item 121 Visible -InputSigType4136=Digital -InputCue4137=Item 122 Visible -InputSigType4137=Digital -InputCue4138=Item 123 Visible -InputSigType4138=Digital -InputCue4139=Item 124 Visible -InputSigType4139=Digital -InputCue4140=Item 125 Visible -InputSigType4140=Digital -InputCue4141=Item 126 Visible -InputSigType4141=Digital -InputCue4142=Item 127 Visible -InputSigType4142=Digital -InputCue4143=Item 128 Visible -InputSigType4143=Digital -InputCue4144=Item 129 Visible -InputSigType4144=Digital -InputCue4145=Item 130 Visible -InputSigType4145=Digital -InputCue4146=Item 131 Visible -InputSigType4146=Digital -InputCue4147=Item 132 Visible -InputSigType4147=Digital -InputCue4148=Item 133 Visible -InputSigType4148=Digital -InputCue4149=Item 134 Visible -InputSigType4149=Digital -InputCue4150=Item 135 Visible -InputSigType4150=Digital -InputCue4151=Item 136 Visible -InputSigType4151=Digital -InputCue4152=Item 137 Visible -InputSigType4152=Digital -InputCue4153=Item 138 Visible -InputSigType4153=Digital -InputCue4154=Item 139 Visible -InputSigType4154=Digital -InputCue4155=Item 140 Visible -InputSigType4155=Digital -InputCue4156=Item 141 Visible -InputSigType4156=Digital -InputCue4157=Item 142 Visible -InputSigType4157=Digital -InputCue4158=Item 143 Visible -InputSigType4158=Digital -InputCue4159=Item 144 Visible -InputSigType4159=Digital -InputCue4160=Item 145 Visible -InputSigType4160=Digital -InputCue4161=Item 146 Visible -InputSigType4161=Digital -InputCue4162=Item 147 Visible -InputSigType4162=Digital -InputCue4163=Item 148 Visible -InputSigType4163=Digital -InputCue4164=Item 149 Visible -InputSigType4164=Digital -InputCue4165=Item 150 Visible -InputSigType4165=Digital -InputCue4166=Item 151 Visible -InputSigType4166=Digital -InputCue4167=Item 152 Visible -InputSigType4167=Digital -InputCue4168=Item 153 Visible -InputSigType4168=Digital -InputCue4169=Item 154 Visible -InputSigType4169=Digital -InputCue4170=Item 155 Visible -InputSigType4170=Digital -InputCue4171=Item 156 Visible -InputSigType4171=Digital -InputCue4172=Item 157 Visible -InputSigType4172=Digital -InputCue4173=Item 158 Visible -InputSigType4173=Digital -InputCue4174=Item 159 Visible -InputSigType4174=Digital -InputCue4175=Item 160 Visible -InputSigType4175=Digital -InputCue4176=Item 161 Visible -InputSigType4176=Digital -InputCue4177=Item 162 Visible -InputSigType4177=Digital -InputCue4178=Item 163 Visible -InputSigType4178=Digital -InputCue4179=Item 164 Visible -InputSigType4179=Digital -InputCue4180=Item 165 Visible -InputSigType4180=Digital -InputCue4181=Item 166 Visible -InputSigType4181=Digital -InputCue4182=Item 167 Visible -InputSigType4182=Digital -InputCue4183=Item 168 Visible -InputSigType4183=Digital -InputCue4184=Item 169 Visible -InputSigType4184=Digital -InputCue4185=Item 170 Visible -InputSigType4185=Digital -InputCue4186=Item 171 Visible -InputSigType4186=Digital -InputCue4187=Item 172 Visible -InputSigType4187=Digital -InputCue4188=Item 173 Visible -InputSigType4188=Digital -InputCue4189=Item 174 Visible -InputSigType4189=Digital -InputCue4190=Item 175 Visible -InputSigType4190=Digital -InputCue4191=Item 176 Visible -InputSigType4191=Digital -InputCue4192=Item 177 Visible -InputSigType4192=Digital -InputCue4193=Item 178 Visible -InputSigType4193=Digital -InputCue4194=Item 179 Visible -InputSigType4194=Digital -InputCue4195=Item 180 Visible -InputSigType4195=Digital -InputCue4196=Item 181 Visible -InputSigType4196=Digital -InputCue4197=Item 182 Visible -InputSigType4197=Digital -InputCue4198=Item 183 Visible -InputSigType4198=Digital -InputCue4199=Item 184 Visible -InputSigType4199=Digital -InputCue4200=Item 185 Visible -InputSigType4200=Digital -InputCue4201=Item 186 Visible -InputSigType4201=Digital -InputCue4202=Item 187 Visible -InputSigType4202=Digital -InputCue4203=Item 188 Visible -InputSigType4203=Digital -InputCue4204=Item 189 Visible -InputSigType4204=Digital -InputCue4205=Item 190 Visible -InputSigType4205=Digital -InputCue4206=Item 191 Visible -InputSigType4206=Digital -InputCue4207=Item 192 Visible -InputSigType4207=Digital -InputCue4208=Item 193 Visible -InputSigType4208=Digital -InputCue4209=Item 194 Visible -InputSigType4209=Digital -InputCue4210=Item 195 Visible -InputSigType4210=Digital -InputCue4211=Item 196 Visible -InputSigType4211=Digital -InputCue4212=Item 197 Visible -InputSigType4212=Digital -InputCue4213=Item 198 Visible -InputSigType4213=Digital -InputCue4214=Item 199 Visible -InputSigType4214=Digital -InputCue4215=Item 200 Visible -InputSigType4215=Digital -InputCue4216=Item 201 Visible -InputSigType4216=Digital -InputCue4217=Item 202 Visible -InputSigType4217=Digital -InputCue4218=Item 203 Visible -InputSigType4218=Digital -InputCue4219=Item 204 Visible -InputSigType4219=Digital -InputCue4220=Item 205 Visible -InputSigType4220=Digital -InputCue4221=Item 206 Visible -InputSigType4221=Digital -InputCue4222=Item 207 Visible -InputSigType4222=Digital -InputCue4223=Item 208 Visible -InputSigType4223=Digital -InputCue4224=Item 209 Visible -InputSigType4224=Digital -InputCue4225=Item 210 Visible -InputSigType4225=Digital -InputCue4226=Item 211 Visible -InputSigType4226=Digital -InputCue4227=Item 212 Visible -InputSigType4227=Digital -InputCue4228=Item 213 Visible -InputSigType4228=Digital -InputCue4229=Item 214 Visible -InputSigType4229=Digital -InputCue4230=Item 215 Visible -InputSigType4230=Digital -InputCue4231=Item 216 Visible -InputSigType4231=Digital -InputCue4232=Item 217 Visible -InputSigType4232=Digital -InputCue4233=Item 218 Visible -InputSigType4233=Digital -InputCue4234=Item 219 Visible -InputSigType4234=Digital -InputCue4235=Item 220 Visible -InputSigType4235=Digital -InputCue4236=Item 221 Visible -InputSigType4236=Digital -InputCue4237=Item 222 Visible -InputSigType4237=Digital -InputCue4238=Item 223 Visible -InputSigType4238=Digital -InputCue4239=Item 224 Visible -InputSigType4239=Digital -InputCue4240=Item 225 Visible -InputSigType4240=Digital -InputCue4241=Item 226 Visible -InputSigType4241=Digital -InputCue4242=Item 227 Visible -InputSigType4242=Digital -InputCue4243=Item 228 Visible -InputSigType4243=Digital -InputCue4244=Item 229 Visible -InputSigType4244=Digital -InputCue4245=Item 230 Visible -InputSigType4245=Digital -InputCue4246=Item 231 Visible -InputSigType4246=Digital -InputCue4247=Item 232 Visible -InputSigType4247=Digital -InputCue4248=Item 233 Visible -InputSigType4248=Digital -InputCue4249=Item 234 Visible -InputSigType4249=Digital -InputCue4250=Item 235 Visible -InputSigType4250=Digital -InputCue4251=Item 236 Visible -InputSigType4251=Digital -InputCue4252=Item 237 Visible -InputSigType4252=Digital -InputCue4253=Item 238 Visible -InputSigType4253=Digital -InputCue4254=Item 239 Visible -InputSigType4254=Digital -InputCue4255=Item 240 Visible -InputSigType4255=Digital -InputCue4256=Item 241 Visible -InputSigType4256=Digital -InputCue4257=Item 242 Visible -InputSigType4257=Digital -InputCue4258=Item 243 Visible -InputSigType4258=Digital -InputCue4259=Item 244 Visible -InputSigType4259=Digital -InputCue4260=Item 245 Visible -InputSigType4260=Digital -InputCue4261=Item 246 Visible -InputSigType4261=Digital -InputCue4262=Item 247 Visible -InputSigType4262=Digital -InputCue4263=Item 248 Visible -InputSigType4263=Digital -InputCue4264=Item 249 Visible -InputSigType4264=Digital -InputCue4265=Item 250 Visible -InputSigType4265=Digital -InputCue4266=Item 251 Visible -InputSigType4266=Digital -InputCue4267=Item 252 Visible -InputSigType4267=Digital -InputCue4268=Item 253 Visible -InputSigType4268=Digital -InputCue4269=Item 254 Visible -InputSigType4269=Digital -InputCue4270=Item 255 Visible -InputSigType4270=Digital -InputCue4271=[~UNUSED2~] -InputSigType4271=Digital|Analog|Serial|String -InputCue6016=[~EndGroup~]Visible -InputSigType6016=Digital -OutputCue1=[~UNUSED3~] -OutputSigType1=Digital -OutputCue2=Is Moving -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Press -OutputSigType11=Digital -OutputCue12=Item 1 Pressed -OutputSigType12=Digital -OutputCue13=Item 2 Pressed -OutputSigType13=Digital -OutputCue14=Item 3 Pressed -OutputSigType14=Digital -OutputCue15=Item 4 Pressed -OutputSigType15=Digital -OutputCue16=Item 5 Pressed -OutputSigType16=Digital -OutputCue17=Item 6 Pressed -OutputSigType17=Digital -OutputCue18=Item 7 Pressed -OutputSigType18=Digital -OutputCue19=Item 8 Pressed -OutputSigType19=Digital -OutputCue20=Item 9 Pressed -OutputSigType20=Digital -OutputCue21=Item 10 Pressed -OutputSigType21=Digital -OutputCue22=Item 11 Pressed -OutputSigType22=Digital -OutputCue23=Item 12 Pressed -OutputSigType23=Digital -OutputCue24=Item 13 Pressed -OutputSigType24=Digital -OutputCue25=Item 14 Pressed -OutputSigType25=Digital -OutputCue26=Item 15 Pressed -OutputSigType26=Digital -OutputCue27=Item 16 Pressed -OutputSigType27=Digital -OutputCue28=Item 17 Pressed -OutputSigType28=Digital -OutputCue29=Item 18 Pressed -OutputSigType29=Digital -OutputCue30=Item 19 Pressed -OutputSigType30=Digital -OutputCue31=Item 20 Pressed -OutputSigType31=Digital -OutputCue32=Item 21 Pressed -OutputSigType32=Digital -OutputCue33=Item 22 Pressed -OutputSigType33=Digital -OutputCue34=Item 23 Pressed -OutputSigType34=Digital -OutputCue35=Item 24 Pressed -OutputSigType35=Digital -OutputCue36=Item 25 Pressed -OutputSigType36=Digital -OutputCue37=Item 26 Pressed -OutputSigType37=Digital -OutputCue38=Item 27 Pressed -OutputSigType38=Digital -OutputCue39=Item 28 Pressed -OutputSigType39=Digital -OutputCue40=Item 29 Pressed -OutputSigType40=Digital -OutputCue41=Item 30 Pressed -OutputSigType41=Digital -OutputCue42=Item 31 Pressed -OutputSigType42=Digital -OutputCue43=Item 32 Pressed -OutputSigType43=Digital -OutputCue44=Item 33 Pressed -OutputSigType44=Digital -OutputCue45=Item 34 Pressed -OutputSigType45=Digital -OutputCue46=Item 35 Pressed -OutputSigType46=Digital -OutputCue47=Item 36 Pressed -OutputSigType47=Digital -OutputCue48=Item 37 Pressed -OutputSigType48=Digital -OutputCue49=Item 38 Pressed -OutputSigType49=Digital -OutputCue50=Item 39 Pressed -OutputSigType50=Digital -OutputCue51=Item 40 Pressed -OutputSigType51=Digital -OutputCue52=Item 41 Pressed -OutputSigType52=Digital -OutputCue53=Item 42 Pressed -OutputSigType53=Digital -OutputCue54=Item 43 Pressed -OutputSigType54=Digital -OutputCue55=Item 44 Pressed -OutputSigType55=Digital -OutputCue56=Item 45 Pressed -OutputSigType56=Digital -OutputCue57=Item 46 Pressed -OutputSigType57=Digital -OutputCue58=Item 47 Pressed -OutputSigType58=Digital -OutputCue59=Item 48 Pressed -OutputSigType59=Digital -OutputCue60=Item 49 Pressed -OutputSigType60=Digital -OutputCue61=Item 50 Pressed -OutputSigType61=Digital -OutputCue62=Item 51 Pressed -OutputSigType62=Digital -OutputCue63=Item 52 Pressed -OutputSigType63=Digital -OutputCue64=Item 53 Pressed -OutputSigType64=Digital -OutputCue65=Item 54 Pressed -OutputSigType65=Digital -OutputCue66=Item 55 Pressed -OutputSigType66=Digital -OutputCue67=Item 56 Pressed -OutputSigType67=Digital -OutputCue68=Item 57 Pressed -OutputSigType68=Digital -OutputCue69=Item 58 Pressed -OutputSigType69=Digital -OutputCue70=Item 59 Pressed -OutputSigType70=Digital -OutputCue71=Item 60 Pressed -OutputSigType71=Digital -OutputCue72=Item 61 Pressed -OutputSigType72=Digital -OutputCue73=Item 62 Pressed -OutputSigType73=Digital -OutputCue74=Item 63 Pressed -OutputSigType74=Digital -OutputCue75=Item 64 Pressed -OutputSigType75=Digital -OutputCue76=Item 65 Pressed -OutputSigType76=Digital -OutputCue77=Item 66 Pressed -OutputSigType77=Digital -OutputCue78=Item 67 Pressed -OutputSigType78=Digital -OutputCue79=Item 68 Pressed -OutputSigType79=Digital -OutputCue80=Item 69 Pressed -OutputSigType80=Digital -OutputCue81=Item 70 Pressed -OutputSigType81=Digital -OutputCue82=Item 71 Pressed -OutputSigType82=Digital -OutputCue83=Item 72 Pressed -OutputSigType83=Digital -OutputCue84=Item 73 Pressed -OutputSigType84=Digital -OutputCue85=Item 74 Pressed -OutputSigType85=Digital -OutputCue86=Item 75 Pressed -OutputSigType86=Digital -OutputCue87=Item 76 Pressed -OutputSigType87=Digital -OutputCue88=Item 77 Pressed -OutputSigType88=Digital -OutputCue89=Item 78 Pressed -OutputSigType89=Digital -OutputCue90=Item 79 Pressed -OutputSigType90=Digital -OutputCue91=Item 80 Pressed -OutputSigType91=Digital -OutputCue92=Item 81 Pressed -OutputSigType92=Digital -OutputCue93=Item 82 Pressed -OutputSigType93=Digital -OutputCue94=Item 83 Pressed -OutputSigType94=Digital -OutputCue95=Item 84 Pressed -OutputSigType95=Digital -OutputCue96=Item 85 Pressed -OutputSigType96=Digital -OutputCue97=Item 86 Pressed -OutputSigType97=Digital -OutputCue98=Item 87 Pressed -OutputSigType98=Digital -OutputCue99=Item 88 Pressed -OutputSigType99=Digital -OutputCue100=Item 89 Pressed -OutputSigType100=Digital -OutputCue101=Item 90 Pressed -OutputSigType101=Digital -OutputCue102=Item 91 Pressed -OutputSigType102=Digital -OutputCue103=Item 92 Pressed -OutputSigType103=Digital -OutputCue104=Item 93 Pressed -OutputSigType104=Digital -OutputCue105=Item 94 Pressed -OutputSigType105=Digital -OutputCue106=Item 95 Pressed -OutputSigType106=Digital -OutputCue107=Item 96 Pressed -OutputSigType107=Digital -OutputCue108=Item 97 Pressed -OutputSigType108=Digital -OutputCue109=Item 98 Pressed -OutputSigType109=Digital -OutputCue110=Item 99 Pressed -OutputSigType110=Digital -OutputCue111=Item 100 Pressed -OutputSigType111=Digital -OutputCue112=Item 101 Pressed -OutputSigType112=Digital -OutputCue113=Item 102 Pressed -OutputSigType113=Digital -OutputCue114=Item 103 Pressed -OutputSigType114=Digital -OutputCue115=Item 104 Pressed -OutputSigType115=Digital -OutputCue116=Item 105 Pressed -OutputSigType116=Digital -OutputCue117=Item 106 Pressed -OutputSigType117=Digital -OutputCue118=Item 107 Pressed -OutputSigType118=Digital -OutputCue119=Item 108 Pressed -OutputSigType119=Digital -OutputCue120=Item 109 Pressed -OutputSigType120=Digital -OutputCue121=Item 110 Pressed -OutputSigType121=Digital -OutputCue122=Item 111 Pressed -OutputSigType122=Digital -OutputCue123=Item 112 Pressed -OutputSigType123=Digital -OutputCue124=Item 113 Pressed -OutputSigType124=Digital -OutputCue125=Item 114 Pressed -OutputSigType125=Digital -OutputCue126=Item 115 Pressed -OutputSigType126=Digital -OutputCue127=Item 116 Pressed -OutputSigType127=Digital -OutputCue128=Item 117 Pressed -OutputSigType128=Digital -OutputCue129=Item 118 Pressed -OutputSigType129=Digital -OutputCue130=Item 119 Pressed -OutputSigType130=Digital -OutputCue131=Item 120 Pressed -OutputSigType131=Digital -OutputCue132=Item 121 Pressed -OutputSigType132=Digital -OutputCue133=Item 122 Pressed -OutputSigType133=Digital -OutputCue134=Item 123 Pressed -OutputSigType134=Digital -OutputCue135=Item 124 Pressed -OutputSigType135=Digital -OutputCue136=Item 125 Pressed -OutputSigType136=Digital -OutputCue137=Item 126 Pressed -OutputSigType137=Digital -OutputCue138=Item 127 Pressed -OutputSigType138=Digital -OutputCue139=Item 128 Pressed -OutputSigType139=Digital -OutputCue140=Item 129 Pressed -OutputSigType140=Digital -OutputCue141=Item 130 Pressed -OutputSigType141=Digital -OutputCue142=Item 131 Pressed -OutputSigType142=Digital -OutputCue143=Item 132 Pressed -OutputSigType143=Digital -OutputCue144=Item 133 Pressed -OutputSigType144=Digital -OutputCue145=Item 134 Pressed -OutputSigType145=Digital -OutputCue146=Item 135 Pressed -OutputSigType146=Digital -OutputCue147=Item 136 Pressed -OutputSigType147=Digital -OutputCue148=Item 137 Pressed -OutputSigType148=Digital -OutputCue149=Item 138 Pressed -OutputSigType149=Digital -OutputCue150=Item 139 Pressed -OutputSigType150=Digital -OutputCue151=Item 140 Pressed -OutputSigType151=Digital -OutputCue152=Item 141 Pressed -OutputSigType152=Digital -OutputCue153=Item 142 Pressed -OutputSigType153=Digital -OutputCue154=Item 143 Pressed -OutputSigType154=Digital -OutputCue155=Item 144 Pressed -OutputSigType155=Digital -OutputCue156=Item 145 Pressed -OutputSigType156=Digital -OutputCue157=Item 146 Pressed -OutputSigType157=Digital -OutputCue158=Item 147 Pressed -OutputSigType158=Digital -OutputCue159=Item 148 Pressed -OutputSigType159=Digital -OutputCue160=Item 149 Pressed -OutputSigType160=Digital -OutputCue161=Item 150 Pressed -OutputSigType161=Digital -OutputCue162=Item 151 Pressed -OutputSigType162=Digital -OutputCue163=Item 152 Pressed -OutputSigType163=Digital -OutputCue164=Item 153 Pressed -OutputSigType164=Digital -OutputCue165=Item 154 Pressed -OutputSigType165=Digital -OutputCue166=Item 155 Pressed -OutputSigType166=Digital -OutputCue167=Item 156 Pressed -OutputSigType167=Digital -OutputCue168=Item 157 Pressed -OutputSigType168=Digital -OutputCue169=Item 158 Pressed -OutputSigType169=Digital -OutputCue170=Item 159 Pressed -OutputSigType170=Digital -OutputCue171=Item 160 Pressed -OutputSigType171=Digital -OutputCue172=Item 161 Pressed -OutputSigType172=Digital -OutputCue173=Item 162 Pressed -OutputSigType173=Digital -OutputCue174=Item 163 Pressed -OutputSigType174=Digital -OutputCue175=Item 164 Pressed -OutputSigType175=Digital -OutputCue176=Item 165 Pressed -OutputSigType176=Digital -OutputCue177=Item 166 Pressed -OutputSigType177=Digital -OutputCue178=Item 167 Pressed -OutputSigType178=Digital -OutputCue179=Item 168 Pressed -OutputSigType179=Digital -OutputCue180=Item 169 Pressed -OutputSigType180=Digital -OutputCue181=Item 170 Pressed -OutputSigType181=Digital -OutputCue182=Item 171 Pressed -OutputSigType182=Digital -OutputCue183=Item 172 Pressed -OutputSigType183=Digital -OutputCue184=Item 173 Pressed -OutputSigType184=Digital -OutputCue185=Item 174 Pressed -OutputSigType185=Digital -OutputCue186=Item 175 Pressed -OutputSigType186=Digital -OutputCue187=Item 176 Pressed -OutputSigType187=Digital -OutputCue188=Item 177 Pressed -OutputSigType188=Digital -OutputCue189=Item 178 Pressed -OutputSigType189=Digital -OutputCue190=Item 179 Pressed -OutputSigType190=Digital -OutputCue191=Item 180 Pressed -OutputSigType191=Digital -OutputCue192=Item 181 Pressed -OutputSigType192=Digital -OutputCue193=Item 182 Pressed -OutputSigType193=Digital -OutputCue194=Item 183 Pressed -OutputSigType194=Digital -OutputCue195=Item 184 Pressed -OutputSigType195=Digital -OutputCue196=Item 185 Pressed -OutputSigType196=Digital -OutputCue197=Item 186 Pressed -OutputSigType197=Digital -OutputCue198=Item 187 Pressed -OutputSigType198=Digital -OutputCue199=Item 188 Pressed -OutputSigType199=Digital -OutputCue200=Item 189 Pressed -OutputSigType200=Digital -OutputCue201=Item 190 Pressed -OutputSigType201=Digital -OutputCue202=Item 191 Pressed -OutputSigType202=Digital -OutputCue203=Item 192 Pressed -OutputSigType203=Digital -OutputCue204=Item 193 Pressed -OutputSigType204=Digital -OutputCue205=Item 194 Pressed -OutputSigType205=Digital -OutputCue206=Item 195 Pressed -OutputSigType206=Digital -OutputCue207=Item 196 Pressed -OutputSigType207=Digital -OutputCue208=Item 197 Pressed -OutputSigType208=Digital -OutputCue209=Item 198 Pressed -OutputSigType209=Digital -OutputCue210=Item 199 Pressed -OutputSigType210=Digital -OutputCue211=Item 200 Pressed -OutputSigType211=Digital -OutputCue212=Item 201 Pressed -OutputSigType212=Digital -OutputCue213=Item 202 Pressed -OutputSigType213=Digital -OutputCue214=Item 203 Pressed -OutputSigType214=Digital -OutputCue215=Item 204 Pressed -OutputSigType215=Digital -OutputCue216=Item 205 Pressed -OutputSigType216=Digital -OutputCue217=Item 206 Pressed -OutputSigType217=Digital -OutputCue218=Item 207 Pressed -OutputSigType218=Digital -OutputCue219=Item 208 Pressed -OutputSigType219=Digital -OutputCue220=Item 209 Pressed -OutputSigType220=Digital -OutputCue221=Item 210 Pressed -OutputSigType221=Digital -OutputCue222=Item 211 Pressed -OutputSigType222=Digital -OutputCue223=Item 212 Pressed -OutputSigType223=Digital -OutputCue224=Item 213 Pressed -OutputSigType224=Digital -OutputCue225=Item 214 Pressed -OutputSigType225=Digital -OutputCue226=Item 215 Pressed -OutputSigType226=Digital -OutputCue227=Item 216 Pressed -OutputSigType227=Digital -OutputCue228=Item 217 Pressed -OutputSigType228=Digital -OutputCue229=Item 218 Pressed -OutputSigType229=Digital -OutputCue230=Item 219 Pressed -OutputSigType230=Digital -OutputCue231=Item 220 Pressed -OutputSigType231=Digital -OutputCue232=Item 221 Pressed -OutputSigType232=Digital -OutputCue233=Item 222 Pressed -OutputSigType233=Digital -OutputCue234=Item 223 Pressed -OutputSigType234=Digital -OutputCue235=Item 224 Pressed -OutputSigType235=Digital -OutputCue236=Item 225 Pressed -OutputSigType236=Digital -OutputCue237=Item 226 Pressed -OutputSigType237=Digital -OutputCue238=Item 227 Pressed -OutputSigType238=Digital -OutputCue239=Item 228 Pressed -OutputSigType239=Digital -OutputCue240=Item 229 Pressed -OutputSigType240=Digital -OutputCue241=Item 230 Pressed -OutputSigType241=Digital -OutputCue242=Item 231 Pressed -OutputSigType242=Digital -OutputCue243=Item 232 Pressed -OutputSigType243=Digital -OutputCue244=Item 233 Pressed -OutputSigType244=Digital -OutputCue245=Item 234 Pressed -OutputSigType245=Digital -OutputCue246=Item 235 Pressed -OutputSigType246=Digital -OutputCue247=Item 236 Pressed -OutputSigType247=Digital -OutputCue248=Item 237 Pressed -OutputSigType248=Digital -OutputCue249=Item 238 Pressed -OutputSigType249=Digital -OutputCue250=Item 239 Pressed -OutputSigType250=Digital -OutputCue251=Item 240 Pressed -OutputSigType251=Digital -OutputCue252=Item 241 Pressed -OutputSigType252=Digital -OutputCue253=Item 242 Pressed -OutputSigType253=Digital -OutputCue254=Item 243 Pressed -OutputSigType254=Digital -OutputCue255=Item 244 Pressed -OutputSigType255=Digital -OutputCue256=Item 245 Pressed -OutputSigType256=Digital -OutputCue257=Item 246 Pressed -OutputSigType257=Digital -OutputCue258=Item 247 Pressed -OutputSigType258=Digital -OutputCue259=Item 248 Pressed -OutputSigType259=Digital -OutputCue260=Item 249 Pressed -OutputSigType260=Digital -OutputCue261=Item 250 Pressed -OutputSigType261=Digital -OutputCue262=Item 251 Pressed -OutputSigType262=Digital -OutputCue263=Item 252 Pressed -OutputSigType263=Digital -OutputCue264=Item 253 Pressed -OutputSigType264=Digital -OutputCue265=Item 254 Pressed -OutputSigType265=Digital -OutputCue266=Item 255 Pressed -OutputSigType266=Digital -OutputCue267=[~UNUSED2~] -OutputSigType267=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Press -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Enable -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED3~] -OutputSigType2034=Digital -OutputCue2035=[~UNUSED3~] -OutputSigType2035=Digital -OutputCue2036=[~UNUSED3~] -OutputSigType2036=Digital -OutputCue2037=[~UNUSED3~] -OutputSigType2037=Digital -OutputCue2038=[~UNUSED3~] -OutputSigType2038=Digital -OutputCue2039=[~UNUSED3~] -OutputSigType2039=Digital -OutputCue2040=[~UNUSED3~] -OutputSigType2040=Digital -OutputCue2041=[~UNUSED3~] -OutputSigType2041=Digital -OutputCue2042=[~UNUSED3~] -OutputSigType2042=Digital -OutputCue2043=[~UNUSED3~] -OutputSigType2043=Digital -OutputCue2044=[~UNUSED3~] -OutputSigType2044=Digital -OutputCue2045=[~UNUSED3~] -OutputSigType2045=Digital -OutputCue2046=[~UNUSED3~] -OutputSigType2046=Digital -OutputCue2047=[~UNUSED3~] -OutputSigType2047=Digital -OutputCue2048=[~UNUSED3~] -OutputSigType2048=Digital -OutputCue2049=[~UNUSED3~] -OutputSigType2049=Digital -OutputCue2050=[~UNUSED3~] -OutputSigType2050=Digital -OutputCue2051=[~UNUSED3~] -OutputSigType2051=Digital -OutputCue2052=[~UNUSED3~] -OutputSigType2052=Digital -OutputCue2053=[~UNUSED3~] -OutputSigType2053=Digital -OutputCue2054=[~UNUSED3~] -OutputSigType2054=Digital -OutputCue2055=[~UNUSED3~] -OutputSigType2055=Digital -OutputCue2056=[~UNUSED3~] -OutputSigType2056=Digital -OutputCue2057=[~UNUSED3~] -OutputSigType2057=Digital -OutputCue2058=[~UNUSED3~] -OutputSigType2058=Digital -OutputCue2059=[~UNUSED3~] -OutputSigType2059=Digital -OutputCue2060=[~UNUSED3~] -OutputSigType2060=Digital -OutputCue2061=[~UNUSED3~] -OutputSigType2061=Digital -OutputCue2062=[~UNUSED3~] -OutputSigType2062=Digital -OutputCue2063=[~UNUSED3~] -OutputSigType2063=Digital -OutputCue2064=[~UNUSED3~] -OutputSigType2064=Digital -OutputCue2065=[~UNUSED3~] -OutputSigType2065=Digital -OutputCue2066=[~UNUSED3~] -OutputSigType2066=Digital -OutputCue2067=[~UNUSED3~] -OutputSigType2067=Digital -OutputCue2068=[~UNUSED3~] -OutputSigType2068=Digital -OutputCue2069=[~UNUSED3~] -OutputSigType2069=Digital -OutputCue2070=[~UNUSED3~] -OutputSigType2070=Digital -OutputCue2071=[~UNUSED3~] -OutputSigType2071=Digital -OutputCue2072=[~UNUSED3~] -OutputSigType2072=Digital -OutputCue2073=[~UNUSED3~] -OutputSigType2073=Digital -OutputCue2074=[~UNUSED3~] -OutputSigType2074=Digital -OutputCue2075=[~UNUSED3~] -OutputSigType2075=Digital -OutputCue2076=[~UNUSED3~] -OutputSigType2076=Digital -OutputCue2077=[~UNUSED3~] -OutputSigType2077=Digital -OutputCue2078=[~UNUSED3~] -OutputSigType2078=Digital -OutputCue2079=[~UNUSED3~] -OutputSigType2079=Digital -OutputCue2080=[~UNUSED3~] -OutputSigType2080=Digital -OutputCue2081=[~UNUSED3~] -OutputSigType2081=Digital -OutputCue2082=[~UNUSED3~] -OutputSigType2082=Digital -OutputCue2083=[~UNUSED3~] -OutputSigType2083=Digital -OutputCue2084=[~UNUSED3~] -OutputSigType2084=Digital -OutputCue2085=[~UNUSED3~] -OutputSigType2085=Digital -OutputCue2086=[~UNUSED3~] -OutputSigType2086=Digital -OutputCue2087=[~UNUSED3~] -OutputSigType2087=Digital -OutputCue2088=[~UNUSED3~] -OutputSigType2088=Digital -OutputCue2089=[~UNUSED3~] -OutputSigType2089=Digital -OutputCue2090=[~UNUSED3~] -OutputSigType2090=Digital -OutputCue2091=[~UNUSED3~] -OutputSigType2091=Digital -OutputCue2092=[~UNUSED3~] -OutputSigType2092=Digital -OutputCue2093=[~UNUSED3~] -OutputSigType2093=Digital -OutputCue2094=[~UNUSED3~] -OutputSigType2094=Digital -OutputCue2095=[~UNUSED3~] -OutputSigType2095=Digital -OutputCue2096=[~UNUSED3~] -OutputSigType2096=Digital -OutputCue2097=[~UNUSED3~] -OutputSigType2097=Digital -OutputCue2098=[~UNUSED3~] -OutputSigType2098=Digital -OutputCue2099=[~UNUSED3~] -OutputSigType2099=Digital -OutputCue2100=[~UNUSED3~] -OutputSigType2100=Digital -OutputCue2101=[~UNUSED3~] -OutputSigType2101=Digital -OutputCue2102=[~UNUSED3~] -OutputSigType2102=Digital -OutputCue2103=[~UNUSED3~] -OutputSigType2103=Digital -OutputCue2104=[~UNUSED3~] -OutputSigType2104=Digital -OutputCue2105=[~UNUSED3~] -OutputSigType2105=Digital -OutputCue2106=[~UNUSED3~] -OutputSigType2106=Digital -OutputCue2107=[~UNUSED3~] -OutputSigType2107=Digital -OutputCue2108=[~UNUSED3~] -OutputSigType2108=Digital -OutputCue2109=[~UNUSED3~] -OutputSigType2109=Digital -OutputCue2110=[~UNUSED3~] -OutputSigType2110=Digital -OutputCue2111=[~UNUSED3~] -OutputSigType2111=Digital -OutputCue2112=[~UNUSED3~] -OutputSigType2112=Digital -OutputCue2113=[~UNUSED3~] -OutputSigType2113=Digital -OutputCue2114=[~UNUSED3~] -OutputSigType2114=Digital -OutputCue2115=[~UNUSED3~] -OutputSigType2115=Digital -OutputCue2116=[~UNUSED3~] -OutputSigType2116=Digital -OutputCue2117=[~UNUSED3~] -OutputSigType2117=Digital -OutputCue2118=[~UNUSED3~] -OutputSigType2118=Digital -OutputCue2119=[~UNUSED3~] -OutputSigType2119=Digital -OutputCue2120=[~UNUSED3~] -OutputSigType2120=Digital -OutputCue2121=[~UNUSED3~] -OutputSigType2121=Digital -OutputCue2122=[~UNUSED3~] -OutputSigType2122=Digital -OutputCue2123=[~UNUSED3~] -OutputSigType2123=Digital -OutputCue2124=[~UNUSED3~] -OutputSigType2124=Digital -OutputCue2125=[~UNUSED3~] -OutputSigType2125=Digital -OutputCue2126=[~UNUSED3~] -OutputSigType2126=Digital -OutputCue2127=[~UNUSED3~] -OutputSigType2127=Digital -OutputCue2128=[~UNUSED3~] -OutputSigType2128=Digital -OutputCue2129=[~UNUSED3~] -OutputSigType2129=Digital -OutputCue2130=[~UNUSED3~] -OutputSigType2130=Digital -OutputCue2131=[~UNUSED3~] -OutputSigType2131=Digital -OutputCue2132=[~UNUSED3~] -OutputSigType2132=Digital -OutputCue2133=[~UNUSED3~] -OutputSigType2133=Digital -OutputCue2134=[~UNUSED3~] -OutputSigType2134=Digital -OutputCue2135=[~UNUSED3~] -OutputSigType2135=Digital -OutputCue2136=[~UNUSED3~] -OutputSigType2136=Digital -OutputCue2137=[~UNUSED3~] -OutputSigType2137=Digital -OutputCue2138=[~UNUSED3~] -OutputSigType2138=Digital -OutputCue2139=[~UNUSED3~] -OutputSigType2139=Digital -OutputCue2140=[~UNUSED3~] -OutputSigType2140=Digital -OutputCue2141=[~UNUSED3~] -OutputSigType2141=Digital -OutputCue2142=[~UNUSED3~] -OutputSigType2142=Digital -OutputCue2143=[~UNUSED3~] -OutputSigType2143=Digital -OutputCue2144=[~UNUSED3~] -OutputSigType2144=Digital -OutputCue2145=[~UNUSED3~] -OutputSigType2145=Digital -OutputCue2146=[~UNUSED3~] -OutputSigType2146=Digital -OutputCue2147=[~UNUSED3~] -OutputSigType2147=Digital -OutputCue2148=[~UNUSED3~] -OutputSigType2148=Digital -OutputCue2149=[~UNUSED3~] -OutputSigType2149=Digital -OutputCue2150=[~UNUSED3~] -OutputSigType2150=Digital -OutputCue2151=[~UNUSED3~] -OutputSigType2151=Digital -OutputCue2152=[~UNUSED3~] -OutputSigType2152=Digital -OutputCue2153=[~UNUSED3~] -OutputSigType2153=Digital -OutputCue2154=[~UNUSED3~] -OutputSigType2154=Digital -OutputCue2155=[~UNUSED3~] -OutputSigType2155=Digital -OutputCue2156=[~UNUSED3~] -OutputSigType2156=Digital -OutputCue2157=[~UNUSED3~] -OutputSigType2157=Digital -OutputCue2158=[~UNUSED3~] -OutputSigType2158=Digital -OutputCue2159=[~UNUSED3~] -OutputSigType2159=Digital -OutputCue2160=[~UNUSED3~] -OutputSigType2160=Digital -OutputCue2161=[~UNUSED3~] -OutputSigType2161=Digital -OutputCue2162=[~UNUSED3~] -OutputSigType2162=Digital -OutputCue2163=[~UNUSED3~] -OutputSigType2163=Digital -OutputCue2164=[~UNUSED3~] -OutputSigType2164=Digital -OutputCue2165=[~UNUSED3~] -OutputSigType2165=Digital -OutputCue2166=[~UNUSED3~] -OutputSigType2166=Digital -OutputCue2167=[~UNUSED3~] -OutputSigType2167=Digital -OutputCue2168=[~UNUSED3~] -OutputSigType2168=Digital -OutputCue2169=[~UNUSED3~] -OutputSigType2169=Digital -OutputCue2170=[~UNUSED3~] -OutputSigType2170=Digital -OutputCue2171=[~UNUSED3~] -OutputSigType2171=Digital -OutputCue2172=[~UNUSED3~] -OutputSigType2172=Digital -OutputCue2173=[~UNUSED3~] -OutputSigType2173=Digital -OutputCue2174=[~UNUSED3~] -OutputSigType2174=Digital -OutputCue2175=[~UNUSED3~] -OutputSigType2175=Digital -OutputCue2176=[~UNUSED3~] -OutputSigType2176=Digital -OutputCue2177=[~UNUSED3~] -OutputSigType2177=Digital -OutputCue2178=[~UNUSED3~] -OutputSigType2178=Digital -OutputCue2179=[~UNUSED3~] -OutputSigType2179=Digital -OutputCue2180=[~UNUSED3~] -OutputSigType2180=Digital -OutputCue2181=[~UNUSED3~] -OutputSigType2181=Digital -OutputCue2182=[~UNUSED3~] -OutputSigType2182=Digital -OutputCue2183=[~UNUSED3~] -OutputSigType2183=Digital -OutputCue2184=[~UNUSED3~] -OutputSigType2184=Digital -OutputCue2185=[~UNUSED3~] -OutputSigType2185=Digital -OutputCue2186=[~UNUSED3~] -OutputSigType2186=Digital -OutputCue2187=[~UNUSED3~] -OutputSigType2187=Digital -OutputCue2188=[~UNUSED3~] -OutputSigType2188=Digital -OutputCue2189=[~UNUSED3~] -OutputSigType2189=Digital -OutputCue2190=[~UNUSED3~] -OutputSigType2190=Digital -OutputCue2191=[~UNUSED3~] -OutputSigType2191=Digital -OutputCue2192=[~UNUSED3~] -OutputSigType2192=Digital -OutputCue2193=[~UNUSED3~] -OutputSigType2193=Digital -OutputCue2194=[~UNUSED3~] -OutputSigType2194=Digital -OutputCue2195=[~UNUSED3~] -OutputSigType2195=Digital -OutputCue2196=[~UNUSED3~] -OutputSigType2196=Digital -OutputCue2197=[~UNUSED3~] -OutputSigType2197=Digital -OutputCue2198=[~UNUSED3~] -OutputSigType2198=Digital -OutputCue2199=[~UNUSED3~] -OutputSigType2199=Digital -OutputCue2200=[~UNUSED3~] -OutputSigType2200=Digital -OutputCue2201=[~UNUSED3~] -OutputSigType2201=Digital -OutputCue2202=[~UNUSED3~] -OutputSigType2202=Digital -OutputCue2203=[~UNUSED3~] -OutputSigType2203=Digital -OutputCue2204=[~UNUSED3~] -OutputSigType2204=Digital -OutputCue2205=[~UNUSED3~] -OutputSigType2205=Digital -OutputCue2206=[~UNUSED3~] -OutputSigType2206=Digital -OutputCue2207=[~UNUSED3~] -OutputSigType2207=Digital -OutputCue2208=[~UNUSED3~] -OutputSigType2208=Digital -OutputCue2209=[~UNUSED3~] -OutputSigType2209=Digital -OutputCue2210=[~UNUSED3~] -OutputSigType2210=Digital -OutputCue2211=[~UNUSED3~] -OutputSigType2211=Digital -OutputCue2212=[~UNUSED3~] -OutputSigType2212=Digital -OutputCue2213=[~UNUSED3~] -OutputSigType2213=Digital -OutputCue2214=[~UNUSED3~] -OutputSigType2214=Digital -OutputCue2215=[~UNUSED3~] -OutputSigType2215=Digital -OutputCue2216=[~UNUSED3~] -OutputSigType2216=Digital -OutputCue2217=[~UNUSED3~] -OutputSigType2217=Digital -OutputCue2218=[~UNUSED3~] -OutputSigType2218=Digital -OutputCue2219=[~UNUSED3~] -OutputSigType2219=Digital -OutputCue2220=[~UNUSED3~] -OutputSigType2220=Digital -OutputCue2221=[~UNUSED3~] -OutputSigType2221=Digital -OutputCue2222=[~UNUSED3~] -OutputSigType2222=Digital -OutputCue2223=[~UNUSED3~] -OutputSigType2223=Digital -OutputCue2224=[~UNUSED3~] -OutputSigType2224=Digital -OutputCue2225=[~UNUSED3~] -OutputSigType2225=Digital -OutputCue2226=[~UNUSED3~] -OutputSigType2226=Digital -OutputCue2227=[~UNUSED3~] -OutputSigType2227=Digital -OutputCue2228=[~UNUSED3~] -OutputSigType2228=Digital -OutputCue2229=[~UNUSED3~] -OutputSigType2229=Digital -OutputCue2230=[~UNUSED3~] -OutputSigType2230=Digital -OutputCue2231=[~UNUSED3~] -OutputSigType2231=Digital -OutputCue2232=[~UNUSED3~] -OutputSigType2232=Digital -OutputCue2233=[~UNUSED3~] -OutputSigType2233=Digital -OutputCue2234=[~UNUSED3~] -OutputSigType2234=Digital -OutputCue2235=[~UNUSED3~] -OutputSigType2235=Digital -OutputCue2236=[~UNUSED3~] -OutputSigType2236=Digital -OutputCue2237=[~UNUSED3~] -OutputSigType2237=Digital -OutputCue2238=[~UNUSED3~] -OutputSigType2238=Digital -OutputCue2239=[~UNUSED3~] -OutputSigType2239=Digital -OutputCue2240=[~UNUSED3~] -OutputSigType2240=Digital -OutputCue2241=[~UNUSED3~] -OutputSigType2241=Digital -OutputCue2242=[~UNUSED3~] -OutputSigType2242=Digital -OutputCue2243=[~UNUSED3~] -OutputSigType2243=Digital -OutputCue2244=[~UNUSED3~] -OutputSigType2244=Digital -OutputCue2245=[~UNUSED3~] -OutputSigType2245=Digital -OutputCue2246=[~UNUSED3~] -OutputSigType2246=Digital -OutputCue2247=[~UNUSED3~] -OutputSigType2247=Digital -OutputCue2248=[~UNUSED3~] -OutputSigType2248=Digital -OutputCue2249=[~UNUSED3~] -OutputSigType2249=Digital -OutputCue2250=[~UNUSED3~] -OutputSigType2250=Digital -OutputCue2251=[~UNUSED3~] -OutputSigType2251=Digital -OutputCue2252=[~UNUSED3~] -OutputSigType2252=Digital -OutputCue2253=[~UNUSED3~] -OutputSigType2253=Digital -OutputCue2254=[~UNUSED3~] -OutputSigType2254=Digital -OutputCue2255=[~UNUSED3~] -OutputSigType2255=Digital -OutputCue2256=[~UNUSED3~] -OutputSigType2256=Digital -OutputCue2257=[~UNUSED3~] -OutputSigType2257=Digital -OutputCue2258=[~UNUSED3~] -OutputSigType2258=Digital -OutputCue2259=[~UNUSED3~] -OutputSigType2259=Digital -OutputCue2260=[~UNUSED3~] -OutputSigType2260=Digital -OutputCue2261=[~UNUSED3~] -OutputSigType2261=Digital -OutputCue2262=[~UNUSED3~] -OutputSigType2262=Digital -OutputCue2263=[~UNUSED3~] -OutputSigType2263=Digital -OutputCue2264=[~UNUSED3~] -OutputSigType2264=Digital -OutputCue2265=[~UNUSED3~] -OutputSigType2265=Digital -OutputCue2266=[~UNUSED3~] -OutputSigType2266=Digital -OutputCue2267=[~UNUSED3~] -OutputSigType2267=Digital -OutputCue2268=[~UNUSED3~] -OutputSigType2268=Digital -OutputCue2269=[~UNUSED2~] -OutputSigType2269=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Enable -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Visible -OutputSigType4015=Digital -OutputCue4016=[~UNUSED3~] -OutputSigType4016=Digital -OutputCue4017=[~UNUSED3~] -OutputSigType4017=Digital -OutputCue4018=[~UNUSED3~] -OutputSigType4018=Digital -OutputCue4019=[~UNUSED3~] -OutputSigType4019=Digital -OutputCue4020=[~UNUSED3~] -OutputSigType4020=Digital -OutputCue4021=[~UNUSED3~] -OutputSigType4021=Digital -OutputCue4022=[~UNUSED3~] -OutputSigType4022=Digital -OutputCue4023=[~UNUSED3~] -OutputSigType4023=Digital -OutputCue4024=[~UNUSED3~] -OutputSigType4024=Digital -OutputCue4025=[~UNUSED3~] -OutputSigType4025=Digital -OutputCue4026=[~UNUSED3~] -OutputSigType4026=Digital -OutputCue4027=[~UNUSED3~] -OutputSigType4027=Digital -OutputCue4028=[~UNUSED3~] -OutputSigType4028=Digital -OutputCue4029=[~UNUSED3~] -OutputSigType4029=Digital -OutputCue4030=[~UNUSED3~] -OutputSigType4030=Digital -OutputCue4031=[~UNUSED3~] -OutputSigType4031=Digital -OutputCue4032=[~UNUSED3~] -OutputSigType4032=Digital -OutputCue4033=[~UNUSED3~] -OutputSigType4033=Digital -OutputCue4034=[~UNUSED3~] -OutputSigType4034=Digital -OutputCue4035=[~UNUSED3~] -OutputSigType4035=Digital -OutputCue4036=[~UNUSED3~] -OutputSigType4036=Digital -OutputCue4037=[~UNUSED3~] -OutputSigType4037=Digital -OutputCue4038=[~UNUSED3~] -OutputSigType4038=Digital -OutputCue4039=[~UNUSED3~] -OutputSigType4039=Digital -OutputCue4040=[~UNUSED3~] -OutputSigType4040=Digital -OutputCue4041=[~UNUSED3~] -OutputSigType4041=Digital -OutputCue4042=[~UNUSED3~] -OutputSigType4042=Digital -OutputCue4043=[~UNUSED3~] -OutputSigType4043=Digital -OutputCue4044=[~UNUSED3~] -OutputSigType4044=Digital -OutputCue4045=[~UNUSED3~] -OutputSigType4045=Digital -OutputCue4046=[~UNUSED3~] -OutputSigType4046=Digital -OutputCue4047=[~UNUSED3~] -OutputSigType4047=Digital -OutputCue4048=[~UNUSED3~] -OutputSigType4048=Digital -OutputCue4049=[~UNUSED3~] -OutputSigType4049=Digital -OutputCue4050=[~UNUSED3~] -OutputSigType4050=Digital -OutputCue4051=[~UNUSED3~] -OutputSigType4051=Digital -OutputCue4052=[~UNUSED3~] -OutputSigType4052=Digital -OutputCue4053=[~UNUSED3~] -OutputSigType4053=Digital -OutputCue4054=[~UNUSED3~] -OutputSigType4054=Digital -OutputCue4055=[~UNUSED3~] -OutputSigType4055=Digital -OutputCue4056=[~UNUSED3~] -OutputSigType4056=Digital -OutputCue4057=[~UNUSED3~] -OutputSigType4057=Digital -OutputCue4058=[~UNUSED3~] -OutputSigType4058=Digital -OutputCue4059=[~UNUSED3~] -OutputSigType4059=Digital -OutputCue4060=[~UNUSED3~] -OutputSigType4060=Digital -OutputCue4061=[~UNUSED3~] -OutputSigType4061=Digital -OutputCue4062=[~UNUSED3~] -OutputSigType4062=Digital -OutputCue4063=[~UNUSED3~] -OutputSigType4063=Digital -OutputCue4064=[~UNUSED3~] -OutputSigType4064=Digital -OutputCue4065=[~UNUSED3~] -OutputSigType4065=Digital -OutputCue4066=[~UNUSED3~] -OutputSigType4066=Digital -OutputCue4067=[~UNUSED3~] -OutputSigType4067=Digital -OutputCue4068=[~UNUSED3~] -OutputSigType4068=Digital -OutputCue4069=[~UNUSED3~] -OutputSigType4069=Digital -OutputCue4070=[~UNUSED3~] -OutputSigType4070=Digital -OutputCue4071=[~UNUSED3~] -OutputSigType4071=Digital -OutputCue4072=[~UNUSED3~] -OutputSigType4072=Digital -OutputCue4073=[~UNUSED3~] -OutputSigType4073=Digital -OutputCue4074=[~UNUSED3~] -OutputSigType4074=Digital -OutputCue4075=[~UNUSED3~] -OutputSigType4075=Digital -OutputCue4076=[~UNUSED3~] -OutputSigType4076=Digital -OutputCue4077=[~UNUSED3~] -OutputSigType4077=Digital -OutputCue4078=[~UNUSED3~] -OutputSigType4078=Digital -OutputCue4079=[~UNUSED3~] -OutputSigType4079=Digital -OutputCue4080=[~UNUSED3~] -OutputSigType4080=Digital -OutputCue4081=[~UNUSED3~] -OutputSigType4081=Digital -OutputCue4082=[~UNUSED3~] -OutputSigType4082=Digital -OutputCue4083=[~UNUSED3~] -OutputSigType4083=Digital -OutputCue4084=[~UNUSED3~] -OutputSigType4084=Digital -OutputCue4085=[~UNUSED3~] -OutputSigType4085=Digital -OutputCue4086=[~UNUSED3~] -OutputSigType4086=Digital -OutputCue4087=[~UNUSED3~] -OutputSigType4087=Digital -OutputCue4088=[~UNUSED3~] -OutputSigType4088=Digital -OutputCue4089=[~UNUSED3~] -OutputSigType4089=Digital -OutputCue4090=[~UNUSED3~] -OutputSigType4090=Digital -OutputCue4091=[~UNUSED3~] -OutputSigType4091=Digital -OutputCue4092=[~UNUSED3~] -OutputSigType4092=Digital -OutputCue4093=[~UNUSED3~] -OutputSigType4093=Digital -OutputCue4094=[~UNUSED3~] -OutputSigType4094=Digital -OutputCue4095=[~UNUSED3~] -OutputSigType4095=Digital -OutputCue4096=[~UNUSED3~] -OutputSigType4096=Digital -OutputCue4097=[~UNUSED3~] -OutputSigType4097=Digital -OutputCue4098=[~UNUSED3~] -OutputSigType4098=Digital -OutputCue4099=[~UNUSED3~] -OutputSigType4099=Digital -OutputCue4100=[~UNUSED3~] -OutputSigType4100=Digital -OutputCue4101=[~UNUSED3~] -OutputSigType4101=Digital -OutputCue4102=[~UNUSED3~] -OutputSigType4102=Digital -OutputCue4103=[~UNUSED3~] -OutputSigType4103=Digital -OutputCue4104=[~UNUSED3~] -OutputSigType4104=Digital -OutputCue4105=[~UNUSED3~] -OutputSigType4105=Digital -OutputCue4106=[~UNUSED3~] -OutputSigType4106=Digital -OutputCue4107=[~UNUSED3~] -OutputSigType4107=Digital -OutputCue4108=[~UNUSED3~] -OutputSigType4108=Digital -OutputCue4109=[~UNUSED3~] -OutputSigType4109=Digital -OutputCue4110=[~UNUSED3~] -OutputSigType4110=Digital -OutputCue4111=[~UNUSED3~] -OutputSigType4111=Digital -OutputCue4112=[~UNUSED3~] -OutputSigType4112=Digital -OutputCue4113=[~UNUSED3~] -OutputSigType4113=Digital -OutputCue4114=[~UNUSED3~] -OutputSigType4114=Digital -OutputCue4115=[~UNUSED3~] -OutputSigType4115=Digital -OutputCue4116=[~UNUSED3~] -OutputSigType4116=Digital -OutputCue4117=[~UNUSED3~] -OutputSigType4117=Digital -OutputCue4118=[~UNUSED3~] -OutputSigType4118=Digital -OutputCue4119=[~UNUSED3~] -OutputSigType4119=Digital -OutputCue4120=[~UNUSED3~] -OutputSigType4120=Digital -OutputCue4121=[~UNUSED3~] -OutputSigType4121=Digital -OutputCue4122=[~UNUSED3~] -OutputSigType4122=Digital -OutputCue4123=[~UNUSED3~] -OutputSigType4123=Digital -OutputCue4124=[~UNUSED3~] -OutputSigType4124=Digital -OutputCue4125=[~UNUSED3~] -OutputSigType4125=Digital -OutputCue4126=[~UNUSED3~] -OutputSigType4126=Digital -OutputCue4127=[~UNUSED3~] -OutputSigType4127=Digital -OutputCue4128=[~UNUSED3~] -OutputSigType4128=Digital -OutputCue4129=[~UNUSED3~] -OutputSigType4129=Digital -OutputCue4130=[~UNUSED3~] -OutputSigType4130=Digital -OutputCue4131=[~UNUSED3~] -OutputSigType4131=Digital -OutputCue4132=[~UNUSED3~] -OutputSigType4132=Digital -OutputCue4133=[~UNUSED3~] -OutputSigType4133=Digital -OutputCue4134=[~UNUSED3~] -OutputSigType4134=Digital -OutputCue4135=[~UNUSED3~] -OutputSigType4135=Digital -OutputCue4136=[~UNUSED3~] -OutputSigType4136=Digital -OutputCue4137=[~UNUSED3~] -OutputSigType4137=Digital -OutputCue4138=[~UNUSED3~] -OutputSigType4138=Digital -OutputCue4139=[~UNUSED3~] -OutputSigType4139=Digital -OutputCue4140=[~UNUSED3~] -OutputSigType4140=Digital -OutputCue4141=[~UNUSED3~] -OutputSigType4141=Digital -OutputCue4142=[~UNUSED3~] -OutputSigType4142=Digital -OutputCue4143=[~UNUSED3~] -OutputSigType4143=Digital -OutputCue4144=[~UNUSED3~] -OutputSigType4144=Digital -OutputCue4145=[~UNUSED3~] -OutputSigType4145=Digital -OutputCue4146=[~UNUSED3~] -OutputSigType4146=Digital -OutputCue4147=[~UNUSED3~] -OutputSigType4147=Digital -OutputCue4148=[~UNUSED3~] -OutputSigType4148=Digital -OutputCue4149=[~UNUSED3~] -OutputSigType4149=Digital -OutputCue4150=[~UNUSED3~] -OutputSigType4150=Digital -OutputCue4151=[~UNUSED3~] -OutputSigType4151=Digital -OutputCue4152=[~UNUSED3~] -OutputSigType4152=Digital -OutputCue4153=[~UNUSED3~] -OutputSigType4153=Digital -OutputCue4154=[~UNUSED3~] -OutputSigType4154=Digital -OutputCue4155=[~UNUSED3~] -OutputSigType4155=Digital -OutputCue4156=[~UNUSED3~] -OutputSigType4156=Digital -OutputCue4157=[~UNUSED3~] -OutputSigType4157=Digital -OutputCue4158=[~UNUSED3~] -OutputSigType4158=Digital -OutputCue4159=[~UNUSED3~] -OutputSigType4159=Digital -OutputCue4160=[~UNUSED3~] -OutputSigType4160=Digital -OutputCue4161=[~UNUSED3~] -OutputSigType4161=Digital -OutputCue4162=[~UNUSED3~] -OutputSigType4162=Digital -OutputCue4163=[~UNUSED3~] -OutputSigType4163=Digital -OutputCue4164=[~UNUSED3~] -OutputSigType4164=Digital -OutputCue4165=[~UNUSED3~] -OutputSigType4165=Digital -OutputCue4166=[~UNUSED3~] -OutputSigType4166=Digital -OutputCue4167=[~UNUSED3~] -OutputSigType4167=Digital -OutputCue4168=[~UNUSED3~] -OutputSigType4168=Digital -OutputCue4169=[~UNUSED3~] -OutputSigType4169=Digital -OutputCue4170=[~UNUSED3~] -OutputSigType4170=Digital -OutputCue4171=[~UNUSED3~] -OutputSigType4171=Digital -OutputCue4172=[~UNUSED3~] -OutputSigType4172=Digital -OutputCue4173=[~UNUSED3~] -OutputSigType4173=Digital -OutputCue4174=[~UNUSED3~] -OutputSigType4174=Digital -OutputCue4175=[~UNUSED3~] -OutputSigType4175=Digital -OutputCue4176=[~UNUSED3~] -OutputSigType4176=Digital -OutputCue4177=[~UNUSED3~] -OutputSigType4177=Digital -OutputCue4178=[~UNUSED3~] -OutputSigType4178=Digital -OutputCue4179=[~UNUSED3~] -OutputSigType4179=Digital -OutputCue4180=[~UNUSED3~] -OutputSigType4180=Digital -OutputCue4181=[~UNUSED3~] -OutputSigType4181=Digital -OutputCue4182=[~UNUSED3~] -OutputSigType4182=Digital -OutputCue4183=[~UNUSED3~] -OutputSigType4183=Digital -OutputCue4184=[~UNUSED3~] -OutputSigType4184=Digital -OutputCue4185=[~UNUSED3~] -OutputSigType4185=Digital -OutputCue4186=[~UNUSED3~] -OutputSigType4186=Digital -OutputCue4187=[~UNUSED3~] -OutputSigType4187=Digital -OutputCue4188=[~UNUSED3~] -OutputSigType4188=Digital -OutputCue4189=[~UNUSED3~] -OutputSigType4189=Digital -OutputCue4190=[~UNUSED3~] -OutputSigType4190=Digital -OutputCue4191=[~UNUSED3~] -OutputSigType4191=Digital -OutputCue4192=[~UNUSED3~] -OutputSigType4192=Digital -OutputCue4193=[~UNUSED3~] -OutputSigType4193=Digital -OutputCue4194=[~UNUSED3~] -OutputSigType4194=Digital -OutputCue4195=[~UNUSED3~] -OutputSigType4195=Digital -OutputCue4196=[~UNUSED3~] -OutputSigType4196=Digital -OutputCue4197=[~UNUSED3~] -OutputSigType4197=Digital -OutputCue4198=[~UNUSED3~] -OutputSigType4198=Digital -OutputCue4199=[~UNUSED3~] -OutputSigType4199=Digital -OutputCue4200=[~UNUSED3~] -OutputSigType4200=Digital -OutputCue4201=[~UNUSED3~] -OutputSigType4201=Digital -OutputCue4202=[~UNUSED3~] -OutputSigType4202=Digital -OutputCue4203=[~UNUSED3~] -OutputSigType4203=Digital -OutputCue4204=[~UNUSED3~] -OutputSigType4204=Digital -OutputCue4205=[~UNUSED3~] -OutputSigType4205=Digital -OutputCue4206=[~UNUSED3~] -OutputSigType4206=Digital -OutputCue4207=[~UNUSED3~] -OutputSigType4207=Digital -OutputCue4208=[~UNUSED3~] -OutputSigType4208=Digital -OutputCue4209=[~UNUSED3~] -OutputSigType4209=Digital -OutputCue4210=[~UNUSED3~] -OutputSigType4210=Digital -OutputCue4211=[~UNUSED3~] -OutputSigType4211=Digital -OutputCue4212=[~UNUSED3~] -OutputSigType4212=Digital -OutputCue4213=[~UNUSED3~] -OutputSigType4213=Digital -OutputCue4214=[~UNUSED3~] -OutputSigType4214=Digital -OutputCue4215=[~UNUSED3~] -OutputSigType4215=Digital -OutputCue4216=[~UNUSED3~] -OutputSigType4216=Digital -OutputCue4217=[~UNUSED3~] -OutputSigType4217=Digital -OutputCue4218=[~UNUSED3~] -OutputSigType4218=Digital -OutputCue4219=[~UNUSED3~] -OutputSigType4219=Digital -OutputCue4220=[~UNUSED3~] -OutputSigType4220=Digital -OutputCue4221=[~UNUSED3~] -OutputSigType4221=Digital -OutputCue4222=[~UNUSED3~] -OutputSigType4222=Digital -OutputCue4223=[~UNUSED3~] -OutputSigType4223=Digital -OutputCue4224=[~UNUSED3~] -OutputSigType4224=Digital -OutputCue4225=[~UNUSED3~] -OutputSigType4225=Digital -OutputCue4226=[~UNUSED3~] -OutputSigType4226=Digital -OutputCue4227=[~UNUSED3~] -OutputSigType4227=Digital -OutputCue4228=[~UNUSED3~] -OutputSigType4228=Digital -OutputCue4229=[~UNUSED3~] -OutputSigType4229=Digital -OutputCue4230=[~UNUSED3~] -OutputSigType4230=Digital -OutputCue4231=[~UNUSED3~] -OutputSigType4231=Digital -OutputCue4232=[~UNUSED3~] -OutputSigType4232=Digital -OutputCue4233=[~UNUSED3~] -OutputSigType4233=Digital -OutputCue4234=[~UNUSED3~] -OutputSigType4234=Digital -OutputCue4235=[~UNUSED3~] -OutputSigType4235=Digital -OutputCue4236=[~UNUSED3~] -OutputSigType4236=Digital -OutputCue4237=[~UNUSED3~] -OutputSigType4237=Digital -OutputCue4238=[~UNUSED3~] -OutputSigType4238=Digital -OutputCue4239=[~UNUSED3~] -OutputSigType4239=Digital -OutputCue4240=[~UNUSED3~] -OutputSigType4240=Digital -OutputCue4241=[~UNUSED3~] -OutputSigType4241=Digital -OutputCue4242=[~UNUSED3~] -OutputSigType4242=Digital -OutputCue4243=[~UNUSED3~] -OutputSigType4243=Digital -OutputCue4244=[~UNUSED3~] -OutputSigType4244=Digital -OutputCue4245=[~UNUSED3~] -OutputSigType4245=Digital -OutputCue4246=[~UNUSED3~] -OutputSigType4246=Digital -OutputCue4247=[~UNUSED3~] -OutputSigType4247=Digital -OutputCue4248=[~UNUSED3~] -OutputSigType4248=Digital -OutputCue4249=[~UNUSED3~] -OutputSigType4249=Digital -OutputCue4250=[~UNUSED3~] -OutputSigType4250=Digital -OutputCue4251=[~UNUSED3~] -OutputSigType4251=Digital -OutputCue4252=[~UNUSED3~] -OutputSigType4252=Digital -OutputCue4253=[~UNUSED3~] -OutputSigType4253=Digital -OutputCue4254=[~UNUSED3~] -OutputSigType4254=Digital -OutputCue4255=[~UNUSED3~] -OutputSigType4255=Digital -OutputCue4256=[~UNUSED3~] -OutputSigType4256=Digital -OutputCue4257=[~UNUSED3~] -OutputSigType4257=Digital -OutputCue4258=[~UNUSED3~] -OutputSigType4258=Digital -OutputCue4259=[~UNUSED3~] -OutputSigType4259=Digital -OutputCue4260=[~UNUSED3~] -OutputSigType4260=Digital -OutputCue4261=[~UNUSED3~] -OutputSigType4261=Digital -OutputCue4262=[~UNUSED3~] -OutputSigType4262=Digital -OutputCue4263=[~UNUSED3~] -OutputSigType4263=Digital -OutputCue4264=[~UNUSED3~] -OutputSigType4264=Digital -OutputCue4265=[~UNUSED3~] -OutputSigType4265=Digital -OutputCue4266=[~UNUSED3~] -OutputSigType4266=Digital -OutputCue4267=[~UNUSED3~] -OutputSigType4267=Digital -OutputCue4268=[~UNUSED3~] -OutputSigType4268=Digital -OutputCue4269=[~UNUSED3~] -OutputSigType4269=Digital -OutputCue4270=[~UNUSED3~] -OutputSigType4270=Digital -OutputCue4271=[~UNUSED2~] -OutputSigType4271=Digital|Analog|Serial|String -OutputCue6016=[~EndGroup~]Visible -OutputSigType6016=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=[~UNUSED3~] -InputList2SigType2=Analog -InputList2Cue3=Scroll To Item -InputList2SigType3=Analog -InputList2Cue4=Set Number of Items -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]Item Icons -InputList2SigType11=Analog -InputList2Cue12=Set Item 1 Icon Analog -InputList2SigType12=Analog -InputList2Cue13=Set Item 2 Icon Analog -InputList2SigType13=Analog -InputList2Cue14=Set Item 3 Icon Analog -InputList2SigType14=Analog -InputList2Cue15=Set Item 4 Icon Analog -InputList2SigType15=Analog -InputList2Cue16=Set Item 5 Icon Analog -InputList2SigType16=Analog -InputList2Cue17=Set Item 6 Icon Analog -InputList2SigType17=Analog -InputList2Cue18=Set Item 7 Icon Analog -InputList2SigType18=Analog -InputList2Cue19=Set Item 8 Icon Analog -InputList2SigType19=Analog -InputList2Cue20=Set Item 9 Icon Analog -InputList2SigType20=Analog -InputList2Cue21=Set Item 10 Icon Analog -InputList2SigType21=Analog -InputList2Cue22=Set Item 11 Icon Analog -InputList2SigType22=Analog -InputList2Cue23=Set Item 12 Icon Analog -InputList2SigType23=Analog -InputList2Cue24=Set Item 13 Icon Analog -InputList2SigType24=Analog -InputList2Cue25=Set Item 14 Icon Analog -InputList2SigType25=Analog -InputList2Cue26=Set Item 15 Icon Analog -InputList2SigType26=Analog -InputList2Cue27=Set Item 16 Icon Analog -InputList2SigType27=Analog -InputList2Cue28=Set Item 17 Icon Analog -InputList2SigType28=Analog -InputList2Cue29=Set Item 18 Icon Analog -InputList2SigType29=Analog -InputList2Cue30=Set Item 19 Icon Analog -InputList2SigType30=Analog -InputList2Cue31=Set Item 20 Icon Analog -InputList2SigType31=Analog -InputList2Cue32=Set Item 21 Icon Analog -InputList2SigType32=Analog -InputList2Cue33=Set Item 22 Icon Analog -InputList2SigType33=Analog -InputList2Cue34=Set Item 23 Icon Analog -InputList2SigType34=Analog -InputList2Cue35=Set Item 24 Icon Analog -InputList2SigType35=Analog -InputList2Cue36=Set Item 25 Icon Analog -InputList2SigType36=Analog -InputList2Cue37=Set Item 26 Icon Analog -InputList2SigType37=Analog -InputList2Cue38=Set Item 27 Icon Analog -InputList2SigType38=Analog -InputList2Cue39=Set Item 28 Icon Analog -InputList2SigType39=Analog -InputList2Cue40=Set Item 29 Icon Analog -InputList2SigType40=Analog -InputList2Cue41=Set Item 30 Icon Analog -InputList2SigType41=Analog -InputList2Cue42=Set Item 31 Icon Analog -InputList2SigType42=Analog -InputList2Cue43=Set Item 32 Icon Analog -InputList2SigType43=Analog -InputList2Cue44=Set Item 33 Icon Analog -InputList2SigType44=Analog -InputList2Cue45=Set Item 34 Icon Analog -InputList2SigType45=Analog -InputList2Cue46=Set Item 35 Icon Analog -InputList2SigType46=Analog -InputList2Cue47=Set Item 36 Icon Analog -InputList2SigType47=Analog -InputList2Cue48=Set Item 37 Icon Analog -InputList2SigType48=Analog -InputList2Cue49=Set Item 38 Icon Analog -InputList2SigType49=Analog -InputList2Cue50=Set Item 39 Icon Analog -InputList2SigType50=Analog -InputList2Cue51=Set Item 40 Icon Analog -InputList2SigType51=Analog -InputList2Cue52=Set Item 41 Icon Analog -InputList2SigType52=Analog -InputList2Cue53=Set Item 42 Icon Analog -InputList2SigType53=Analog -InputList2Cue54=Set Item 43 Icon Analog -InputList2SigType54=Analog -InputList2Cue55=Set Item 44 Icon Analog -InputList2SigType55=Analog -InputList2Cue56=Set Item 45 Icon Analog -InputList2SigType56=Analog -InputList2Cue57=Set Item 46 Icon Analog -InputList2SigType57=Analog -InputList2Cue58=Set Item 47 Icon Analog -InputList2SigType58=Analog -InputList2Cue59=Set Item 48 Icon Analog -InputList2SigType59=Analog -InputList2Cue60=Set Item 49 Icon Analog -InputList2SigType60=Analog -InputList2Cue61=Set Item 50 Icon Analog -InputList2SigType61=Analog -InputList2Cue62=Set Item 51 Icon Analog -InputList2SigType62=Analog -InputList2Cue63=Set Item 52 Icon Analog -InputList2SigType63=Analog -InputList2Cue64=Set Item 53 Icon Analog -InputList2SigType64=Analog -InputList2Cue65=Set Item 54 Icon Analog -InputList2SigType65=Analog -InputList2Cue66=Set Item 55 Icon Analog -InputList2SigType66=Analog -InputList2Cue67=Set Item 56 Icon Analog -InputList2SigType67=Analog -InputList2Cue68=Set Item 57 Icon Analog -InputList2SigType68=Analog -InputList2Cue69=Set Item 58 Icon Analog -InputList2SigType69=Analog -InputList2Cue70=Set Item 59 Icon Analog -InputList2SigType70=Analog -InputList2Cue71=Set Item 60 Icon Analog -InputList2SigType71=Analog -InputList2Cue72=Set Item 61 Icon Analog -InputList2SigType72=Analog -InputList2Cue73=Set Item 62 Icon Analog -InputList2SigType73=Analog -InputList2Cue74=Set Item 63 Icon Analog -InputList2SigType74=Analog -InputList2Cue75=Set Item 64 Icon Analog -InputList2SigType75=Analog -InputList2Cue76=Set Item 65 Icon Analog -InputList2SigType76=Analog -InputList2Cue77=Set Item 66 Icon Analog -InputList2SigType77=Analog -InputList2Cue78=Set Item 67 Icon Analog -InputList2SigType78=Analog -InputList2Cue79=Set Item 68 Icon Analog -InputList2SigType79=Analog -InputList2Cue80=Set Item 69 Icon Analog -InputList2SigType80=Analog -InputList2Cue81=Set Item 70 Icon Analog -InputList2SigType81=Analog -InputList2Cue82=Set Item 71 Icon Analog -InputList2SigType82=Analog -InputList2Cue83=Set Item 72 Icon Analog -InputList2SigType83=Analog -InputList2Cue84=Set Item 73 Icon Analog -InputList2SigType84=Analog -InputList2Cue85=Set Item 74 Icon Analog -InputList2SigType85=Analog -InputList2Cue86=Set Item 75 Icon Analog -InputList2SigType86=Analog -InputList2Cue87=Set Item 76 Icon Analog -InputList2SigType87=Analog -InputList2Cue88=Set Item 77 Icon Analog -InputList2SigType88=Analog -InputList2Cue89=Set Item 78 Icon Analog -InputList2SigType89=Analog -InputList2Cue90=Set Item 79 Icon Analog -InputList2SigType90=Analog -InputList2Cue91=Set Item 80 Icon Analog -InputList2SigType91=Analog -InputList2Cue92=Set Item 81 Icon Analog -InputList2SigType92=Analog -InputList2Cue93=Set Item 82 Icon Analog -InputList2SigType93=Analog -InputList2Cue94=Set Item 83 Icon Analog -InputList2SigType94=Analog -InputList2Cue95=Set Item 84 Icon Analog -InputList2SigType95=Analog -InputList2Cue96=Set Item 85 Icon Analog -InputList2SigType96=Analog -InputList2Cue97=Set Item 86 Icon Analog -InputList2SigType97=Analog -InputList2Cue98=Set Item 87 Icon Analog -InputList2SigType98=Analog -InputList2Cue99=Set Item 88 Icon Analog -InputList2SigType99=Analog -InputList2Cue100=Set Item 89 Icon Analog -InputList2SigType100=Analog -InputList2Cue101=Set Item 90 Icon Analog -InputList2SigType101=Analog -InputList2Cue102=Set Item 91 Icon Analog -InputList2SigType102=Analog -InputList2Cue103=Set Item 92 Icon Analog -InputList2SigType103=Analog -InputList2Cue104=Set Item 93 Icon Analog -InputList2SigType104=Analog -InputList2Cue105=Set Item 94 Icon Analog -InputList2SigType105=Analog -InputList2Cue106=Set Item 95 Icon Analog -InputList2SigType106=Analog -InputList2Cue107=Set Item 96 Icon Analog -InputList2SigType107=Analog -InputList2Cue108=Set Item 97 Icon Analog -InputList2SigType108=Analog -InputList2Cue109=Set Item 98 Icon Analog -InputList2SigType109=Analog -InputList2Cue110=Set Item 99 Icon Analog -InputList2SigType110=Analog -InputList2Cue111=Set Item 100 Icon Analog -InputList2SigType111=Analog -InputList2Cue112=Set Item 101 Icon Analog -InputList2SigType112=Analog -InputList2Cue113=Set Item 102 Icon Analog -InputList2SigType113=Analog -InputList2Cue114=Set Item 103 Icon Analog -InputList2SigType114=Analog -InputList2Cue115=Set Item 104 Icon Analog -InputList2SigType115=Analog -InputList2Cue116=Set Item 105 Icon Analog -InputList2SigType116=Analog -InputList2Cue117=Set Item 106 Icon Analog -InputList2SigType117=Analog -InputList2Cue118=Set Item 107 Icon Analog -InputList2SigType118=Analog -InputList2Cue119=Set Item 108 Icon Analog -InputList2SigType119=Analog -InputList2Cue120=Set Item 109 Icon Analog -InputList2SigType120=Analog -InputList2Cue121=Set Item 110 Icon Analog -InputList2SigType121=Analog -InputList2Cue122=Set Item 111 Icon Analog -InputList2SigType122=Analog -InputList2Cue123=Set Item 112 Icon Analog -InputList2SigType123=Analog -InputList2Cue124=Set Item 113 Icon Analog -InputList2SigType124=Analog -InputList2Cue125=Set Item 114 Icon Analog -InputList2SigType125=Analog -InputList2Cue126=Set Item 115 Icon Analog -InputList2SigType126=Analog -InputList2Cue127=Set Item 116 Icon Analog -InputList2SigType127=Analog -InputList2Cue128=Set Item 117 Icon Analog -InputList2SigType128=Analog -InputList2Cue129=Set Item 118 Icon Analog -InputList2SigType129=Analog -InputList2Cue130=Set Item 119 Icon Analog -InputList2SigType130=Analog -InputList2Cue131=Set Item 120 Icon Analog -InputList2SigType131=Analog -InputList2Cue132=Set Item 121 Icon Analog -InputList2SigType132=Analog -InputList2Cue133=Set Item 122 Icon Analog -InputList2SigType133=Analog -InputList2Cue134=Set Item 123 Icon Analog -InputList2SigType134=Analog -InputList2Cue135=Set Item 124 Icon Analog -InputList2SigType135=Analog -InputList2Cue136=Set Item 125 Icon Analog -InputList2SigType136=Analog -InputList2Cue137=Set Item 126 Icon Analog -InputList2SigType137=Analog -InputList2Cue138=Set Item 127 Icon Analog -InputList2SigType138=Analog -InputList2Cue139=Set Item 128 Icon Analog -InputList2SigType139=Analog -InputList2Cue140=Set Item 129 Icon Analog -InputList2SigType140=Analog -InputList2Cue141=Set Item 130 Icon Analog -InputList2SigType141=Analog -InputList2Cue142=Set Item 131 Icon Analog -InputList2SigType142=Analog -InputList2Cue143=Set Item 132 Icon Analog -InputList2SigType143=Analog -InputList2Cue144=Set Item 133 Icon Analog -InputList2SigType144=Analog -InputList2Cue145=Set Item 134 Icon Analog -InputList2SigType145=Analog -InputList2Cue146=Set Item 135 Icon Analog -InputList2SigType146=Analog -InputList2Cue147=Set Item 136 Icon Analog -InputList2SigType147=Analog -InputList2Cue148=Set Item 137 Icon Analog -InputList2SigType148=Analog -InputList2Cue149=Set Item 138 Icon Analog -InputList2SigType149=Analog -InputList2Cue150=Set Item 139 Icon Analog -InputList2SigType150=Analog -InputList2Cue151=Set Item 140 Icon Analog -InputList2SigType151=Analog -InputList2Cue152=Set Item 141 Icon Analog -InputList2SigType152=Analog -InputList2Cue153=Set Item 142 Icon Analog -InputList2SigType153=Analog -InputList2Cue154=Set Item 143 Icon Analog -InputList2SigType154=Analog -InputList2Cue155=Set Item 144 Icon Analog -InputList2SigType155=Analog -InputList2Cue156=Set Item 145 Icon Analog -InputList2SigType156=Analog -InputList2Cue157=Set Item 146 Icon Analog -InputList2SigType157=Analog -InputList2Cue158=Set Item 147 Icon Analog -InputList2SigType158=Analog -InputList2Cue159=Set Item 148 Icon Analog -InputList2SigType159=Analog -InputList2Cue160=Set Item 149 Icon Analog -InputList2SigType160=Analog -InputList2Cue161=Set Item 150 Icon Analog -InputList2SigType161=Analog -InputList2Cue162=Set Item 151 Icon Analog -InputList2SigType162=Analog -InputList2Cue163=Set Item 152 Icon Analog -InputList2SigType163=Analog -InputList2Cue164=Set Item 153 Icon Analog -InputList2SigType164=Analog -InputList2Cue165=Set Item 154 Icon Analog -InputList2SigType165=Analog -InputList2Cue166=Set Item 155 Icon Analog -InputList2SigType166=Analog -InputList2Cue167=Set Item 156 Icon Analog -InputList2SigType167=Analog -InputList2Cue168=Set Item 157 Icon Analog -InputList2SigType168=Analog -InputList2Cue169=Set Item 158 Icon Analog -InputList2SigType169=Analog -InputList2Cue170=Set Item 159 Icon Analog -InputList2SigType170=Analog -InputList2Cue171=Set Item 160 Icon Analog -InputList2SigType171=Analog -InputList2Cue172=Set Item 161 Icon Analog -InputList2SigType172=Analog -InputList2Cue173=Set Item 162 Icon Analog -InputList2SigType173=Analog -InputList2Cue174=Set Item 163 Icon Analog -InputList2SigType174=Analog -InputList2Cue175=Set Item 164 Icon Analog -InputList2SigType175=Analog -InputList2Cue176=Set Item 165 Icon Analog -InputList2SigType176=Analog -InputList2Cue177=Set Item 166 Icon Analog -InputList2SigType177=Analog -InputList2Cue178=Set Item 167 Icon Analog -InputList2SigType178=Analog -InputList2Cue179=Set Item 168 Icon Analog -InputList2SigType179=Analog -InputList2Cue180=Set Item 169 Icon Analog -InputList2SigType180=Analog -InputList2Cue181=Set Item 170 Icon Analog -InputList2SigType181=Analog -InputList2Cue182=Set Item 171 Icon Analog -InputList2SigType182=Analog -InputList2Cue183=Set Item 172 Icon Analog -InputList2SigType183=Analog -InputList2Cue184=Set Item 173 Icon Analog -InputList2SigType184=Analog -InputList2Cue185=Set Item 174 Icon Analog -InputList2SigType185=Analog -InputList2Cue186=Set Item 175 Icon Analog -InputList2SigType186=Analog -InputList2Cue187=Set Item 176 Icon Analog -InputList2SigType187=Analog -InputList2Cue188=Set Item 177 Icon Analog -InputList2SigType188=Analog -InputList2Cue189=Set Item 178 Icon Analog -InputList2SigType189=Analog -InputList2Cue190=Set Item 179 Icon Analog -InputList2SigType190=Analog -InputList2Cue191=Set Item 180 Icon Analog -InputList2SigType191=Analog -InputList2Cue192=Set Item 181 Icon Analog -InputList2SigType192=Analog -InputList2Cue193=Set Item 182 Icon Analog -InputList2SigType193=Analog -InputList2Cue194=Set Item 183 Icon Analog -InputList2SigType194=Analog -InputList2Cue195=Set Item 184 Icon Analog -InputList2SigType195=Analog -InputList2Cue196=Set Item 185 Icon Analog -InputList2SigType196=Analog -InputList2Cue197=Set Item 186 Icon Analog -InputList2SigType197=Analog -InputList2Cue198=Set Item 187 Icon Analog -InputList2SigType198=Analog -InputList2Cue199=Set Item 188 Icon Analog -InputList2SigType199=Analog -InputList2Cue200=Set Item 189 Icon Analog -InputList2SigType200=Analog -InputList2Cue201=Set Item 190 Icon Analog -InputList2SigType201=Analog -InputList2Cue202=Set Item 191 Icon Analog -InputList2SigType202=Analog -InputList2Cue203=Set Item 192 Icon Analog -InputList2SigType203=Analog -InputList2Cue204=Set Item 193 Icon Analog -InputList2SigType204=Analog -InputList2Cue205=Set Item 194 Icon Analog -InputList2SigType205=Analog -InputList2Cue206=Set Item 195 Icon Analog -InputList2SigType206=Analog -InputList2Cue207=Set Item 196 Icon Analog -InputList2SigType207=Analog -InputList2Cue208=Set Item 197 Icon Analog -InputList2SigType208=Analog -InputList2Cue209=Set Item 198 Icon Analog -InputList2SigType209=Analog -InputList2Cue210=Set Item 199 Icon Analog -InputList2SigType210=Analog -InputList2Cue211=Set Item 200 Icon Analog -InputList2SigType211=Analog -InputList2Cue212=Set Item 201 Icon Analog -InputList2SigType212=Analog -InputList2Cue213=Set Item 202 Icon Analog -InputList2SigType213=Analog -InputList2Cue214=Set Item 203 Icon Analog -InputList2SigType214=Analog -InputList2Cue215=Set Item 204 Icon Analog -InputList2SigType215=Analog -InputList2Cue216=Set Item 205 Icon Analog -InputList2SigType216=Analog -InputList2Cue217=Set Item 206 Icon Analog -InputList2SigType217=Analog -InputList2Cue218=Set Item 207 Icon Analog -InputList2SigType218=Analog -InputList2Cue219=Set Item 208 Icon Analog -InputList2SigType219=Analog -InputList2Cue220=Set Item 209 Icon Analog -InputList2SigType220=Analog -InputList2Cue221=Set Item 210 Icon Analog -InputList2SigType221=Analog -InputList2Cue222=Set Item 211 Icon Analog -InputList2SigType222=Analog -InputList2Cue223=Set Item 212 Icon Analog -InputList2SigType223=Analog -InputList2Cue224=Set Item 213 Icon Analog -InputList2SigType224=Analog -InputList2Cue225=Set Item 214 Icon Analog -InputList2SigType225=Analog -InputList2Cue226=Set Item 215 Icon Analog -InputList2SigType226=Analog -InputList2Cue227=Set Item 216 Icon Analog -InputList2SigType227=Analog -InputList2Cue228=Set Item 217 Icon Analog -InputList2SigType228=Analog -InputList2Cue229=Set Item 218 Icon Analog -InputList2SigType229=Analog -InputList2Cue230=Set Item 219 Icon Analog -InputList2SigType230=Analog -InputList2Cue231=Set Item 220 Icon Analog -InputList2SigType231=Analog -InputList2Cue232=Set Item 221 Icon Analog -InputList2SigType232=Analog -InputList2Cue233=Set Item 222 Icon Analog -InputList2SigType233=Analog -InputList2Cue234=Set Item 223 Icon Analog -InputList2SigType234=Analog -InputList2Cue235=Set Item 224 Icon Analog -InputList2SigType235=Analog -InputList2Cue236=Set Item 225 Icon Analog -InputList2SigType236=Analog -InputList2Cue237=Set Item 226 Icon Analog -InputList2SigType237=Analog -InputList2Cue238=Set Item 227 Icon Analog -InputList2SigType238=Analog -InputList2Cue239=Set Item 228 Icon Analog -InputList2SigType239=Analog -InputList2Cue240=Set Item 229 Icon Analog -InputList2SigType240=Analog -InputList2Cue241=Set Item 230 Icon Analog -InputList2SigType241=Analog -InputList2Cue242=Set Item 231 Icon Analog -InputList2SigType242=Analog -InputList2Cue243=Set Item 232 Icon Analog -InputList2SigType243=Analog -InputList2Cue244=Set Item 233 Icon Analog -InputList2SigType244=Analog -InputList2Cue245=Set Item 234 Icon Analog -InputList2SigType245=Analog -InputList2Cue246=Set Item 235 Icon Analog -InputList2SigType246=Analog -InputList2Cue247=Set Item 236 Icon Analog -InputList2SigType247=Analog -InputList2Cue248=Set Item 237 Icon Analog -InputList2SigType248=Analog -InputList2Cue249=Set Item 238 Icon Analog -InputList2SigType249=Analog -InputList2Cue250=Set Item 239 Icon Analog -InputList2SigType250=Analog -InputList2Cue251=Set Item 240 Icon Analog -InputList2SigType251=Analog -InputList2Cue252=Set Item 241 Icon Analog -InputList2SigType252=Analog -InputList2Cue253=Set Item 242 Icon Analog -InputList2SigType253=Analog -InputList2Cue254=Set Item 243 Icon Analog -InputList2SigType254=Analog -InputList2Cue255=Set Item 244 Icon Analog -InputList2SigType255=Analog -InputList2Cue256=Set Item 245 Icon Analog -InputList2SigType256=Analog -InputList2Cue257=Set Item 246 Icon Analog -InputList2SigType257=Analog -InputList2Cue258=Set Item 247 Icon Analog -InputList2SigType258=Analog -InputList2Cue259=Set Item 248 Icon Analog -InputList2SigType259=Analog -InputList2Cue260=Set Item 249 Icon Analog -InputList2SigType260=Analog -InputList2Cue261=Set Item 250 Icon Analog -InputList2SigType261=Analog -InputList2Cue262=Set Item 251 Icon Analog -InputList2SigType262=Analog -InputList2Cue263=Set Item 252 Icon Analog -InputList2SigType263=Analog -InputList2Cue264=Set Item 253 Icon Analog -InputList2SigType264=Analog -InputList2Cue265=Set Item 254 Icon Analog -InputList2SigType265=Analog -InputList2Cue266=Set Item 255 Icon Analog -InputList2SigType266=Analog -InputList2Cue267=[~UNUSED2~] -InputList2SigType267=Digital|Analog|Serial|String -InputList2Cue2012=[~EndGroup~]Item Icons -InputList2SigType2012=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=Item Held -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED3~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]Item Icons -OutputList2SigType11=Analog -OutputList2Cue12=[~UNUSED3~] -OutputList2SigType12=Analog -OutputList2Cue13=[~UNUSED3~] -OutputList2SigType13=Analog -OutputList2Cue14=[~UNUSED3~] -OutputList2SigType14=Analog -OutputList2Cue15=[~UNUSED3~] -OutputList2SigType15=Analog -OutputList2Cue16=[~UNUSED3~] -OutputList2SigType16=Analog -OutputList2Cue17=[~UNUSED3~] -OutputList2SigType17=Analog -OutputList2Cue18=[~UNUSED3~] -OutputList2SigType18=Analog -OutputList2Cue19=[~UNUSED3~] -OutputList2SigType19=Analog -OutputList2Cue20=[~UNUSED3~] -OutputList2SigType20=Analog -OutputList2Cue21=[~UNUSED3~] -OutputList2SigType21=Analog -OutputList2Cue22=[~UNUSED3~] -OutputList2SigType22=Analog -OutputList2Cue23=[~UNUSED3~] -OutputList2SigType23=Analog -OutputList2Cue24=[~UNUSED3~] -OutputList2SigType24=Analog -OutputList2Cue25=[~UNUSED3~] -OutputList2SigType25=Analog -OutputList2Cue26=[~UNUSED3~] -OutputList2SigType26=Analog -OutputList2Cue27=[~UNUSED3~] -OutputList2SigType27=Analog -OutputList2Cue28=[~UNUSED3~] -OutputList2SigType28=Analog -OutputList2Cue29=[~UNUSED3~] -OutputList2SigType29=Analog -OutputList2Cue30=[~UNUSED3~] -OutputList2SigType30=Analog -OutputList2Cue31=[~UNUSED3~] -OutputList2SigType31=Analog -OutputList2Cue32=[~UNUSED3~] -OutputList2SigType32=Analog -OutputList2Cue33=[~UNUSED3~] -OutputList2SigType33=Analog -OutputList2Cue34=[~UNUSED3~] -OutputList2SigType34=Analog -OutputList2Cue35=[~UNUSED3~] -OutputList2SigType35=Analog -OutputList2Cue36=[~UNUSED3~] -OutputList2SigType36=Analog -OutputList2Cue37=[~UNUSED3~] -OutputList2SigType37=Analog -OutputList2Cue38=[~UNUSED3~] -OutputList2SigType38=Analog -OutputList2Cue39=[~UNUSED3~] -OutputList2SigType39=Analog -OutputList2Cue40=[~UNUSED3~] -OutputList2SigType40=Analog -OutputList2Cue41=[~UNUSED3~] -OutputList2SigType41=Analog -OutputList2Cue42=[~UNUSED3~] -OutputList2SigType42=Analog -OutputList2Cue43=[~UNUSED3~] -OutputList2SigType43=Analog -OutputList2Cue44=[~UNUSED3~] -OutputList2SigType44=Analog -OutputList2Cue45=[~UNUSED3~] -OutputList2SigType45=Analog -OutputList2Cue46=[~UNUSED3~] -OutputList2SigType46=Analog -OutputList2Cue47=[~UNUSED3~] -OutputList2SigType47=Analog -OutputList2Cue48=[~UNUSED3~] -OutputList2SigType48=Analog -OutputList2Cue49=[~UNUSED3~] -OutputList2SigType49=Analog -OutputList2Cue50=[~UNUSED3~] -OutputList2SigType50=Analog -OutputList2Cue51=[~UNUSED3~] -OutputList2SigType51=Analog -OutputList2Cue52=[~UNUSED3~] -OutputList2SigType52=Analog -OutputList2Cue53=[~UNUSED3~] -OutputList2SigType53=Analog -OutputList2Cue54=[~UNUSED3~] -OutputList2SigType54=Analog -OutputList2Cue55=[~UNUSED3~] -OutputList2SigType55=Analog -OutputList2Cue56=[~UNUSED3~] -OutputList2SigType56=Analog -OutputList2Cue57=[~UNUSED3~] -OutputList2SigType57=Analog -OutputList2Cue58=[~UNUSED3~] -OutputList2SigType58=Analog -OutputList2Cue59=[~UNUSED3~] -OutputList2SigType59=Analog -OutputList2Cue60=[~UNUSED3~] -OutputList2SigType60=Analog -OutputList2Cue61=[~UNUSED3~] -OutputList2SigType61=Analog -OutputList2Cue62=[~UNUSED3~] -OutputList2SigType62=Analog -OutputList2Cue63=[~UNUSED3~] -OutputList2SigType63=Analog -OutputList2Cue64=[~UNUSED3~] -OutputList2SigType64=Analog -OutputList2Cue65=[~UNUSED3~] -OutputList2SigType65=Analog -OutputList2Cue66=[~UNUSED3~] -OutputList2SigType66=Analog -OutputList2Cue67=[~UNUSED3~] -OutputList2SigType67=Analog -OutputList2Cue68=[~UNUSED3~] -OutputList2SigType68=Analog -OutputList2Cue69=[~UNUSED3~] -OutputList2SigType69=Analog -OutputList2Cue70=[~UNUSED3~] -OutputList2SigType70=Analog -OutputList2Cue71=[~UNUSED3~] -OutputList2SigType71=Analog -OutputList2Cue72=[~UNUSED3~] -OutputList2SigType72=Analog -OutputList2Cue73=[~UNUSED3~] -OutputList2SigType73=Analog -OutputList2Cue74=[~UNUSED3~] -OutputList2SigType74=Analog -OutputList2Cue75=[~UNUSED3~] -OutputList2SigType75=Analog -OutputList2Cue76=[~UNUSED3~] -OutputList2SigType76=Analog -OutputList2Cue77=[~UNUSED3~] -OutputList2SigType77=Analog -OutputList2Cue78=[~UNUSED3~] -OutputList2SigType78=Analog -OutputList2Cue79=[~UNUSED3~] -OutputList2SigType79=Analog -OutputList2Cue80=[~UNUSED3~] -OutputList2SigType80=Analog -OutputList2Cue81=[~UNUSED3~] -OutputList2SigType81=Analog -OutputList2Cue82=[~UNUSED3~] -OutputList2SigType82=Analog -OutputList2Cue83=[~UNUSED3~] -OutputList2SigType83=Analog -OutputList2Cue84=[~UNUSED3~] -OutputList2SigType84=Analog -OutputList2Cue85=[~UNUSED3~] -OutputList2SigType85=Analog -OutputList2Cue86=[~UNUSED3~] -OutputList2SigType86=Analog -OutputList2Cue87=[~UNUSED3~] -OutputList2SigType87=Analog -OutputList2Cue88=[~UNUSED3~] -OutputList2SigType88=Analog -OutputList2Cue89=[~UNUSED3~] -OutputList2SigType89=Analog -OutputList2Cue90=[~UNUSED3~] -OutputList2SigType90=Analog -OutputList2Cue91=[~UNUSED3~] -OutputList2SigType91=Analog -OutputList2Cue92=[~UNUSED3~] -OutputList2SigType92=Analog -OutputList2Cue93=[~UNUSED3~] -OutputList2SigType93=Analog -OutputList2Cue94=[~UNUSED3~] -OutputList2SigType94=Analog -OutputList2Cue95=[~UNUSED3~] -OutputList2SigType95=Analog -OutputList2Cue96=[~UNUSED3~] -OutputList2SigType96=Analog -OutputList2Cue97=[~UNUSED3~] -OutputList2SigType97=Analog -OutputList2Cue98=[~UNUSED3~] -OutputList2SigType98=Analog -OutputList2Cue99=[~UNUSED3~] -OutputList2SigType99=Analog -OutputList2Cue100=[~UNUSED3~] -OutputList2SigType100=Analog -OutputList2Cue101=[~UNUSED3~] -OutputList2SigType101=Analog -OutputList2Cue102=[~UNUSED3~] -OutputList2SigType102=Analog -OutputList2Cue103=[~UNUSED3~] -OutputList2SigType103=Analog -OutputList2Cue104=[~UNUSED3~] -OutputList2SigType104=Analog -OutputList2Cue105=[~UNUSED3~] -OutputList2SigType105=Analog -OutputList2Cue106=[~UNUSED3~] -OutputList2SigType106=Analog -OutputList2Cue107=[~UNUSED3~] -OutputList2SigType107=Analog -OutputList2Cue108=[~UNUSED3~] -OutputList2SigType108=Analog -OutputList2Cue109=[~UNUSED3~] -OutputList2SigType109=Analog -OutputList2Cue110=[~UNUSED3~] -OutputList2SigType110=Analog -OutputList2Cue111=[~UNUSED3~] -OutputList2SigType111=Analog -OutputList2Cue112=[~UNUSED3~] -OutputList2SigType112=Analog -OutputList2Cue113=[~UNUSED3~] -OutputList2SigType113=Analog -OutputList2Cue114=[~UNUSED3~] -OutputList2SigType114=Analog -OutputList2Cue115=[~UNUSED3~] -OutputList2SigType115=Analog -OutputList2Cue116=[~UNUSED3~] -OutputList2SigType116=Analog -OutputList2Cue117=[~UNUSED3~] -OutputList2SigType117=Analog -OutputList2Cue118=[~UNUSED3~] -OutputList2SigType118=Analog -OutputList2Cue119=[~UNUSED3~] -OutputList2SigType119=Analog -OutputList2Cue120=[~UNUSED3~] -OutputList2SigType120=Analog -OutputList2Cue121=[~UNUSED3~] -OutputList2SigType121=Analog -OutputList2Cue122=[~UNUSED3~] -OutputList2SigType122=Analog -OutputList2Cue123=[~UNUSED3~] -OutputList2SigType123=Analog -OutputList2Cue124=[~UNUSED3~] -OutputList2SigType124=Analog -OutputList2Cue125=[~UNUSED3~] -OutputList2SigType125=Analog -OutputList2Cue126=[~UNUSED3~] -OutputList2SigType126=Analog -OutputList2Cue127=[~UNUSED3~] -OutputList2SigType127=Analog -OutputList2Cue128=[~UNUSED3~] -OutputList2SigType128=Analog -OutputList2Cue129=[~UNUSED3~] -OutputList2SigType129=Analog -OutputList2Cue130=[~UNUSED3~] -OutputList2SigType130=Analog -OutputList2Cue131=[~UNUSED3~] -OutputList2SigType131=Analog -OutputList2Cue132=[~UNUSED3~] -OutputList2SigType132=Analog -OutputList2Cue133=[~UNUSED3~] -OutputList2SigType133=Analog -OutputList2Cue134=[~UNUSED3~] -OutputList2SigType134=Analog -OutputList2Cue135=[~UNUSED3~] -OutputList2SigType135=Analog -OutputList2Cue136=[~UNUSED3~] -OutputList2SigType136=Analog -OutputList2Cue137=[~UNUSED3~] -OutputList2SigType137=Analog -OutputList2Cue138=[~UNUSED3~] -OutputList2SigType138=Analog -OutputList2Cue139=[~UNUSED3~] -OutputList2SigType139=Analog -OutputList2Cue140=[~UNUSED3~] -OutputList2SigType140=Analog -OutputList2Cue141=[~UNUSED3~] -OutputList2SigType141=Analog -OutputList2Cue142=[~UNUSED3~] -OutputList2SigType142=Analog -OutputList2Cue143=[~UNUSED3~] -OutputList2SigType143=Analog -OutputList2Cue144=[~UNUSED3~] -OutputList2SigType144=Analog -OutputList2Cue145=[~UNUSED3~] -OutputList2SigType145=Analog -OutputList2Cue146=[~UNUSED3~] -OutputList2SigType146=Analog -OutputList2Cue147=[~UNUSED3~] -OutputList2SigType147=Analog -OutputList2Cue148=[~UNUSED3~] -OutputList2SigType148=Analog -OutputList2Cue149=[~UNUSED3~] -OutputList2SigType149=Analog -OutputList2Cue150=[~UNUSED3~] -OutputList2SigType150=Analog -OutputList2Cue151=[~UNUSED3~] -OutputList2SigType151=Analog -OutputList2Cue152=[~UNUSED3~] -OutputList2SigType152=Analog -OutputList2Cue153=[~UNUSED3~] -OutputList2SigType153=Analog -OutputList2Cue154=[~UNUSED3~] -OutputList2SigType154=Analog -OutputList2Cue155=[~UNUSED3~] -OutputList2SigType155=Analog -OutputList2Cue156=[~UNUSED3~] -OutputList2SigType156=Analog -OutputList2Cue157=[~UNUSED3~] -OutputList2SigType157=Analog -OutputList2Cue158=[~UNUSED3~] -OutputList2SigType158=Analog -OutputList2Cue159=[~UNUSED3~] -OutputList2SigType159=Analog -OutputList2Cue160=[~UNUSED3~] -OutputList2SigType160=Analog -OutputList2Cue161=[~UNUSED3~] -OutputList2SigType161=Analog -OutputList2Cue162=[~UNUSED3~] -OutputList2SigType162=Analog -OutputList2Cue163=[~UNUSED3~] -OutputList2SigType163=Analog -OutputList2Cue164=[~UNUSED3~] -OutputList2SigType164=Analog -OutputList2Cue165=[~UNUSED3~] -OutputList2SigType165=Analog -OutputList2Cue166=[~UNUSED3~] -OutputList2SigType166=Analog -OutputList2Cue167=[~UNUSED3~] -OutputList2SigType167=Analog -OutputList2Cue168=[~UNUSED3~] -OutputList2SigType168=Analog -OutputList2Cue169=[~UNUSED3~] -OutputList2SigType169=Analog -OutputList2Cue170=[~UNUSED3~] -OutputList2SigType170=Analog -OutputList2Cue171=[~UNUSED3~] -OutputList2SigType171=Analog -OutputList2Cue172=[~UNUSED3~] -OutputList2SigType172=Analog -OutputList2Cue173=[~UNUSED3~] -OutputList2SigType173=Analog -OutputList2Cue174=[~UNUSED3~] -OutputList2SigType174=Analog -OutputList2Cue175=[~UNUSED3~] -OutputList2SigType175=Analog -OutputList2Cue176=[~UNUSED3~] -OutputList2SigType176=Analog -OutputList2Cue177=[~UNUSED3~] -OutputList2SigType177=Analog -OutputList2Cue178=[~UNUSED3~] -OutputList2SigType178=Analog -OutputList2Cue179=[~UNUSED3~] -OutputList2SigType179=Analog -OutputList2Cue180=[~UNUSED3~] -OutputList2SigType180=Analog -OutputList2Cue181=[~UNUSED3~] -OutputList2SigType181=Analog -OutputList2Cue182=[~UNUSED3~] -OutputList2SigType182=Analog -OutputList2Cue183=[~UNUSED3~] -OutputList2SigType183=Analog -OutputList2Cue184=[~UNUSED3~] -OutputList2SigType184=Analog -OutputList2Cue185=[~UNUSED3~] -OutputList2SigType185=Analog -OutputList2Cue186=[~UNUSED3~] -OutputList2SigType186=Analog -OutputList2Cue187=[~UNUSED3~] -OutputList2SigType187=Analog -OutputList2Cue188=[~UNUSED3~] -OutputList2SigType188=Analog -OutputList2Cue189=[~UNUSED3~] -OutputList2SigType189=Analog -OutputList2Cue190=[~UNUSED3~] -OutputList2SigType190=Analog -OutputList2Cue191=[~UNUSED3~] -OutputList2SigType191=Analog -OutputList2Cue192=[~UNUSED3~] -OutputList2SigType192=Analog -OutputList2Cue193=[~UNUSED3~] -OutputList2SigType193=Analog -OutputList2Cue194=[~UNUSED3~] -OutputList2SigType194=Analog -OutputList2Cue195=[~UNUSED3~] -OutputList2SigType195=Analog -OutputList2Cue196=[~UNUSED3~] -OutputList2SigType196=Analog -OutputList2Cue197=[~UNUSED3~] -OutputList2SigType197=Analog -OutputList2Cue198=[~UNUSED3~] -OutputList2SigType198=Analog -OutputList2Cue199=[~UNUSED3~] -OutputList2SigType199=Analog -OutputList2Cue200=[~UNUSED3~] -OutputList2SigType200=Analog -OutputList2Cue201=[~UNUSED3~] -OutputList2SigType201=Analog -OutputList2Cue202=[~UNUSED3~] -OutputList2SigType202=Analog -OutputList2Cue203=[~UNUSED3~] -OutputList2SigType203=Analog -OutputList2Cue204=[~UNUSED3~] -OutputList2SigType204=Analog -OutputList2Cue205=[~UNUSED3~] -OutputList2SigType205=Analog -OutputList2Cue206=[~UNUSED3~] -OutputList2SigType206=Analog -OutputList2Cue207=[~UNUSED3~] -OutputList2SigType207=Analog -OutputList2Cue208=[~UNUSED3~] -OutputList2SigType208=Analog -OutputList2Cue209=[~UNUSED3~] -OutputList2SigType209=Analog -OutputList2Cue210=[~UNUSED3~] -OutputList2SigType210=Analog -OutputList2Cue211=[~UNUSED3~] -OutputList2SigType211=Analog -OutputList2Cue212=[~UNUSED3~] -OutputList2SigType212=Analog -OutputList2Cue213=[~UNUSED3~] -OutputList2SigType213=Analog -OutputList2Cue214=[~UNUSED3~] -OutputList2SigType214=Analog -OutputList2Cue215=[~UNUSED3~] -OutputList2SigType215=Analog -OutputList2Cue216=[~UNUSED3~] -OutputList2SigType216=Analog -OutputList2Cue217=[~UNUSED3~] -OutputList2SigType217=Analog -OutputList2Cue218=[~UNUSED3~] -OutputList2SigType218=Analog -OutputList2Cue219=[~UNUSED3~] -OutputList2SigType219=Analog -OutputList2Cue220=[~UNUSED3~] -OutputList2SigType220=Analog -OutputList2Cue221=[~UNUSED3~] -OutputList2SigType221=Analog -OutputList2Cue222=[~UNUSED3~] -OutputList2SigType222=Analog -OutputList2Cue223=[~UNUSED3~] -OutputList2SigType223=Analog -OutputList2Cue224=[~UNUSED3~] -OutputList2SigType224=Analog -OutputList2Cue225=[~UNUSED3~] -OutputList2SigType225=Analog -OutputList2Cue226=[~UNUSED3~] -OutputList2SigType226=Analog -OutputList2Cue227=[~UNUSED3~] -OutputList2SigType227=Analog -OutputList2Cue228=[~UNUSED3~] -OutputList2SigType228=Analog -OutputList2Cue229=[~UNUSED3~] -OutputList2SigType229=Analog -OutputList2Cue230=[~UNUSED3~] -OutputList2SigType230=Analog -OutputList2Cue231=[~UNUSED3~] -OutputList2SigType231=Analog -OutputList2Cue232=[~UNUSED3~] -OutputList2SigType232=Analog -OutputList2Cue233=[~UNUSED3~] -OutputList2SigType233=Analog -OutputList2Cue234=[~UNUSED3~] -OutputList2SigType234=Analog -OutputList2Cue235=[~UNUSED3~] -OutputList2SigType235=Analog -OutputList2Cue236=[~UNUSED3~] -OutputList2SigType236=Analog -OutputList2Cue237=[~UNUSED3~] -OutputList2SigType237=Analog -OutputList2Cue238=[~UNUSED3~] -OutputList2SigType238=Analog -OutputList2Cue239=[~UNUSED3~] -OutputList2SigType239=Analog -OutputList2Cue240=[~UNUSED3~] -OutputList2SigType240=Analog -OutputList2Cue241=[~UNUSED3~] -OutputList2SigType241=Analog -OutputList2Cue242=[~UNUSED3~] -OutputList2SigType242=Analog -OutputList2Cue243=[~UNUSED3~] -OutputList2SigType243=Analog -OutputList2Cue244=[~UNUSED3~] -OutputList2SigType244=Analog -OutputList2Cue245=[~UNUSED3~] -OutputList2SigType245=Analog -OutputList2Cue246=[~UNUSED3~] -OutputList2SigType246=Analog -OutputList2Cue247=[~UNUSED3~] -OutputList2SigType247=Analog -OutputList2Cue248=[~UNUSED3~] -OutputList2SigType248=Analog -OutputList2Cue249=[~UNUSED3~] -OutputList2SigType249=Analog -OutputList2Cue250=[~UNUSED3~] -OutputList2SigType250=Analog -OutputList2Cue251=[~UNUSED3~] -OutputList2SigType251=Analog -OutputList2Cue252=[~UNUSED3~] -OutputList2SigType252=Analog -OutputList2Cue253=[~UNUSED3~] -OutputList2SigType253=Analog -OutputList2Cue254=[~UNUSED3~] -OutputList2SigType254=Analog -OutputList2Cue255=[~UNUSED3~] -OutputList2SigType255=Analog -OutputList2Cue256=[~UNUSED3~] -OutputList2SigType256=Analog -OutputList2Cue257=[~UNUSED3~] -OutputList2SigType257=Analog -OutputList2Cue258=[~UNUSED3~] -OutputList2SigType258=Analog -OutputList2Cue259=[~UNUSED3~] -OutputList2SigType259=Analog -OutputList2Cue260=[~UNUSED3~] -OutputList2SigType260=Analog -OutputList2Cue261=[~UNUSED3~] -OutputList2SigType261=Analog -OutputList2Cue262=[~UNUSED3~] -OutputList2SigType262=Analog -OutputList2Cue263=[~UNUSED3~] -OutputList2SigType263=Analog -OutputList2Cue264=[~UNUSED3~] -OutputList2SigType264=Analog -OutputList2Cue265=[~UNUSED3~] -OutputList2SigType265=Analog -OutputList2Cue266=[~UNUSED3~] -OutputList2SigType266=Analog -OutputList2Cue267=[~UNUSED2~] -OutputList2SigType267=Digital|Analog|Serial|String -OutputList2Cue2012=[~EndGroup~]Item Icons -OutputList2SigType2012=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]Item Texts -InputList3SigType11=Serial -InputList3Cue12=Set Item 1 Text -InputList3SigType12=Serial -InputList3Cue13=Set Item 2 Text -InputList3SigType13=Serial -InputList3Cue14=Set Item 3 Text -InputList3SigType14=Serial -InputList3Cue15=Set Item 4 Text -InputList3SigType15=Serial -InputList3Cue16=Set Item 5 Text -InputList3SigType16=Serial -InputList3Cue17=Set Item 6 Text -InputList3SigType17=Serial -InputList3Cue18=Set Item 7 Text -InputList3SigType18=Serial -InputList3Cue19=Set Item 8 Text -InputList3SigType19=Serial -InputList3Cue20=Set Item 9 Text -InputList3SigType20=Serial -InputList3Cue21=Set Item 10 Text -InputList3SigType21=Serial -InputList3Cue22=Set Item 11 Text -InputList3SigType22=Serial -InputList3Cue23=Set Item 12 Text -InputList3SigType23=Serial -InputList3Cue24=Set Item 13 Text -InputList3SigType24=Serial -InputList3Cue25=Set Item 14 Text -InputList3SigType25=Serial -InputList3Cue26=Set Item 15 Text -InputList3SigType26=Serial -InputList3Cue27=Set Item 16 Text -InputList3SigType27=Serial -InputList3Cue28=Set Item 17 Text -InputList3SigType28=Serial -InputList3Cue29=Set Item 18 Text -InputList3SigType29=Serial -InputList3Cue30=Set Item 19 Text -InputList3SigType30=Serial -InputList3Cue31=Set Item 20 Text -InputList3SigType31=Serial -InputList3Cue32=Set Item 21 Text -InputList3SigType32=Serial -InputList3Cue33=Set Item 22 Text -InputList3SigType33=Serial -InputList3Cue34=Set Item 23 Text -InputList3SigType34=Serial -InputList3Cue35=Set Item 24 Text -InputList3SigType35=Serial -InputList3Cue36=Set Item 25 Text -InputList3SigType36=Serial -InputList3Cue37=Set Item 26 Text -InputList3SigType37=Serial -InputList3Cue38=Set Item 27 Text -InputList3SigType38=Serial -InputList3Cue39=Set Item 28 Text -InputList3SigType39=Serial -InputList3Cue40=Set Item 29 Text -InputList3SigType40=Serial -InputList3Cue41=Set Item 30 Text -InputList3SigType41=Serial -InputList3Cue42=Set Item 31 Text -InputList3SigType42=Serial -InputList3Cue43=Set Item 32 Text -InputList3SigType43=Serial -InputList3Cue44=Set Item 33 Text -InputList3SigType44=Serial -InputList3Cue45=Set Item 34 Text -InputList3SigType45=Serial -InputList3Cue46=Set Item 35 Text -InputList3SigType46=Serial -InputList3Cue47=Set Item 36 Text -InputList3SigType47=Serial -InputList3Cue48=Set Item 37 Text -InputList3SigType48=Serial -InputList3Cue49=Set Item 38 Text -InputList3SigType49=Serial -InputList3Cue50=Set Item 39 Text -InputList3SigType50=Serial -InputList3Cue51=Set Item 40 Text -InputList3SigType51=Serial -InputList3Cue52=Set Item 41 Text -InputList3SigType52=Serial -InputList3Cue53=Set Item 42 Text -InputList3SigType53=Serial -InputList3Cue54=Set Item 43 Text -InputList3SigType54=Serial -InputList3Cue55=Set Item 44 Text -InputList3SigType55=Serial -InputList3Cue56=Set Item 45 Text -InputList3SigType56=Serial -InputList3Cue57=Set Item 46 Text -InputList3SigType57=Serial -InputList3Cue58=Set Item 47 Text -InputList3SigType58=Serial -InputList3Cue59=Set Item 48 Text -InputList3SigType59=Serial -InputList3Cue60=Set Item 49 Text -InputList3SigType60=Serial -InputList3Cue61=Set Item 50 Text -InputList3SigType61=Serial -InputList3Cue62=Set Item 51 Text -InputList3SigType62=Serial -InputList3Cue63=Set Item 52 Text -InputList3SigType63=Serial -InputList3Cue64=Set Item 53 Text -InputList3SigType64=Serial -InputList3Cue65=Set Item 54 Text -InputList3SigType65=Serial -InputList3Cue66=Set Item 55 Text -InputList3SigType66=Serial -InputList3Cue67=Set Item 56 Text -InputList3SigType67=Serial -InputList3Cue68=Set Item 57 Text -InputList3SigType68=Serial -InputList3Cue69=Set Item 58 Text -InputList3SigType69=Serial -InputList3Cue70=Set Item 59 Text -InputList3SigType70=Serial -InputList3Cue71=Set Item 60 Text -InputList3SigType71=Serial -InputList3Cue72=Set Item 61 Text -InputList3SigType72=Serial -InputList3Cue73=Set Item 62 Text -InputList3SigType73=Serial -InputList3Cue74=Set Item 63 Text -InputList3SigType74=Serial -InputList3Cue75=Set Item 64 Text -InputList3SigType75=Serial -InputList3Cue76=Set Item 65 Text -InputList3SigType76=Serial -InputList3Cue77=Set Item 66 Text -InputList3SigType77=Serial -InputList3Cue78=Set Item 67 Text -InputList3SigType78=Serial -InputList3Cue79=Set Item 68 Text -InputList3SigType79=Serial -InputList3Cue80=Set Item 69 Text -InputList3SigType80=Serial -InputList3Cue81=Set Item 70 Text -InputList3SigType81=Serial -InputList3Cue82=Set Item 71 Text -InputList3SigType82=Serial -InputList3Cue83=Set Item 72 Text -InputList3SigType83=Serial -InputList3Cue84=Set Item 73 Text -InputList3SigType84=Serial -InputList3Cue85=Set Item 74 Text -InputList3SigType85=Serial -InputList3Cue86=Set Item 75 Text -InputList3SigType86=Serial -InputList3Cue87=Set Item 76 Text -InputList3SigType87=Serial -InputList3Cue88=Set Item 77 Text -InputList3SigType88=Serial -InputList3Cue89=Set Item 78 Text -InputList3SigType89=Serial -InputList3Cue90=Set Item 79 Text -InputList3SigType90=Serial -InputList3Cue91=Set Item 80 Text -InputList3SigType91=Serial -InputList3Cue92=Set Item 81 Text -InputList3SigType92=Serial -InputList3Cue93=Set Item 82 Text -InputList3SigType93=Serial -InputList3Cue94=Set Item 83 Text -InputList3SigType94=Serial -InputList3Cue95=Set Item 84 Text -InputList3SigType95=Serial -InputList3Cue96=Set Item 85 Text -InputList3SigType96=Serial -InputList3Cue97=Set Item 86 Text -InputList3SigType97=Serial -InputList3Cue98=Set Item 87 Text -InputList3SigType98=Serial -InputList3Cue99=Set Item 88 Text -InputList3SigType99=Serial -InputList3Cue100=Set Item 89 Text -InputList3SigType100=Serial -InputList3Cue101=Set Item 90 Text -InputList3SigType101=Serial -InputList3Cue102=Set Item 91 Text -InputList3SigType102=Serial -InputList3Cue103=Set Item 92 Text -InputList3SigType103=Serial -InputList3Cue104=Set Item 93 Text -InputList3SigType104=Serial -InputList3Cue105=Set Item 94 Text -InputList3SigType105=Serial -InputList3Cue106=Set Item 95 Text -InputList3SigType106=Serial -InputList3Cue107=Set Item 96 Text -InputList3SigType107=Serial -InputList3Cue108=Set Item 97 Text -InputList3SigType108=Serial -InputList3Cue109=Set Item 98 Text -InputList3SigType109=Serial -InputList3Cue110=Set Item 99 Text -InputList3SigType110=Serial -InputList3Cue111=Set Item 100 Text -InputList3SigType111=Serial -InputList3Cue112=Set Item 101 Text -InputList3SigType112=Serial -InputList3Cue113=Set Item 102 Text -InputList3SigType113=Serial -InputList3Cue114=Set Item 103 Text -InputList3SigType114=Serial -InputList3Cue115=Set Item 104 Text -InputList3SigType115=Serial -InputList3Cue116=Set Item 105 Text -InputList3SigType116=Serial -InputList3Cue117=Set Item 106 Text -InputList3SigType117=Serial -InputList3Cue118=Set Item 107 Text -InputList3SigType118=Serial -InputList3Cue119=Set Item 108 Text -InputList3SigType119=Serial -InputList3Cue120=Set Item 109 Text -InputList3SigType120=Serial -InputList3Cue121=Set Item 110 Text -InputList3SigType121=Serial -InputList3Cue122=Set Item 111 Text -InputList3SigType122=Serial -InputList3Cue123=Set Item 112 Text -InputList3SigType123=Serial -InputList3Cue124=Set Item 113 Text -InputList3SigType124=Serial -InputList3Cue125=Set Item 114 Text -InputList3SigType125=Serial -InputList3Cue126=Set Item 115 Text -InputList3SigType126=Serial -InputList3Cue127=Set Item 116 Text -InputList3SigType127=Serial -InputList3Cue128=Set Item 117 Text -InputList3SigType128=Serial -InputList3Cue129=Set Item 118 Text -InputList3SigType129=Serial -InputList3Cue130=Set Item 119 Text -InputList3SigType130=Serial -InputList3Cue131=Set Item 120 Text -InputList3SigType131=Serial -InputList3Cue132=Set Item 121 Text -InputList3SigType132=Serial -InputList3Cue133=Set Item 122 Text -InputList3SigType133=Serial -InputList3Cue134=Set Item 123 Text -InputList3SigType134=Serial -InputList3Cue135=Set Item 124 Text -InputList3SigType135=Serial -InputList3Cue136=Set Item 125 Text -InputList3SigType136=Serial -InputList3Cue137=Set Item 126 Text -InputList3SigType137=Serial -InputList3Cue138=Set Item 127 Text -InputList3SigType138=Serial -InputList3Cue139=Set Item 128 Text -InputList3SigType139=Serial -InputList3Cue140=Set Item 129 Text -InputList3SigType140=Serial -InputList3Cue141=Set Item 130 Text -InputList3SigType141=Serial -InputList3Cue142=Set Item 131 Text -InputList3SigType142=Serial -InputList3Cue143=Set Item 132 Text -InputList3SigType143=Serial -InputList3Cue144=Set Item 133 Text -InputList3SigType144=Serial -InputList3Cue145=Set Item 134 Text -InputList3SigType145=Serial -InputList3Cue146=Set Item 135 Text -InputList3SigType146=Serial -InputList3Cue147=Set Item 136 Text -InputList3SigType147=Serial -InputList3Cue148=Set Item 137 Text -InputList3SigType148=Serial -InputList3Cue149=Set Item 138 Text -InputList3SigType149=Serial -InputList3Cue150=Set Item 139 Text -InputList3SigType150=Serial -InputList3Cue151=Set Item 140 Text -InputList3SigType151=Serial -InputList3Cue152=Set Item 141 Text -InputList3SigType152=Serial -InputList3Cue153=Set Item 142 Text -InputList3SigType153=Serial -InputList3Cue154=Set Item 143 Text -InputList3SigType154=Serial -InputList3Cue155=Set Item 144 Text -InputList3SigType155=Serial -InputList3Cue156=Set Item 145 Text -InputList3SigType156=Serial -InputList3Cue157=Set Item 146 Text -InputList3SigType157=Serial -InputList3Cue158=Set Item 147 Text -InputList3SigType158=Serial -InputList3Cue159=Set Item 148 Text -InputList3SigType159=Serial -InputList3Cue160=Set Item 149 Text -InputList3SigType160=Serial -InputList3Cue161=Set Item 150 Text -InputList3SigType161=Serial -InputList3Cue162=Set Item 151 Text -InputList3SigType162=Serial -InputList3Cue163=Set Item 152 Text -InputList3SigType163=Serial -InputList3Cue164=Set Item 153 Text -InputList3SigType164=Serial -InputList3Cue165=Set Item 154 Text -InputList3SigType165=Serial -InputList3Cue166=Set Item 155 Text -InputList3SigType166=Serial -InputList3Cue167=Set Item 156 Text -InputList3SigType167=Serial -InputList3Cue168=Set Item 157 Text -InputList3SigType168=Serial -InputList3Cue169=Set Item 158 Text -InputList3SigType169=Serial -InputList3Cue170=Set Item 159 Text -InputList3SigType170=Serial -InputList3Cue171=Set Item 160 Text -InputList3SigType171=Serial -InputList3Cue172=Set Item 161 Text -InputList3SigType172=Serial -InputList3Cue173=Set Item 162 Text -InputList3SigType173=Serial -InputList3Cue174=Set Item 163 Text -InputList3SigType174=Serial -InputList3Cue175=Set Item 164 Text -InputList3SigType175=Serial -InputList3Cue176=Set Item 165 Text -InputList3SigType176=Serial -InputList3Cue177=Set Item 166 Text -InputList3SigType177=Serial -InputList3Cue178=Set Item 167 Text -InputList3SigType178=Serial -InputList3Cue179=Set Item 168 Text -InputList3SigType179=Serial -InputList3Cue180=Set Item 169 Text -InputList3SigType180=Serial -InputList3Cue181=Set Item 170 Text -InputList3SigType181=Serial -InputList3Cue182=Set Item 171 Text -InputList3SigType182=Serial -InputList3Cue183=Set Item 172 Text -InputList3SigType183=Serial -InputList3Cue184=Set Item 173 Text -InputList3SigType184=Serial -InputList3Cue185=Set Item 174 Text -InputList3SigType185=Serial -InputList3Cue186=Set Item 175 Text -InputList3SigType186=Serial -InputList3Cue187=Set Item 176 Text -InputList3SigType187=Serial -InputList3Cue188=Set Item 177 Text -InputList3SigType188=Serial -InputList3Cue189=Set Item 178 Text -InputList3SigType189=Serial -InputList3Cue190=Set Item 179 Text -InputList3SigType190=Serial -InputList3Cue191=Set Item 180 Text -InputList3SigType191=Serial -InputList3Cue192=Set Item 181 Text -InputList3SigType192=Serial -InputList3Cue193=Set Item 182 Text -InputList3SigType193=Serial -InputList3Cue194=Set Item 183 Text -InputList3SigType194=Serial -InputList3Cue195=Set Item 184 Text -InputList3SigType195=Serial -InputList3Cue196=Set Item 185 Text -InputList3SigType196=Serial -InputList3Cue197=Set Item 186 Text -InputList3SigType197=Serial -InputList3Cue198=Set Item 187 Text -InputList3SigType198=Serial -InputList3Cue199=Set Item 188 Text -InputList3SigType199=Serial -InputList3Cue200=Set Item 189 Text -InputList3SigType200=Serial -InputList3Cue201=Set Item 190 Text -InputList3SigType201=Serial -InputList3Cue202=Set Item 191 Text -InputList3SigType202=Serial -InputList3Cue203=Set Item 192 Text -InputList3SigType203=Serial -InputList3Cue204=Set Item 193 Text -InputList3SigType204=Serial -InputList3Cue205=Set Item 194 Text -InputList3SigType205=Serial -InputList3Cue206=Set Item 195 Text -InputList3SigType206=Serial -InputList3Cue207=Set Item 196 Text -InputList3SigType207=Serial -InputList3Cue208=Set Item 197 Text -InputList3SigType208=Serial -InputList3Cue209=Set Item 198 Text -InputList3SigType209=Serial -InputList3Cue210=Set Item 199 Text -InputList3SigType210=Serial -InputList3Cue211=Set Item 200 Text -InputList3SigType211=Serial -InputList3Cue212=Set Item 201 Text -InputList3SigType212=Serial -InputList3Cue213=Set Item 202 Text -InputList3SigType213=Serial -InputList3Cue214=Set Item 203 Text -InputList3SigType214=Serial -InputList3Cue215=Set Item 204 Text -InputList3SigType215=Serial -InputList3Cue216=Set Item 205 Text -InputList3SigType216=Serial -InputList3Cue217=Set Item 206 Text -InputList3SigType217=Serial -InputList3Cue218=Set Item 207 Text -InputList3SigType218=Serial -InputList3Cue219=Set Item 208 Text -InputList3SigType219=Serial -InputList3Cue220=Set Item 209 Text -InputList3SigType220=Serial -InputList3Cue221=Set Item 210 Text -InputList3SigType221=Serial -InputList3Cue222=Set Item 211 Text -InputList3SigType222=Serial -InputList3Cue223=Set Item 212 Text -InputList3SigType223=Serial -InputList3Cue224=Set Item 213 Text -InputList3SigType224=Serial -InputList3Cue225=Set Item 214 Text -InputList3SigType225=Serial -InputList3Cue226=Set Item 215 Text -InputList3SigType226=Serial -InputList3Cue227=Set Item 216 Text -InputList3SigType227=Serial -InputList3Cue228=Set Item 217 Text -InputList3SigType228=Serial -InputList3Cue229=Set Item 218 Text -InputList3SigType229=Serial -InputList3Cue230=Set Item 219 Text -InputList3SigType230=Serial -InputList3Cue231=Set Item 220 Text -InputList3SigType231=Serial -InputList3Cue232=Set Item 221 Text -InputList3SigType232=Serial -InputList3Cue233=Set Item 222 Text -InputList3SigType233=Serial -InputList3Cue234=Set Item 223 Text -InputList3SigType234=Serial -InputList3Cue235=Set Item 224 Text -InputList3SigType235=Serial -InputList3Cue236=Set Item 225 Text -InputList3SigType236=Serial -InputList3Cue237=Set Item 226 Text -InputList3SigType237=Serial -InputList3Cue238=Set Item 227 Text -InputList3SigType238=Serial -InputList3Cue239=Set Item 228 Text -InputList3SigType239=Serial -InputList3Cue240=Set Item 229 Text -InputList3SigType240=Serial -InputList3Cue241=Set Item 230 Text -InputList3SigType241=Serial -InputList3Cue242=Set Item 231 Text -InputList3SigType242=Serial -InputList3Cue243=Set Item 232 Text -InputList3SigType243=Serial -InputList3Cue244=Set Item 233 Text -InputList3SigType244=Serial -InputList3Cue245=Set Item 234 Text -InputList3SigType245=Serial -InputList3Cue246=Set Item 235 Text -InputList3SigType246=Serial -InputList3Cue247=Set Item 236 Text -InputList3SigType247=Serial -InputList3Cue248=Set Item 237 Text -InputList3SigType248=Serial -InputList3Cue249=Set Item 238 Text -InputList3SigType249=Serial -InputList3Cue250=Set Item 239 Text -InputList3SigType250=Serial -InputList3Cue251=Set Item 240 Text -InputList3SigType251=Serial -InputList3Cue252=Set Item 241 Text -InputList3SigType252=Serial -InputList3Cue253=Set Item 242 Text -InputList3SigType253=Serial -InputList3Cue254=Set Item 243 Text -InputList3SigType254=Serial -InputList3Cue255=Set Item 244 Text -InputList3SigType255=Serial -InputList3Cue256=Set Item 245 Text -InputList3SigType256=Serial -InputList3Cue257=Set Item 246 Text -InputList3SigType257=Serial -InputList3Cue258=Set Item 247 Text -InputList3SigType258=Serial -InputList3Cue259=Set Item 248 Text -InputList3SigType259=Serial -InputList3Cue260=Set Item 249 Text -InputList3SigType260=Serial -InputList3Cue261=Set Item 250 Text -InputList3SigType261=Serial -InputList3Cue262=Set Item 251 Text -InputList3SigType262=Serial -InputList3Cue263=Set Item 252 Text -InputList3SigType263=Serial -InputList3Cue264=Set Item 253 Text -InputList3SigType264=Serial -InputList3Cue265=Set Item 254 Text -InputList3SigType265=Serial -InputList3Cue266=Set Item 255 Text -InputList3SigType266=Serial -InputList3Cue267=[~UNUSED2~] -InputList3SigType267=Digital|Analog|Serial|String -InputList3Cue2012=[~EndGroup~]Item Texts -InputList3SigType2012=Serial -InputList3Cue2013=[~BeginGroup~]Item Icons -InputList3SigType2013=Serial -InputList3Cue2014=Set Item 1 Icon Serial -InputList3SigType2014=Serial -InputList3Cue2015=Set Item 2 Icon Serial -InputList3SigType2015=Serial -InputList3Cue2016=Set Item 3 Icon Serial -InputList3SigType2016=Serial -InputList3Cue2017=Set Item 4 Icon Serial -InputList3SigType2017=Serial -InputList3Cue2018=Set Item 5 Icon Serial -InputList3SigType2018=Serial -InputList3Cue2019=Set Item 6 Icon Serial -InputList3SigType2019=Serial -InputList3Cue2020=Set Item 7 Icon Serial -InputList3SigType2020=Serial -InputList3Cue2021=Set Item 8 Icon Serial -InputList3SigType2021=Serial -InputList3Cue2022=Set Item 9 Icon Serial -InputList3SigType2022=Serial -InputList3Cue2023=Set Item 10 Icon Serial -InputList3SigType2023=Serial -InputList3Cue2024=Set Item 11 Icon Serial -InputList3SigType2024=Serial -InputList3Cue2025=Set Item 12 Icon Serial -InputList3SigType2025=Serial -InputList3Cue2026=Set Item 13 Icon Serial -InputList3SigType2026=Serial -InputList3Cue2027=Set Item 14 Icon Serial -InputList3SigType2027=Serial -InputList3Cue2028=Set Item 15 Icon Serial -InputList3SigType2028=Serial -InputList3Cue2029=Set Item 16 Icon Serial -InputList3SigType2029=Serial -InputList3Cue2030=Set Item 17 Icon Serial -InputList3SigType2030=Serial -InputList3Cue2031=Set Item 18 Icon Serial -InputList3SigType2031=Serial -InputList3Cue2032=Set Item 19 Icon Serial -InputList3SigType2032=Serial -InputList3Cue2033=Set Item 20 Icon Serial -InputList3SigType2033=Serial -InputList3Cue2034=Set Item 21 Icon Serial -InputList3SigType2034=Serial -InputList3Cue2035=Set Item 22 Icon Serial -InputList3SigType2035=Serial -InputList3Cue2036=Set Item 23 Icon Serial -InputList3SigType2036=Serial -InputList3Cue2037=Set Item 24 Icon Serial -InputList3SigType2037=Serial -InputList3Cue2038=Set Item 25 Icon Serial -InputList3SigType2038=Serial -InputList3Cue2039=Set Item 26 Icon Serial -InputList3SigType2039=Serial -InputList3Cue2040=Set Item 27 Icon Serial -InputList3SigType2040=Serial -InputList3Cue2041=Set Item 28 Icon Serial -InputList3SigType2041=Serial -InputList3Cue2042=Set Item 29 Icon Serial -InputList3SigType2042=Serial -InputList3Cue2043=Set Item 30 Icon Serial -InputList3SigType2043=Serial -InputList3Cue2044=Set Item 31 Icon Serial -InputList3SigType2044=Serial -InputList3Cue2045=Set Item 32 Icon Serial -InputList3SigType2045=Serial -InputList3Cue2046=Set Item 33 Icon Serial -InputList3SigType2046=Serial -InputList3Cue2047=Set Item 34 Icon Serial -InputList3SigType2047=Serial -InputList3Cue2048=Set Item 35 Icon Serial -InputList3SigType2048=Serial -InputList3Cue2049=Set Item 36 Icon Serial -InputList3SigType2049=Serial -InputList3Cue2050=Set Item 37 Icon Serial -InputList3SigType2050=Serial -InputList3Cue2051=Set Item 38 Icon Serial -InputList3SigType2051=Serial -InputList3Cue2052=Set Item 39 Icon Serial -InputList3SigType2052=Serial -InputList3Cue2053=Set Item 40 Icon Serial -InputList3SigType2053=Serial -InputList3Cue2054=Set Item 41 Icon Serial -InputList3SigType2054=Serial -InputList3Cue2055=Set Item 42 Icon Serial -InputList3SigType2055=Serial -InputList3Cue2056=Set Item 43 Icon Serial -InputList3SigType2056=Serial -InputList3Cue2057=Set Item 44 Icon Serial -InputList3SigType2057=Serial -InputList3Cue2058=Set Item 45 Icon Serial -InputList3SigType2058=Serial -InputList3Cue2059=Set Item 46 Icon Serial -InputList3SigType2059=Serial -InputList3Cue2060=Set Item 47 Icon Serial -InputList3SigType2060=Serial -InputList3Cue2061=Set Item 48 Icon Serial -InputList3SigType2061=Serial -InputList3Cue2062=Set Item 49 Icon Serial -InputList3SigType2062=Serial -InputList3Cue2063=Set Item 50 Icon Serial -InputList3SigType2063=Serial -InputList3Cue2064=Set Item 51 Icon Serial -InputList3SigType2064=Serial -InputList3Cue2065=Set Item 52 Icon Serial -InputList3SigType2065=Serial -InputList3Cue2066=Set Item 53 Icon Serial -InputList3SigType2066=Serial -InputList3Cue2067=Set Item 54 Icon Serial -InputList3SigType2067=Serial -InputList3Cue2068=Set Item 55 Icon Serial -InputList3SigType2068=Serial -InputList3Cue2069=Set Item 56 Icon Serial -InputList3SigType2069=Serial -InputList3Cue2070=Set Item 57 Icon Serial -InputList3SigType2070=Serial -InputList3Cue2071=Set Item 58 Icon Serial -InputList3SigType2071=Serial -InputList3Cue2072=Set Item 59 Icon Serial -InputList3SigType2072=Serial -InputList3Cue2073=Set Item 60 Icon Serial -InputList3SigType2073=Serial -InputList3Cue2074=Set Item 61 Icon Serial -InputList3SigType2074=Serial -InputList3Cue2075=Set Item 62 Icon Serial -InputList3SigType2075=Serial -InputList3Cue2076=Set Item 63 Icon Serial -InputList3SigType2076=Serial -InputList3Cue2077=Set Item 64 Icon Serial -InputList3SigType2077=Serial -InputList3Cue2078=Set Item 65 Icon Serial -InputList3SigType2078=Serial -InputList3Cue2079=Set Item 66 Icon Serial -InputList3SigType2079=Serial -InputList3Cue2080=Set Item 67 Icon Serial -InputList3SigType2080=Serial -InputList3Cue2081=Set Item 68 Icon Serial -InputList3SigType2081=Serial -InputList3Cue2082=Set Item 69 Icon Serial -InputList3SigType2082=Serial -InputList3Cue2083=Set Item 70 Icon Serial -InputList3SigType2083=Serial -InputList3Cue2084=Set Item 71 Icon Serial -InputList3SigType2084=Serial -InputList3Cue2085=Set Item 72 Icon Serial -InputList3SigType2085=Serial -InputList3Cue2086=Set Item 73 Icon Serial -InputList3SigType2086=Serial -InputList3Cue2087=Set Item 74 Icon Serial -InputList3SigType2087=Serial -InputList3Cue2088=Set Item 75 Icon Serial -InputList3SigType2088=Serial -InputList3Cue2089=Set Item 76 Icon Serial -InputList3SigType2089=Serial -InputList3Cue2090=Set Item 77 Icon Serial -InputList3SigType2090=Serial -InputList3Cue2091=Set Item 78 Icon Serial -InputList3SigType2091=Serial -InputList3Cue2092=Set Item 79 Icon Serial -InputList3SigType2092=Serial -InputList3Cue2093=Set Item 80 Icon Serial -InputList3SigType2093=Serial -InputList3Cue2094=Set Item 81 Icon Serial -InputList3SigType2094=Serial -InputList3Cue2095=Set Item 82 Icon Serial -InputList3SigType2095=Serial -InputList3Cue2096=Set Item 83 Icon Serial -InputList3SigType2096=Serial -InputList3Cue2097=Set Item 84 Icon Serial -InputList3SigType2097=Serial -InputList3Cue2098=Set Item 85 Icon Serial -InputList3SigType2098=Serial -InputList3Cue2099=Set Item 86 Icon Serial -InputList3SigType2099=Serial -InputList3Cue2100=Set Item 87 Icon Serial -InputList3SigType2100=Serial -InputList3Cue2101=Set Item 88 Icon Serial -InputList3SigType2101=Serial -InputList3Cue2102=Set Item 89 Icon Serial -InputList3SigType2102=Serial -InputList3Cue2103=Set Item 90 Icon Serial -InputList3SigType2103=Serial -InputList3Cue2104=Set Item 91 Icon Serial -InputList3SigType2104=Serial -InputList3Cue2105=Set Item 92 Icon Serial -InputList3SigType2105=Serial -InputList3Cue2106=Set Item 93 Icon Serial -InputList3SigType2106=Serial -InputList3Cue2107=Set Item 94 Icon Serial -InputList3SigType2107=Serial -InputList3Cue2108=Set Item 95 Icon Serial -InputList3SigType2108=Serial -InputList3Cue2109=Set Item 96 Icon Serial -InputList3SigType2109=Serial -InputList3Cue2110=Set Item 97 Icon Serial -InputList3SigType2110=Serial -InputList3Cue2111=Set Item 98 Icon Serial -InputList3SigType2111=Serial -InputList3Cue2112=Set Item 99 Icon Serial -InputList3SigType2112=Serial -InputList3Cue2113=Set Item 100 Icon Serial -InputList3SigType2113=Serial -InputList3Cue2114=Set Item 101 Icon Serial -InputList3SigType2114=Serial -InputList3Cue2115=Set Item 102 Icon Serial -InputList3SigType2115=Serial -InputList3Cue2116=Set Item 103 Icon Serial -InputList3SigType2116=Serial -InputList3Cue2117=Set Item 104 Icon Serial -InputList3SigType2117=Serial -InputList3Cue2118=Set Item 105 Icon Serial -InputList3SigType2118=Serial -InputList3Cue2119=Set Item 106 Icon Serial -InputList3SigType2119=Serial -InputList3Cue2120=Set Item 107 Icon Serial -InputList3SigType2120=Serial -InputList3Cue2121=Set Item 108 Icon Serial -InputList3SigType2121=Serial -InputList3Cue2122=Set Item 109 Icon Serial -InputList3SigType2122=Serial -InputList3Cue2123=Set Item 110 Icon Serial -InputList3SigType2123=Serial -InputList3Cue2124=Set Item 111 Icon Serial -InputList3SigType2124=Serial -InputList3Cue2125=Set Item 112 Icon Serial -InputList3SigType2125=Serial -InputList3Cue2126=Set Item 113 Icon Serial -InputList3SigType2126=Serial -InputList3Cue2127=Set Item 114 Icon Serial -InputList3SigType2127=Serial -InputList3Cue2128=Set Item 115 Icon Serial -InputList3SigType2128=Serial -InputList3Cue2129=Set Item 116 Icon Serial -InputList3SigType2129=Serial -InputList3Cue2130=Set Item 117 Icon Serial -InputList3SigType2130=Serial -InputList3Cue2131=Set Item 118 Icon Serial -InputList3SigType2131=Serial -InputList3Cue2132=Set Item 119 Icon Serial -InputList3SigType2132=Serial -InputList3Cue2133=Set Item 120 Icon Serial -InputList3SigType2133=Serial -InputList3Cue2134=Set Item 121 Icon Serial -InputList3SigType2134=Serial -InputList3Cue2135=Set Item 122 Icon Serial -InputList3SigType2135=Serial -InputList3Cue2136=Set Item 123 Icon Serial -InputList3SigType2136=Serial -InputList3Cue2137=Set Item 124 Icon Serial -InputList3SigType2137=Serial -InputList3Cue2138=Set Item 125 Icon Serial -InputList3SigType2138=Serial -InputList3Cue2139=Set Item 126 Icon Serial -InputList3SigType2139=Serial -InputList3Cue2140=Set Item 127 Icon Serial -InputList3SigType2140=Serial -InputList3Cue2141=Set Item 128 Icon Serial -InputList3SigType2141=Serial -InputList3Cue2142=Set Item 129 Icon Serial -InputList3SigType2142=Serial -InputList3Cue2143=Set Item 130 Icon Serial -InputList3SigType2143=Serial -InputList3Cue2144=Set Item 131 Icon Serial -InputList3SigType2144=Serial -InputList3Cue2145=Set Item 132 Icon Serial -InputList3SigType2145=Serial -InputList3Cue2146=Set Item 133 Icon Serial -InputList3SigType2146=Serial -InputList3Cue2147=Set Item 134 Icon Serial -InputList3SigType2147=Serial -InputList3Cue2148=Set Item 135 Icon Serial -InputList3SigType2148=Serial -InputList3Cue2149=Set Item 136 Icon Serial -InputList3SigType2149=Serial -InputList3Cue2150=Set Item 137 Icon Serial -InputList3SigType2150=Serial -InputList3Cue2151=Set Item 138 Icon Serial -InputList3SigType2151=Serial -InputList3Cue2152=Set Item 139 Icon Serial -InputList3SigType2152=Serial -InputList3Cue2153=Set Item 140 Icon Serial -InputList3SigType2153=Serial -InputList3Cue2154=Set Item 141 Icon Serial -InputList3SigType2154=Serial -InputList3Cue2155=Set Item 142 Icon Serial -InputList3SigType2155=Serial -InputList3Cue2156=Set Item 143 Icon Serial -InputList3SigType2156=Serial -InputList3Cue2157=Set Item 144 Icon Serial -InputList3SigType2157=Serial -InputList3Cue2158=Set Item 145 Icon Serial -InputList3SigType2158=Serial -InputList3Cue2159=Set Item 146 Icon Serial -InputList3SigType2159=Serial -InputList3Cue2160=Set Item 147 Icon Serial -InputList3SigType2160=Serial -InputList3Cue2161=Set Item 148 Icon Serial -InputList3SigType2161=Serial -InputList3Cue2162=Set Item 149 Icon Serial -InputList3SigType2162=Serial -InputList3Cue2163=Set Item 150 Icon Serial -InputList3SigType2163=Serial -InputList3Cue2164=Set Item 151 Icon Serial -InputList3SigType2164=Serial -InputList3Cue2165=Set Item 152 Icon Serial -InputList3SigType2165=Serial -InputList3Cue2166=Set Item 153 Icon Serial -InputList3SigType2166=Serial -InputList3Cue2167=Set Item 154 Icon Serial -InputList3SigType2167=Serial -InputList3Cue2168=Set Item 155 Icon Serial -InputList3SigType2168=Serial -InputList3Cue2169=Set Item 156 Icon Serial -InputList3SigType2169=Serial -InputList3Cue2170=Set Item 157 Icon Serial -InputList3SigType2170=Serial -InputList3Cue2171=Set Item 158 Icon Serial -InputList3SigType2171=Serial -InputList3Cue2172=Set Item 159 Icon Serial -InputList3SigType2172=Serial -InputList3Cue2173=Set Item 160 Icon Serial -InputList3SigType2173=Serial -InputList3Cue2174=Set Item 161 Icon Serial -InputList3SigType2174=Serial -InputList3Cue2175=Set Item 162 Icon Serial -InputList3SigType2175=Serial -InputList3Cue2176=Set Item 163 Icon Serial -InputList3SigType2176=Serial -InputList3Cue2177=Set Item 164 Icon Serial -InputList3SigType2177=Serial -InputList3Cue2178=Set Item 165 Icon Serial -InputList3SigType2178=Serial -InputList3Cue2179=Set Item 166 Icon Serial -InputList3SigType2179=Serial -InputList3Cue2180=Set Item 167 Icon Serial -InputList3SigType2180=Serial -InputList3Cue2181=Set Item 168 Icon Serial -InputList3SigType2181=Serial -InputList3Cue2182=Set Item 169 Icon Serial -InputList3SigType2182=Serial -InputList3Cue2183=Set Item 170 Icon Serial -InputList3SigType2183=Serial -InputList3Cue2184=Set Item 171 Icon Serial -InputList3SigType2184=Serial -InputList3Cue2185=Set Item 172 Icon Serial -InputList3SigType2185=Serial -InputList3Cue2186=Set Item 173 Icon Serial -InputList3SigType2186=Serial -InputList3Cue2187=Set Item 174 Icon Serial -InputList3SigType2187=Serial -InputList3Cue2188=Set Item 175 Icon Serial -InputList3SigType2188=Serial -InputList3Cue2189=Set Item 176 Icon Serial -InputList3SigType2189=Serial -InputList3Cue2190=Set Item 177 Icon Serial -InputList3SigType2190=Serial -InputList3Cue2191=Set Item 178 Icon Serial -InputList3SigType2191=Serial -InputList3Cue2192=Set Item 179 Icon Serial -InputList3SigType2192=Serial -InputList3Cue2193=Set Item 180 Icon Serial -InputList3SigType2193=Serial -InputList3Cue2194=Set Item 181 Icon Serial -InputList3SigType2194=Serial -InputList3Cue2195=Set Item 182 Icon Serial -InputList3SigType2195=Serial -InputList3Cue2196=Set Item 183 Icon Serial -InputList3SigType2196=Serial -InputList3Cue2197=Set Item 184 Icon Serial -InputList3SigType2197=Serial -InputList3Cue2198=Set Item 185 Icon Serial -InputList3SigType2198=Serial -InputList3Cue2199=Set Item 186 Icon Serial -InputList3SigType2199=Serial -InputList3Cue2200=Set Item 187 Icon Serial -InputList3SigType2200=Serial -InputList3Cue2201=Set Item 188 Icon Serial -InputList3SigType2201=Serial -InputList3Cue2202=Set Item 189 Icon Serial -InputList3SigType2202=Serial -InputList3Cue2203=Set Item 190 Icon Serial -InputList3SigType2203=Serial -InputList3Cue2204=Set Item 191 Icon Serial -InputList3SigType2204=Serial -InputList3Cue2205=Set Item 192 Icon Serial -InputList3SigType2205=Serial -InputList3Cue2206=Set Item 193 Icon Serial -InputList3SigType2206=Serial -InputList3Cue2207=Set Item 194 Icon Serial -InputList3SigType2207=Serial -InputList3Cue2208=Set Item 195 Icon Serial -InputList3SigType2208=Serial -InputList3Cue2209=Set Item 196 Icon Serial -InputList3SigType2209=Serial -InputList3Cue2210=Set Item 197 Icon Serial -InputList3SigType2210=Serial -InputList3Cue2211=Set Item 198 Icon Serial -InputList3SigType2211=Serial -InputList3Cue2212=Set Item 199 Icon Serial -InputList3SigType2212=Serial -InputList3Cue2213=Set Item 200 Icon Serial -InputList3SigType2213=Serial -InputList3Cue2214=Set Item 201 Icon Serial -InputList3SigType2214=Serial -InputList3Cue2215=Set Item 202 Icon Serial -InputList3SigType2215=Serial -InputList3Cue2216=Set Item 203 Icon Serial -InputList3SigType2216=Serial -InputList3Cue2217=Set Item 204 Icon Serial -InputList3SigType2217=Serial -InputList3Cue2218=Set Item 205 Icon Serial -InputList3SigType2218=Serial -InputList3Cue2219=Set Item 206 Icon Serial -InputList3SigType2219=Serial -InputList3Cue2220=Set Item 207 Icon Serial -InputList3SigType2220=Serial -InputList3Cue2221=Set Item 208 Icon Serial -InputList3SigType2221=Serial -InputList3Cue2222=Set Item 209 Icon Serial -InputList3SigType2222=Serial -InputList3Cue2223=Set Item 210 Icon Serial -InputList3SigType2223=Serial -InputList3Cue2224=Set Item 211 Icon Serial -InputList3SigType2224=Serial -InputList3Cue2225=Set Item 212 Icon Serial -InputList3SigType2225=Serial -InputList3Cue2226=Set Item 213 Icon Serial -InputList3SigType2226=Serial -InputList3Cue2227=Set Item 214 Icon Serial -InputList3SigType2227=Serial -InputList3Cue2228=Set Item 215 Icon Serial -InputList3SigType2228=Serial -InputList3Cue2229=Set Item 216 Icon Serial -InputList3SigType2229=Serial -InputList3Cue2230=Set Item 217 Icon Serial -InputList3SigType2230=Serial -InputList3Cue2231=Set Item 218 Icon Serial -InputList3SigType2231=Serial -InputList3Cue2232=Set Item 219 Icon Serial -InputList3SigType2232=Serial -InputList3Cue2233=Set Item 220 Icon Serial -InputList3SigType2233=Serial -InputList3Cue2234=Set Item 221 Icon Serial -InputList3SigType2234=Serial -InputList3Cue2235=Set Item 222 Icon Serial -InputList3SigType2235=Serial -InputList3Cue2236=Set Item 223 Icon Serial -InputList3SigType2236=Serial -InputList3Cue2237=Set Item 224 Icon Serial -InputList3SigType2237=Serial -InputList3Cue2238=Set Item 225 Icon Serial -InputList3SigType2238=Serial -InputList3Cue2239=Set Item 226 Icon Serial -InputList3SigType2239=Serial -InputList3Cue2240=Set Item 227 Icon Serial -InputList3SigType2240=Serial -InputList3Cue2241=Set Item 228 Icon Serial -InputList3SigType2241=Serial -InputList3Cue2242=Set Item 229 Icon Serial -InputList3SigType2242=Serial -InputList3Cue2243=Set Item 230 Icon Serial -InputList3SigType2243=Serial -InputList3Cue2244=Set Item 231 Icon Serial -InputList3SigType2244=Serial -InputList3Cue2245=Set Item 232 Icon Serial -InputList3SigType2245=Serial -InputList3Cue2246=Set Item 233 Icon Serial -InputList3SigType2246=Serial -InputList3Cue2247=Set Item 234 Icon Serial -InputList3SigType2247=Serial -InputList3Cue2248=Set Item 235 Icon Serial -InputList3SigType2248=Serial -InputList3Cue2249=Set Item 236 Icon Serial -InputList3SigType2249=Serial -InputList3Cue2250=Set Item 237 Icon Serial -InputList3SigType2250=Serial -InputList3Cue2251=Set Item 238 Icon Serial -InputList3SigType2251=Serial -InputList3Cue2252=Set Item 239 Icon Serial -InputList3SigType2252=Serial -InputList3Cue2253=Set Item 240 Icon Serial -InputList3SigType2253=Serial -InputList3Cue2254=Set Item 241 Icon Serial -InputList3SigType2254=Serial -InputList3Cue2255=Set Item 242 Icon Serial -InputList3SigType2255=Serial -InputList3Cue2256=Set Item 243 Icon Serial -InputList3SigType2256=Serial -InputList3Cue2257=Set Item 244 Icon Serial -InputList3SigType2257=Serial -InputList3Cue2258=Set Item 245 Icon Serial -InputList3SigType2258=Serial -InputList3Cue2259=Set Item 246 Icon Serial -InputList3SigType2259=Serial -InputList3Cue2260=Set Item 247 Icon Serial -InputList3SigType2260=Serial -InputList3Cue2261=Set Item 248 Icon Serial -InputList3SigType2261=Serial -InputList3Cue2262=Set Item 249 Icon Serial -InputList3SigType2262=Serial -InputList3Cue2263=Set Item 250 Icon Serial -InputList3SigType2263=Serial -InputList3Cue2264=Set Item 251 Icon Serial -InputList3SigType2264=Serial -InputList3Cue2265=Set Item 252 Icon Serial -InputList3SigType2265=Serial -InputList3Cue2266=Set Item 253 Icon Serial -InputList3SigType2266=Serial -InputList3Cue2267=Set Item 254 Icon Serial -InputList3SigType2267=Serial -InputList3Cue2268=Set Item 255 Icon Serial -InputList3SigType2268=Serial -InputList3Cue2269=[~UNUSED2~] -InputList3SigType2269=Digital|Analog|Serial|String -InputList3Cue4014=[~EndGroup~]Item Icons -InputList3SigType4014=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]Item Texts -OutputList3SigType11=Serial -OutputList3Cue12=[~UNUSED3~] -OutputList3SigType12=Serial -OutputList3Cue13=[~UNUSED3~] -OutputList3SigType13=Serial -OutputList3Cue14=[~UNUSED3~] -OutputList3SigType14=Serial -OutputList3Cue15=[~UNUSED3~] -OutputList3SigType15=Serial -OutputList3Cue16=[~UNUSED3~] -OutputList3SigType16=Serial -OutputList3Cue17=[~UNUSED3~] -OutputList3SigType17=Serial -OutputList3Cue18=[~UNUSED3~] -OutputList3SigType18=Serial -OutputList3Cue19=[~UNUSED3~] -OutputList3SigType19=Serial -OutputList3Cue20=[~UNUSED3~] -OutputList3SigType20=Serial -OutputList3Cue21=[~UNUSED3~] -OutputList3SigType21=Serial -OutputList3Cue22=[~UNUSED3~] -OutputList3SigType22=Serial -OutputList3Cue23=[~UNUSED3~] -OutputList3SigType23=Serial -OutputList3Cue24=[~UNUSED3~] -OutputList3SigType24=Serial -OutputList3Cue25=[~UNUSED3~] -OutputList3SigType25=Serial -OutputList3Cue26=[~UNUSED3~] -OutputList3SigType26=Serial -OutputList3Cue27=[~UNUSED3~] -OutputList3SigType27=Serial -OutputList3Cue28=[~UNUSED3~] -OutputList3SigType28=Serial -OutputList3Cue29=[~UNUSED3~] -OutputList3SigType29=Serial -OutputList3Cue30=[~UNUSED3~] -OutputList3SigType30=Serial -OutputList3Cue31=[~UNUSED3~] -OutputList3SigType31=Serial -OutputList3Cue32=[~UNUSED3~] -OutputList3SigType32=Serial -OutputList3Cue33=[~UNUSED3~] -OutputList3SigType33=Serial -OutputList3Cue34=[~UNUSED3~] -OutputList3SigType34=Serial -OutputList3Cue35=[~UNUSED3~] -OutputList3SigType35=Serial -OutputList3Cue36=[~UNUSED3~] -OutputList3SigType36=Serial -OutputList3Cue37=[~UNUSED3~] -OutputList3SigType37=Serial -OutputList3Cue38=[~UNUSED3~] -OutputList3SigType38=Serial -OutputList3Cue39=[~UNUSED3~] -OutputList3SigType39=Serial -OutputList3Cue40=[~UNUSED3~] -OutputList3SigType40=Serial -OutputList3Cue41=[~UNUSED3~] -OutputList3SigType41=Serial -OutputList3Cue42=[~UNUSED3~] -OutputList3SigType42=Serial -OutputList3Cue43=[~UNUSED3~] -OutputList3SigType43=Serial -OutputList3Cue44=[~UNUSED3~] -OutputList3SigType44=Serial -OutputList3Cue45=[~UNUSED3~] -OutputList3SigType45=Serial -OutputList3Cue46=[~UNUSED3~] -OutputList3SigType46=Serial -OutputList3Cue47=[~UNUSED3~] -OutputList3SigType47=Serial -OutputList3Cue48=[~UNUSED3~] -OutputList3SigType48=Serial -OutputList3Cue49=[~UNUSED3~] -OutputList3SigType49=Serial -OutputList3Cue50=[~UNUSED3~] -OutputList3SigType50=Serial -OutputList3Cue51=[~UNUSED3~] -OutputList3SigType51=Serial -OutputList3Cue52=[~UNUSED3~] -OutputList3SigType52=Serial -OutputList3Cue53=[~UNUSED3~] -OutputList3SigType53=Serial -OutputList3Cue54=[~UNUSED3~] -OutputList3SigType54=Serial -OutputList3Cue55=[~UNUSED3~] -OutputList3SigType55=Serial -OutputList3Cue56=[~UNUSED3~] -OutputList3SigType56=Serial -OutputList3Cue57=[~UNUSED3~] -OutputList3SigType57=Serial -OutputList3Cue58=[~UNUSED3~] -OutputList3SigType58=Serial -OutputList3Cue59=[~UNUSED3~] -OutputList3SigType59=Serial -OutputList3Cue60=[~UNUSED3~] -OutputList3SigType60=Serial -OutputList3Cue61=[~UNUSED3~] -OutputList3SigType61=Serial -OutputList3Cue62=[~UNUSED3~] -OutputList3SigType62=Serial -OutputList3Cue63=[~UNUSED3~] -OutputList3SigType63=Serial -OutputList3Cue64=[~UNUSED3~] -OutputList3SigType64=Serial -OutputList3Cue65=[~UNUSED3~] -OutputList3SigType65=Serial -OutputList3Cue66=[~UNUSED3~] -OutputList3SigType66=Serial -OutputList3Cue67=[~UNUSED3~] -OutputList3SigType67=Serial -OutputList3Cue68=[~UNUSED3~] -OutputList3SigType68=Serial -OutputList3Cue69=[~UNUSED3~] -OutputList3SigType69=Serial -OutputList3Cue70=[~UNUSED3~] -OutputList3SigType70=Serial -OutputList3Cue71=[~UNUSED3~] -OutputList3SigType71=Serial -OutputList3Cue72=[~UNUSED3~] -OutputList3SigType72=Serial -OutputList3Cue73=[~UNUSED3~] -OutputList3SigType73=Serial -OutputList3Cue74=[~UNUSED3~] -OutputList3SigType74=Serial -OutputList3Cue75=[~UNUSED3~] -OutputList3SigType75=Serial -OutputList3Cue76=[~UNUSED3~] -OutputList3SigType76=Serial -OutputList3Cue77=[~UNUSED3~] -OutputList3SigType77=Serial -OutputList3Cue78=[~UNUSED3~] -OutputList3SigType78=Serial -OutputList3Cue79=[~UNUSED3~] -OutputList3SigType79=Serial -OutputList3Cue80=[~UNUSED3~] -OutputList3SigType80=Serial -OutputList3Cue81=[~UNUSED3~] -OutputList3SigType81=Serial -OutputList3Cue82=[~UNUSED3~] -OutputList3SigType82=Serial -OutputList3Cue83=[~UNUSED3~] -OutputList3SigType83=Serial -OutputList3Cue84=[~UNUSED3~] -OutputList3SigType84=Serial -OutputList3Cue85=[~UNUSED3~] -OutputList3SigType85=Serial -OutputList3Cue86=[~UNUSED3~] -OutputList3SigType86=Serial -OutputList3Cue87=[~UNUSED3~] -OutputList3SigType87=Serial -OutputList3Cue88=[~UNUSED3~] -OutputList3SigType88=Serial -OutputList3Cue89=[~UNUSED3~] -OutputList3SigType89=Serial -OutputList3Cue90=[~UNUSED3~] -OutputList3SigType90=Serial -OutputList3Cue91=[~UNUSED3~] -OutputList3SigType91=Serial -OutputList3Cue92=[~UNUSED3~] -OutputList3SigType92=Serial -OutputList3Cue93=[~UNUSED3~] -OutputList3SigType93=Serial -OutputList3Cue94=[~UNUSED3~] -OutputList3SigType94=Serial -OutputList3Cue95=[~UNUSED3~] -OutputList3SigType95=Serial -OutputList3Cue96=[~UNUSED3~] -OutputList3SigType96=Serial -OutputList3Cue97=[~UNUSED3~] -OutputList3SigType97=Serial -OutputList3Cue98=[~UNUSED3~] -OutputList3SigType98=Serial -OutputList3Cue99=[~UNUSED3~] -OutputList3SigType99=Serial -OutputList3Cue100=[~UNUSED3~] -OutputList3SigType100=Serial -OutputList3Cue101=[~UNUSED3~] -OutputList3SigType101=Serial -OutputList3Cue102=[~UNUSED3~] -OutputList3SigType102=Serial -OutputList3Cue103=[~UNUSED3~] -OutputList3SigType103=Serial -OutputList3Cue104=[~UNUSED3~] -OutputList3SigType104=Serial -OutputList3Cue105=[~UNUSED3~] -OutputList3SigType105=Serial -OutputList3Cue106=[~UNUSED3~] -OutputList3SigType106=Serial -OutputList3Cue107=[~UNUSED3~] -OutputList3SigType107=Serial -OutputList3Cue108=[~UNUSED3~] -OutputList3SigType108=Serial -OutputList3Cue109=[~UNUSED3~] -OutputList3SigType109=Serial -OutputList3Cue110=[~UNUSED3~] -OutputList3SigType110=Serial -OutputList3Cue111=[~UNUSED3~] -OutputList3SigType111=Serial -OutputList3Cue112=[~UNUSED3~] -OutputList3SigType112=Serial -OutputList3Cue113=[~UNUSED3~] -OutputList3SigType113=Serial -OutputList3Cue114=[~UNUSED3~] -OutputList3SigType114=Serial -OutputList3Cue115=[~UNUSED3~] -OutputList3SigType115=Serial -OutputList3Cue116=[~UNUSED3~] -OutputList3SigType116=Serial -OutputList3Cue117=[~UNUSED3~] -OutputList3SigType117=Serial -OutputList3Cue118=[~UNUSED3~] -OutputList3SigType118=Serial -OutputList3Cue119=[~UNUSED3~] -OutputList3SigType119=Serial -OutputList3Cue120=[~UNUSED3~] -OutputList3SigType120=Serial -OutputList3Cue121=[~UNUSED3~] -OutputList3SigType121=Serial -OutputList3Cue122=[~UNUSED3~] -OutputList3SigType122=Serial -OutputList3Cue123=[~UNUSED3~] -OutputList3SigType123=Serial -OutputList3Cue124=[~UNUSED3~] -OutputList3SigType124=Serial -OutputList3Cue125=[~UNUSED3~] -OutputList3SigType125=Serial -OutputList3Cue126=[~UNUSED3~] -OutputList3SigType126=Serial -OutputList3Cue127=[~UNUSED3~] -OutputList3SigType127=Serial -OutputList3Cue128=[~UNUSED3~] -OutputList3SigType128=Serial -OutputList3Cue129=[~UNUSED3~] -OutputList3SigType129=Serial -OutputList3Cue130=[~UNUSED3~] -OutputList3SigType130=Serial -OutputList3Cue131=[~UNUSED3~] -OutputList3SigType131=Serial -OutputList3Cue132=[~UNUSED3~] -OutputList3SigType132=Serial -OutputList3Cue133=[~UNUSED3~] -OutputList3SigType133=Serial -OutputList3Cue134=[~UNUSED3~] -OutputList3SigType134=Serial -OutputList3Cue135=[~UNUSED3~] -OutputList3SigType135=Serial -OutputList3Cue136=[~UNUSED3~] -OutputList3SigType136=Serial -OutputList3Cue137=[~UNUSED3~] -OutputList3SigType137=Serial -OutputList3Cue138=[~UNUSED3~] -OutputList3SigType138=Serial -OutputList3Cue139=[~UNUSED3~] -OutputList3SigType139=Serial -OutputList3Cue140=[~UNUSED3~] -OutputList3SigType140=Serial -OutputList3Cue141=[~UNUSED3~] -OutputList3SigType141=Serial -OutputList3Cue142=[~UNUSED3~] -OutputList3SigType142=Serial -OutputList3Cue143=[~UNUSED3~] -OutputList3SigType143=Serial -OutputList3Cue144=[~UNUSED3~] -OutputList3SigType144=Serial -OutputList3Cue145=[~UNUSED3~] -OutputList3SigType145=Serial -OutputList3Cue146=[~UNUSED3~] -OutputList3SigType146=Serial -OutputList3Cue147=[~UNUSED3~] -OutputList3SigType147=Serial -OutputList3Cue148=[~UNUSED3~] -OutputList3SigType148=Serial -OutputList3Cue149=[~UNUSED3~] -OutputList3SigType149=Serial -OutputList3Cue150=[~UNUSED3~] -OutputList3SigType150=Serial -OutputList3Cue151=[~UNUSED3~] -OutputList3SigType151=Serial -OutputList3Cue152=[~UNUSED3~] -OutputList3SigType152=Serial -OutputList3Cue153=[~UNUSED3~] -OutputList3SigType153=Serial -OutputList3Cue154=[~UNUSED3~] -OutputList3SigType154=Serial -OutputList3Cue155=[~UNUSED3~] -OutputList3SigType155=Serial -OutputList3Cue156=[~UNUSED3~] -OutputList3SigType156=Serial -OutputList3Cue157=[~UNUSED3~] -OutputList3SigType157=Serial -OutputList3Cue158=[~UNUSED3~] -OutputList3SigType158=Serial -OutputList3Cue159=[~UNUSED3~] -OutputList3SigType159=Serial -OutputList3Cue160=[~UNUSED3~] -OutputList3SigType160=Serial -OutputList3Cue161=[~UNUSED3~] -OutputList3SigType161=Serial -OutputList3Cue162=[~UNUSED3~] -OutputList3SigType162=Serial -OutputList3Cue163=[~UNUSED3~] -OutputList3SigType163=Serial -OutputList3Cue164=[~UNUSED3~] -OutputList3SigType164=Serial -OutputList3Cue165=[~UNUSED3~] -OutputList3SigType165=Serial -OutputList3Cue166=[~UNUSED3~] -OutputList3SigType166=Serial -OutputList3Cue167=[~UNUSED3~] -OutputList3SigType167=Serial -OutputList3Cue168=[~UNUSED3~] -OutputList3SigType168=Serial -OutputList3Cue169=[~UNUSED3~] -OutputList3SigType169=Serial -OutputList3Cue170=[~UNUSED3~] -OutputList3SigType170=Serial -OutputList3Cue171=[~UNUSED3~] -OutputList3SigType171=Serial -OutputList3Cue172=[~UNUSED3~] -OutputList3SigType172=Serial -OutputList3Cue173=[~UNUSED3~] -OutputList3SigType173=Serial -OutputList3Cue174=[~UNUSED3~] -OutputList3SigType174=Serial -OutputList3Cue175=[~UNUSED3~] -OutputList3SigType175=Serial -OutputList3Cue176=[~UNUSED3~] -OutputList3SigType176=Serial -OutputList3Cue177=[~UNUSED3~] -OutputList3SigType177=Serial -OutputList3Cue178=[~UNUSED3~] -OutputList3SigType178=Serial -OutputList3Cue179=[~UNUSED3~] -OutputList3SigType179=Serial -OutputList3Cue180=[~UNUSED3~] -OutputList3SigType180=Serial -OutputList3Cue181=[~UNUSED3~] -OutputList3SigType181=Serial -OutputList3Cue182=[~UNUSED3~] -OutputList3SigType182=Serial -OutputList3Cue183=[~UNUSED3~] -OutputList3SigType183=Serial -OutputList3Cue184=[~UNUSED3~] -OutputList3SigType184=Serial -OutputList3Cue185=[~UNUSED3~] -OutputList3SigType185=Serial -OutputList3Cue186=[~UNUSED3~] -OutputList3SigType186=Serial -OutputList3Cue187=[~UNUSED3~] -OutputList3SigType187=Serial -OutputList3Cue188=[~UNUSED3~] -OutputList3SigType188=Serial -OutputList3Cue189=[~UNUSED3~] -OutputList3SigType189=Serial -OutputList3Cue190=[~UNUSED3~] -OutputList3SigType190=Serial -OutputList3Cue191=[~UNUSED3~] -OutputList3SigType191=Serial -OutputList3Cue192=[~UNUSED3~] -OutputList3SigType192=Serial -OutputList3Cue193=[~UNUSED3~] -OutputList3SigType193=Serial -OutputList3Cue194=[~UNUSED3~] -OutputList3SigType194=Serial -OutputList3Cue195=[~UNUSED3~] -OutputList3SigType195=Serial -OutputList3Cue196=[~UNUSED3~] -OutputList3SigType196=Serial -OutputList3Cue197=[~UNUSED3~] -OutputList3SigType197=Serial -OutputList3Cue198=[~UNUSED3~] -OutputList3SigType198=Serial -OutputList3Cue199=[~UNUSED3~] -OutputList3SigType199=Serial -OutputList3Cue200=[~UNUSED3~] -OutputList3SigType200=Serial -OutputList3Cue201=[~UNUSED3~] -OutputList3SigType201=Serial -OutputList3Cue202=[~UNUSED3~] -OutputList3SigType202=Serial -OutputList3Cue203=[~UNUSED3~] -OutputList3SigType203=Serial -OutputList3Cue204=[~UNUSED3~] -OutputList3SigType204=Serial -OutputList3Cue205=[~UNUSED3~] -OutputList3SigType205=Serial -OutputList3Cue206=[~UNUSED3~] -OutputList3SigType206=Serial -OutputList3Cue207=[~UNUSED3~] -OutputList3SigType207=Serial -OutputList3Cue208=[~UNUSED3~] -OutputList3SigType208=Serial -OutputList3Cue209=[~UNUSED3~] -OutputList3SigType209=Serial -OutputList3Cue210=[~UNUSED3~] -OutputList3SigType210=Serial -OutputList3Cue211=[~UNUSED3~] -OutputList3SigType211=Serial -OutputList3Cue212=[~UNUSED3~] -OutputList3SigType212=Serial -OutputList3Cue213=[~UNUSED3~] -OutputList3SigType213=Serial -OutputList3Cue214=[~UNUSED3~] -OutputList3SigType214=Serial -OutputList3Cue215=[~UNUSED3~] -OutputList3SigType215=Serial -OutputList3Cue216=[~UNUSED3~] -OutputList3SigType216=Serial -OutputList3Cue217=[~UNUSED3~] -OutputList3SigType217=Serial -OutputList3Cue218=[~UNUSED3~] -OutputList3SigType218=Serial -OutputList3Cue219=[~UNUSED3~] -OutputList3SigType219=Serial -OutputList3Cue220=[~UNUSED3~] -OutputList3SigType220=Serial -OutputList3Cue221=[~UNUSED3~] -OutputList3SigType221=Serial -OutputList3Cue222=[~UNUSED3~] -OutputList3SigType222=Serial -OutputList3Cue223=[~UNUSED3~] -OutputList3SigType223=Serial -OutputList3Cue224=[~UNUSED3~] -OutputList3SigType224=Serial -OutputList3Cue225=[~UNUSED3~] -OutputList3SigType225=Serial -OutputList3Cue226=[~UNUSED3~] -OutputList3SigType226=Serial -OutputList3Cue227=[~UNUSED3~] -OutputList3SigType227=Serial -OutputList3Cue228=[~UNUSED3~] -OutputList3SigType228=Serial -OutputList3Cue229=[~UNUSED3~] -OutputList3SigType229=Serial -OutputList3Cue230=[~UNUSED3~] -OutputList3SigType230=Serial -OutputList3Cue231=[~UNUSED3~] -OutputList3SigType231=Serial -OutputList3Cue232=[~UNUSED3~] -OutputList3SigType232=Serial -OutputList3Cue233=[~UNUSED3~] -OutputList3SigType233=Serial -OutputList3Cue234=[~UNUSED3~] -OutputList3SigType234=Serial -OutputList3Cue235=[~UNUSED3~] -OutputList3SigType235=Serial -OutputList3Cue236=[~UNUSED3~] -OutputList3SigType236=Serial -OutputList3Cue237=[~UNUSED3~] -OutputList3SigType237=Serial -OutputList3Cue238=[~UNUSED3~] -OutputList3SigType238=Serial -OutputList3Cue239=[~UNUSED3~] -OutputList3SigType239=Serial -OutputList3Cue240=[~UNUSED3~] -OutputList3SigType240=Serial -OutputList3Cue241=[~UNUSED3~] -OutputList3SigType241=Serial -OutputList3Cue242=[~UNUSED3~] -OutputList3SigType242=Serial -OutputList3Cue243=[~UNUSED3~] -OutputList3SigType243=Serial -OutputList3Cue244=[~UNUSED3~] -OutputList3SigType244=Serial -OutputList3Cue245=[~UNUSED3~] -OutputList3SigType245=Serial -OutputList3Cue246=[~UNUSED3~] -OutputList3SigType246=Serial -OutputList3Cue247=[~UNUSED3~] -OutputList3SigType247=Serial -OutputList3Cue248=[~UNUSED3~] -OutputList3SigType248=Serial -OutputList3Cue249=[~UNUSED3~] -OutputList3SigType249=Serial -OutputList3Cue250=[~UNUSED3~] -OutputList3SigType250=Serial -OutputList3Cue251=[~UNUSED3~] -OutputList3SigType251=Serial -OutputList3Cue252=[~UNUSED3~] -OutputList3SigType252=Serial -OutputList3Cue253=[~UNUSED3~] -OutputList3SigType253=Serial -OutputList3Cue254=[~UNUSED3~] -OutputList3SigType254=Serial -OutputList3Cue255=[~UNUSED3~] -OutputList3SigType255=Serial -OutputList3Cue256=[~UNUSED3~] -OutputList3SigType256=Serial -OutputList3Cue257=[~UNUSED3~] -OutputList3SigType257=Serial -OutputList3Cue258=[~UNUSED3~] -OutputList3SigType258=Serial -OutputList3Cue259=[~UNUSED3~] -OutputList3SigType259=Serial -OutputList3Cue260=[~UNUSED3~] -OutputList3SigType260=Serial -OutputList3Cue261=[~UNUSED3~] -OutputList3SigType261=Serial -OutputList3Cue262=[~UNUSED3~] -OutputList3SigType262=Serial -OutputList3Cue263=[~UNUSED3~] -OutputList3SigType263=Serial -OutputList3Cue264=[~UNUSED3~] -OutputList3SigType264=Serial -OutputList3Cue265=[~UNUSED3~] -OutputList3SigType265=Serial -OutputList3Cue266=[~UNUSED3~] -OutputList3SigType266=Serial -OutputList3Cue267=[~UNUSED2~] -OutputList3SigType267=Digital|Analog|Serial|String -OutputList3Cue2012=[~EndGroup~]Item Texts -OutputList3SigType2012=Serial -OutputList3Cue2013=[~BeginGroup~]Item Icons -OutputList3SigType2013=Serial -OutputList3Cue2014=[~UNUSED3~] -OutputList3SigType2014=Serial -OutputList3Cue2015=[~UNUSED3~] -OutputList3SigType2015=Serial -OutputList3Cue2016=[~UNUSED3~] -OutputList3SigType2016=Serial -OutputList3Cue2017=[~UNUSED3~] -OutputList3SigType2017=Serial -OutputList3Cue2018=[~UNUSED3~] -OutputList3SigType2018=Serial -OutputList3Cue2019=[~UNUSED3~] -OutputList3SigType2019=Serial -OutputList3Cue2020=[~UNUSED3~] -OutputList3SigType2020=Serial -OutputList3Cue2021=[~UNUSED3~] -OutputList3SigType2021=Serial -OutputList3Cue2022=[~UNUSED3~] -OutputList3SigType2022=Serial -OutputList3Cue2023=[~UNUSED3~] -OutputList3SigType2023=Serial -OutputList3Cue2024=[~UNUSED3~] -OutputList3SigType2024=Serial -OutputList3Cue2025=[~UNUSED3~] -OutputList3SigType2025=Serial -OutputList3Cue2026=[~UNUSED3~] -OutputList3SigType2026=Serial -OutputList3Cue2027=[~UNUSED3~] -OutputList3SigType2027=Serial -OutputList3Cue2028=[~UNUSED3~] -OutputList3SigType2028=Serial -OutputList3Cue2029=[~UNUSED3~] -OutputList3SigType2029=Serial -OutputList3Cue2030=[~UNUSED3~] -OutputList3SigType2030=Serial -OutputList3Cue2031=[~UNUSED3~] -OutputList3SigType2031=Serial -OutputList3Cue2032=[~UNUSED3~] -OutputList3SigType2032=Serial -OutputList3Cue2033=[~UNUSED3~] -OutputList3SigType2033=Serial -OutputList3Cue2034=[~UNUSED3~] -OutputList3SigType2034=Serial -OutputList3Cue2035=[~UNUSED3~] -OutputList3SigType2035=Serial -OutputList3Cue2036=[~UNUSED3~] -OutputList3SigType2036=Serial -OutputList3Cue2037=[~UNUSED3~] -OutputList3SigType2037=Serial -OutputList3Cue2038=[~UNUSED3~] -OutputList3SigType2038=Serial -OutputList3Cue2039=[~UNUSED3~] -OutputList3SigType2039=Serial -OutputList3Cue2040=[~UNUSED3~] -OutputList3SigType2040=Serial -OutputList3Cue2041=[~UNUSED3~] -OutputList3SigType2041=Serial -OutputList3Cue2042=[~UNUSED3~] -OutputList3SigType2042=Serial -OutputList3Cue2043=[~UNUSED3~] -OutputList3SigType2043=Serial -OutputList3Cue2044=[~UNUSED3~] -OutputList3SigType2044=Serial -OutputList3Cue2045=[~UNUSED3~] -OutputList3SigType2045=Serial -OutputList3Cue2046=[~UNUSED3~] -OutputList3SigType2046=Serial -OutputList3Cue2047=[~UNUSED3~] -OutputList3SigType2047=Serial -OutputList3Cue2048=[~UNUSED3~] -OutputList3SigType2048=Serial -OutputList3Cue2049=[~UNUSED3~] -OutputList3SigType2049=Serial -OutputList3Cue2050=[~UNUSED3~] -OutputList3SigType2050=Serial -OutputList3Cue2051=[~UNUSED3~] -OutputList3SigType2051=Serial -OutputList3Cue2052=[~UNUSED3~] -OutputList3SigType2052=Serial -OutputList3Cue2053=[~UNUSED3~] -OutputList3SigType2053=Serial -OutputList3Cue2054=[~UNUSED3~] -OutputList3SigType2054=Serial -OutputList3Cue2055=[~UNUSED3~] -OutputList3SigType2055=Serial -OutputList3Cue2056=[~UNUSED3~] -OutputList3SigType2056=Serial -OutputList3Cue2057=[~UNUSED3~] -OutputList3SigType2057=Serial -OutputList3Cue2058=[~UNUSED3~] -OutputList3SigType2058=Serial -OutputList3Cue2059=[~UNUSED3~] -OutputList3SigType2059=Serial -OutputList3Cue2060=[~UNUSED3~] -OutputList3SigType2060=Serial -OutputList3Cue2061=[~UNUSED3~] -OutputList3SigType2061=Serial -OutputList3Cue2062=[~UNUSED3~] -OutputList3SigType2062=Serial -OutputList3Cue2063=[~UNUSED3~] -OutputList3SigType2063=Serial -OutputList3Cue2064=[~UNUSED3~] -OutputList3SigType2064=Serial -OutputList3Cue2065=[~UNUSED3~] -OutputList3SigType2065=Serial -OutputList3Cue2066=[~UNUSED3~] -OutputList3SigType2066=Serial -OutputList3Cue2067=[~UNUSED3~] -OutputList3SigType2067=Serial -OutputList3Cue2068=[~UNUSED3~] -OutputList3SigType2068=Serial -OutputList3Cue2069=[~UNUSED3~] -OutputList3SigType2069=Serial -OutputList3Cue2070=[~UNUSED3~] -OutputList3SigType2070=Serial -OutputList3Cue2071=[~UNUSED3~] -OutputList3SigType2071=Serial -OutputList3Cue2072=[~UNUSED3~] -OutputList3SigType2072=Serial -OutputList3Cue2073=[~UNUSED3~] -OutputList3SigType2073=Serial -OutputList3Cue2074=[~UNUSED3~] -OutputList3SigType2074=Serial -OutputList3Cue2075=[~UNUSED3~] -OutputList3SigType2075=Serial -OutputList3Cue2076=[~UNUSED3~] -OutputList3SigType2076=Serial -OutputList3Cue2077=[~UNUSED3~] -OutputList3SigType2077=Serial -OutputList3Cue2078=[~UNUSED3~] -OutputList3SigType2078=Serial -OutputList3Cue2079=[~UNUSED3~] -OutputList3SigType2079=Serial -OutputList3Cue2080=[~UNUSED3~] -OutputList3SigType2080=Serial -OutputList3Cue2081=[~UNUSED3~] -OutputList3SigType2081=Serial -OutputList3Cue2082=[~UNUSED3~] -OutputList3SigType2082=Serial -OutputList3Cue2083=[~UNUSED3~] -OutputList3SigType2083=Serial -OutputList3Cue2084=[~UNUSED3~] -OutputList3SigType2084=Serial -OutputList3Cue2085=[~UNUSED3~] -OutputList3SigType2085=Serial -OutputList3Cue2086=[~UNUSED3~] -OutputList3SigType2086=Serial -OutputList3Cue2087=[~UNUSED3~] -OutputList3SigType2087=Serial -OutputList3Cue2088=[~UNUSED3~] -OutputList3SigType2088=Serial -OutputList3Cue2089=[~UNUSED3~] -OutputList3SigType2089=Serial -OutputList3Cue2090=[~UNUSED3~] -OutputList3SigType2090=Serial -OutputList3Cue2091=[~UNUSED3~] -OutputList3SigType2091=Serial -OutputList3Cue2092=[~UNUSED3~] -OutputList3SigType2092=Serial -OutputList3Cue2093=[~UNUSED3~] -OutputList3SigType2093=Serial -OutputList3Cue2094=[~UNUSED3~] -OutputList3SigType2094=Serial -OutputList3Cue2095=[~UNUSED3~] -OutputList3SigType2095=Serial -OutputList3Cue2096=[~UNUSED3~] -OutputList3SigType2096=Serial -OutputList3Cue2097=[~UNUSED3~] -OutputList3SigType2097=Serial -OutputList3Cue2098=[~UNUSED3~] -OutputList3SigType2098=Serial -OutputList3Cue2099=[~UNUSED3~] -OutputList3SigType2099=Serial -OutputList3Cue2100=[~UNUSED3~] -OutputList3SigType2100=Serial -OutputList3Cue2101=[~UNUSED3~] -OutputList3SigType2101=Serial -OutputList3Cue2102=[~UNUSED3~] -OutputList3SigType2102=Serial -OutputList3Cue2103=[~UNUSED3~] -OutputList3SigType2103=Serial -OutputList3Cue2104=[~UNUSED3~] -OutputList3SigType2104=Serial -OutputList3Cue2105=[~UNUSED3~] -OutputList3SigType2105=Serial -OutputList3Cue2106=[~UNUSED3~] -OutputList3SigType2106=Serial -OutputList3Cue2107=[~UNUSED3~] -OutputList3SigType2107=Serial -OutputList3Cue2108=[~UNUSED3~] -OutputList3SigType2108=Serial -OutputList3Cue2109=[~UNUSED3~] -OutputList3SigType2109=Serial -OutputList3Cue2110=[~UNUSED3~] -OutputList3SigType2110=Serial -OutputList3Cue2111=[~UNUSED3~] -OutputList3SigType2111=Serial -OutputList3Cue2112=[~UNUSED3~] -OutputList3SigType2112=Serial -OutputList3Cue2113=[~UNUSED3~] -OutputList3SigType2113=Serial -OutputList3Cue2114=[~UNUSED3~] -OutputList3SigType2114=Serial -OutputList3Cue2115=[~UNUSED3~] -OutputList3SigType2115=Serial -OutputList3Cue2116=[~UNUSED3~] -OutputList3SigType2116=Serial -OutputList3Cue2117=[~UNUSED3~] -OutputList3SigType2117=Serial -OutputList3Cue2118=[~UNUSED3~] -OutputList3SigType2118=Serial -OutputList3Cue2119=[~UNUSED3~] -OutputList3SigType2119=Serial -OutputList3Cue2120=[~UNUSED3~] -OutputList3SigType2120=Serial -OutputList3Cue2121=[~UNUSED3~] -OutputList3SigType2121=Serial -OutputList3Cue2122=[~UNUSED3~] -OutputList3SigType2122=Serial -OutputList3Cue2123=[~UNUSED3~] -OutputList3SigType2123=Serial -OutputList3Cue2124=[~UNUSED3~] -OutputList3SigType2124=Serial -OutputList3Cue2125=[~UNUSED3~] -OutputList3SigType2125=Serial -OutputList3Cue2126=[~UNUSED3~] -OutputList3SigType2126=Serial -OutputList3Cue2127=[~UNUSED3~] -OutputList3SigType2127=Serial -OutputList3Cue2128=[~UNUSED3~] -OutputList3SigType2128=Serial -OutputList3Cue2129=[~UNUSED3~] -OutputList3SigType2129=Serial -OutputList3Cue2130=[~UNUSED3~] -OutputList3SigType2130=Serial -OutputList3Cue2131=[~UNUSED3~] -OutputList3SigType2131=Serial -OutputList3Cue2132=[~UNUSED3~] -OutputList3SigType2132=Serial -OutputList3Cue2133=[~UNUSED3~] -OutputList3SigType2133=Serial -OutputList3Cue2134=[~UNUSED3~] -OutputList3SigType2134=Serial -OutputList3Cue2135=[~UNUSED3~] -OutputList3SigType2135=Serial -OutputList3Cue2136=[~UNUSED3~] -OutputList3SigType2136=Serial -OutputList3Cue2137=[~UNUSED3~] -OutputList3SigType2137=Serial -OutputList3Cue2138=[~UNUSED3~] -OutputList3SigType2138=Serial -OutputList3Cue2139=[~UNUSED3~] -OutputList3SigType2139=Serial -OutputList3Cue2140=[~UNUSED3~] -OutputList3SigType2140=Serial -OutputList3Cue2141=[~UNUSED3~] -OutputList3SigType2141=Serial -OutputList3Cue2142=[~UNUSED3~] -OutputList3SigType2142=Serial -OutputList3Cue2143=[~UNUSED3~] -OutputList3SigType2143=Serial -OutputList3Cue2144=[~UNUSED3~] -OutputList3SigType2144=Serial -OutputList3Cue2145=[~UNUSED3~] -OutputList3SigType2145=Serial -OutputList3Cue2146=[~UNUSED3~] -OutputList3SigType2146=Serial -OutputList3Cue2147=[~UNUSED3~] -OutputList3SigType2147=Serial -OutputList3Cue2148=[~UNUSED3~] -OutputList3SigType2148=Serial -OutputList3Cue2149=[~UNUSED3~] -OutputList3SigType2149=Serial -OutputList3Cue2150=[~UNUSED3~] -OutputList3SigType2150=Serial -OutputList3Cue2151=[~UNUSED3~] -OutputList3SigType2151=Serial -OutputList3Cue2152=[~UNUSED3~] -OutputList3SigType2152=Serial -OutputList3Cue2153=[~UNUSED3~] -OutputList3SigType2153=Serial -OutputList3Cue2154=[~UNUSED3~] -OutputList3SigType2154=Serial -OutputList3Cue2155=[~UNUSED3~] -OutputList3SigType2155=Serial -OutputList3Cue2156=[~UNUSED3~] -OutputList3SigType2156=Serial -OutputList3Cue2157=[~UNUSED3~] -OutputList3SigType2157=Serial -OutputList3Cue2158=[~UNUSED3~] -OutputList3SigType2158=Serial -OutputList3Cue2159=[~UNUSED3~] -OutputList3SigType2159=Serial -OutputList3Cue2160=[~UNUSED3~] -OutputList3SigType2160=Serial -OutputList3Cue2161=[~UNUSED3~] -OutputList3SigType2161=Serial -OutputList3Cue2162=[~UNUSED3~] -OutputList3SigType2162=Serial -OutputList3Cue2163=[~UNUSED3~] -OutputList3SigType2163=Serial -OutputList3Cue2164=[~UNUSED3~] -OutputList3SigType2164=Serial -OutputList3Cue2165=[~UNUSED3~] -OutputList3SigType2165=Serial -OutputList3Cue2166=[~UNUSED3~] -OutputList3SigType2166=Serial -OutputList3Cue2167=[~UNUSED3~] -OutputList3SigType2167=Serial -OutputList3Cue2168=[~UNUSED3~] -OutputList3SigType2168=Serial -OutputList3Cue2169=[~UNUSED3~] -OutputList3SigType2169=Serial -OutputList3Cue2170=[~UNUSED3~] -OutputList3SigType2170=Serial -OutputList3Cue2171=[~UNUSED3~] -OutputList3SigType2171=Serial -OutputList3Cue2172=[~UNUSED3~] -OutputList3SigType2172=Serial -OutputList3Cue2173=[~UNUSED3~] -OutputList3SigType2173=Serial -OutputList3Cue2174=[~UNUSED3~] -OutputList3SigType2174=Serial -OutputList3Cue2175=[~UNUSED3~] -OutputList3SigType2175=Serial -OutputList3Cue2176=[~UNUSED3~] -OutputList3SigType2176=Serial -OutputList3Cue2177=[~UNUSED3~] -OutputList3SigType2177=Serial -OutputList3Cue2178=[~UNUSED3~] -OutputList3SigType2178=Serial -OutputList3Cue2179=[~UNUSED3~] -OutputList3SigType2179=Serial -OutputList3Cue2180=[~UNUSED3~] -OutputList3SigType2180=Serial -OutputList3Cue2181=[~UNUSED3~] -OutputList3SigType2181=Serial -OutputList3Cue2182=[~UNUSED3~] -OutputList3SigType2182=Serial -OutputList3Cue2183=[~UNUSED3~] -OutputList3SigType2183=Serial -OutputList3Cue2184=[~UNUSED3~] -OutputList3SigType2184=Serial -OutputList3Cue2185=[~UNUSED3~] -OutputList3SigType2185=Serial -OutputList3Cue2186=[~UNUSED3~] -OutputList3SigType2186=Serial -OutputList3Cue2187=[~UNUSED3~] -OutputList3SigType2187=Serial -OutputList3Cue2188=[~UNUSED3~] -OutputList3SigType2188=Serial -OutputList3Cue2189=[~UNUSED3~] -OutputList3SigType2189=Serial -OutputList3Cue2190=[~UNUSED3~] -OutputList3SigType2190=Serial -OutputList3Cue2191=[~UNUSED3~] -OutputList3SigType2191=Serial -OutputList3Cue2192=[~UNUSED3~] -OutputList3SigType2192=Serial -OutputList3Cue2193=[~UNUSED3~] -OutputList3SigType2193=Serial -OutputList3Cue2194=[~UNUSED3~] -OutputList3SigType2194=Serial -OutputList3Cue2195=[~UNUSED3~] -OutputList3SigType2195=Serial -OutputList3Cue2196=[~UNUSED3~] -OutputList3SigType2196=Serial -OutputList3Cue2197=[~UNUSED3~] -OutputList3SigType2197=Serial -OutputList3Cue2198=[~UNUSED3~] -OutputList3SigType2198=Serial -OutputList3Cue2199=[~UNUSED3~] -OutputList3SigType2199=Serial -OutputList3Cue2200=[~UNUSED3~] -OutputList3SigType2200=Serial -OutputList3Cue2201=[~UNUSED3~] -OutputList3SigType2201=Serial -OutputList3Cue2202=[~UNUSED3~] -OutputList3SigType2202=Serial -OutputList3Cue2203=[~UNUSED3~] -OutputList3SigType2203=Serial -OutputList3Cue2204=[~UNUSED3~] -OutputList3SigType2204=Serial -OutputList3Cue2205=[~UNUSED3~] -OutputList3SigType2205=Serial -OutputList3Cue2206=[~UNUSED3~] -OutputList3SigType2206=Serial -OutputList3Cue2207=[~UNUSED3~] -OutputList3SigType2207=Serial -OutputList3Cue2208=[~UNUSED3~] -OutputList3SigType2208=Serial -OutputList3Cue2209=[~UNUSED3~] -OutputList3SigType2209=Serial -OutputList3Cue2210=[~UNUSED3~] -OutputList3SigType2210=Serial -OutputList3Cue2211=[~UNUSED3~] -OutputList3SigType2211=Serial -OutputList3Cue2212=[~UNUSED3~] -OutputList3SigType2212=Serial -OutputList3Cue2213=[~UNUSED3~] -OutputList3SigType2213=Serial -OutputList3Cue2214=[~UNUSED3~] -OutputList3SigType2214=Serial -OutputList3Cue2215=[~UNUSED3~] -OutputList3SigType2215=Serial -OutputList3Cue2216=[~UNUSED3~] -OutputList3SigType2216=Serial -OutputList3Cue2217=[~UNUSED3~] -OutputList3SigType2217=Serial -OutputList3Cue2218=[~UNUSED3~] -OutputList3SigType2218=Serial -OutputList3Cue2219=[~UNUSED3~] -OutputList3SigType2219=Serial -OutputList3Cue2220=[~UNUSED3~] -OutputList3SigType2220=Serial -OutputList3Cue2221=[~UNUSED3~] -OutputList3SigType2221=Serial -OutputList3Cue2222=[~UNUSED3~] -OutputList3SigType2222=Serial -OutputList3Cue2223=[~UNUSED3~] -OutputList3SigType2223=Serial -OutputList3Cue2224=[~UNUSED3~] -OutputList3SigType2224=Serial -OutputList3Cue2225=[~UNUSED3~] -OutputList3SigType2225=Serial -OutputList3Cue2226=[~UNUSED3~] -OutputList3SigType2226=Serial -OutputList3Cue2227=[~UNUSED3~] -OutputList3SigType2227=Serial -OutputList3Cue2228=[~UNUSED3~] -OutputList3SigType2228=Serial -OutputList3Cue2229=[~UNUSED3~] -OutputList3SigType2229=Serial -OutputList3Cue2230=[~UNUSED3~] -OutputList3SigType2230=Serial -OutputList3Cue2231=[~UNUSED3~] -OutputList3SigType2231=Serial -OutputList3Cue2232=[~UNUSED3~] -OutputList3SigType2232=Serial -OutputList3Cue2233=[~UNUSED3~] -OutputList3SigType2233=Serial -OutputList3Cue2234=[~UNUSED3~] -OutputList3SigType2234=Serial -OutputList3Cue2235=[~UNUSED3~] -OutputList3SigType2235=Serial -OutputList3Cue2236=[~UNUSED3~] -OutputList3SigType2236=Serial -OutputList3Cue2237=[~UNUSED3~] -OutputList3SigType2237=Serial -OutputList3Cue2238=[~UNUSED3~] -OutputList3SigType2238=Serial -OutputList3Cue2239=[~UNUSED3~] -OutputList3SigType2239=Serial -OutputList3Cue2240=[~UNUSED3~] -OutputList3SigType2240=Serial -OutputList3Cue2241=[~UNUSED3~] -OutputList3SigType2241=Serial -OutputList3Cue2242=[~UNUSED3~] -OutputList3SigType2242=Serial -OutputList3Cue2243=[~UNUSED3~] -OutputList3SigType2243=Serial -OutputList3Cue2244=[~UNUSED3~] -OutputList3SigType2244=Serial -OutputList3Cue2245=[~UNUSED3~] -OutputList3SigType2245=Serial -OutputList3Cue2246=[~UNUSED3~] -OutputList3SigType2246=Serial -OutputList3Cue2247=[~UNUSED3~] -OutputList3SigType2247=Serial -OutputList3Cue2248=[~UNUSED3~] -OutputList3SigType2248=Serial -OutputList3Cue2249=[~UNUSED3~] -OutputList3SigType2249=Serial -OutputList3Cue2250=[~UNUSED3~] -OutputList3SigType2250=Serial -OutputList3Cue2251=[~UNUSED3~] -OutputList3SigType2251=Serial -OutputList3Cue2252=[~UNUSED3~] -OutputList3SigType2252=Serial -OutputList3Cue2253=[~UNUSED3~] -OutputList3SigType2253=Serial -OutputList3Cue2254=[~UNUSED3~] -OutputList3SigType2254=Serial -OutputList3Cue2255=[~UNUSED3~] -OutputList3SigType2255=Serial -OutputList3Cue2256=[~UNUSED3~] -OutputList3SigType2256=Serial -OutputList3Cue2257=[~UNUSED3~] -OutputList3SigType2257=Serial -OutputList3Cue2258=[~UNUSED3~] -OutputList3SigType2258=Serial -OutputList3Cue2259=[~UNUSED3~] -OutputList3SigType2259=Serial -OutputList3Cue2260=[~UNUSED3~] -OutputList3SigType2260=Serial -OutputList3Cue2261=[~UNUSED3~] -OutputList3SigType2261=Serial -OutputList3Cue2262=[~UNUSED3~] -OutputList3SigType2262=Serial -OutputList3Cue2263=[~UNUSED3~] -OutputList3SigType2263=Serial -OutputList3Cue2264=[~UNUSED3~] -OutputList3SigType2264=Serial -OutputList3Cue2265=[~UNUSED3~] -OutputList3SigType2265=Serial -OutputList3Cue2266=[~UNUSED3~] -OutputList3SigType2266=Serial -OutputList3Cue2267=[~UNUSED3~] -OutputList3SigType2267=Serial -OutputList3Cue2268=[~UNUSED3~] -OutputList3SigType2268=Serial -OutputList3Cue2269=[~UNUSED2~] -OutputList3SigType2269=Digital|Analog|Serial|String -OutputList3Cue4014=[~EndGroup~]Item Icons -OutputList3SigType4014=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=2 -CedH=2 -SmartObjId=1202d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=2 -Tp=1 -HD=TRUE -DV=1202d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=2 -Name=PepperDash Essentials TSW-760_[D.VC] Directory_Directory List.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[D.VC] Keypad with favorites_VC DTMF Keypad.ced -Hint=VC DTMF Keypad (Smart Object ID=1201) -Code=3 -SGControlType=Simple Keypad -SGControlName=VC DTMF Keypad -GUID=B4D53525-26EF-4326-8234-1D53F6E9BF04 -SmplCName=PepperDash Essentials TSW-760_[D.VC] Keypad with favorites_VC DTMF Keypad.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10061 -;Define the number of inputs, outputs and parameters -MinVariableInputs=12 -MaxVariableInputs=12 -MinVariableOutputs=12 -MaxVariableOutputs=12 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=1 -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=2 -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=3 -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=4 -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=5 -OutputSigType5=Digital -InputCue6=[~UNUSED3~] -InputSigType6=Digital -OutputCue6=6 -OutputSigType6=Digital -InputCue7=[~UNUSED3~] -InputSigType7=Digital -OutputCue7=7 -OutputSigType7=Digital -InputCue8=[~UNUSED3~] -InputSigType8=Digital -OutputCue8=8 -OutputSigType8=Digital -InputCue9=[~UNUSED3~] -InputSigType9=Digital -OutputCue9=9 -OutputSigType9=Digital -InputCue10=[~UNUSED3~] -InputSigType10=Digital -OutputCue10=0 -OutputSigType10=Digital -InputCue11=[~UNUSED3~] -InputSigType11=Digital -OutputCue11=* -OutputSigType11=Digital -InputCue12=[~UNUSED3~] -InputSigType12=Digital -OutputCue12=/# -OutputSigType12=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=3 -CedH=3 -SmartObjId=1201d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=3 -Tp=1 -HD=TRUE -DV=1201d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=3 -Name=PepperDash Essentials TSW-760_[D.VC] Keypad with favorites_VC DTMF Keypad.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[Z.Dialogs] PIN_PIN Keypad.ced -Hint=PIN Keypad (Smart Object ID=3903) -Code=4 -SGControlType=Simple Keypad -SGControlName=PIN Keypad -GUID=D85E5DFB-DE45-45FE-93C5-2FA177B68BFB -SmplCName=PepperDash Essentials TSW-760_[Z.Dialogs] PIN_PIN Keypad.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10061 -;Define the number of inputs, outputs and parameters -MinVariableInputs=12 -MaxVariableInputs=12 -MinVariableOutputs=12 -MaxVariableOutputs=12 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=1 -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=2 -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=3 -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=4 -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=5 -OutputSigType5=Digital -InputCue6=[~UNUSED3~] -InputSigType6=Digital -OutputCue6=6 -OutputSigType6=Digital -InputCue7=[~UNUSED3~] -InputSigType7=Digital -OutputCue7=7 -OutputSigType7=Digital -InputCue8=[~UNUSED3~] -InputSigType8=Digital -OutputCue8=8 -OutputSigType8=Digital -InputCue9=[~UNUSED3~] -InputSigType9=Digital -OutputCue9=9 -OutputSigType9=Digital -InputCue10=[~UNUSED3~] -InputSigType10=Digital -OutputCue10=0 -OutputSigType10=Digital -InputCue11=[~UNUSED3~] -InputSigType11=Digital -OutputCue11=Misc_1 -OutputSigType11=Digital -InputCue12=[~UNUSED3~] -InputSigType12=Digital -OutputCue12=Misc_2 -OutputSigType12=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=4 -CedH=4 -SmartObjId=3903d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=4 -Tp=1 -HD=TRUE -DV=3903d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=4 -Name=PepperDash Essentials TSW-760_[Z.Dialogs] PIN_PIN Keypad.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[E.Technician Controls] Sys Status_Subpage Reference List Vertical_3.ced -Hint=Subpage Reference List Vertical_3 (Smart Object ID=3902) -Code=5 -SGControlType=Subpage Reference List Vertical -SGControlName=Subpage Reference List Vertical_3 -GUID=3490D547-0B98-444B-A284-D6C1BAB2FDCE -SmplCName=PepperDash Essentials TSW-760_[E.Technician Controls] Sys Status_Subpage Reference List Vertical_3.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4076 -MaxVariableInputs=4076 -MinVariableOutputs=4076 -MaxVariableOutputs=4076 -NumFixedParams=1 -MinVariableInputsList2=72 -MaxVariableInputsList2=72 -MinVariableOutputsList2=72 -MaxVariableOutputsList2=72 -MinVariableInputsList3=72 -MaxVariableInputsList3=72 -MinVariableOutputsList3=72 -MaxVariableOutputsList3=72 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=Item 13 Enable -InputSigType24=Digital -InputCue25=Item 14 Enable -InputSigType25=Digital -InputCue26=Item 15 Enable -InputSigType26=Digital -InputCue27=Item 16 Enable -InputSigType27=Digital -InputCue28=Item 17 Enable -InputSigType28=Digital -InputCue29=Item 18 Enable -InputSigType29=Digital -InputCue30=Item 19 Enable -InputSigType30=Digital -InputCue31=Item 20 Enable -InputSigType31=Digital -InputCue32=[~UNUSED2~] -InputSigType32=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=Item 13 Visible -InputSigType2026=Digital -InputCue2027=Item 14 Visible -InputSigType2027=Digital -InputCue2028=Item 15 Visible -InputSigType2028=Digital -InputCue2029=Item 16 Visible -InputSigType2029=Digital -InputCue2030=Item 17 Visible -InputSigType2030=Digital -InputCue2031=Item 18 Visible -InputSigType2031=Digital -InputCue2032=Item 19 Visible -InputSigType2032=Digital -InputCue2033=Item 20 Visible -InputSigType2033=Digital -InputCue2034=[~UNUSED2~] -InputSigType2034=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=[~EndGroup~]fb -InputSigType4076=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED3~] -OutputSigType24=Digital -OutputCue25=[~UNUSED3~] -OutputSigType25=Digital -OutputCue26=[~UNUSED3~] -OutputSigType26=Digital -OutputCue27=[~UNUSED3~] -OutputSigType27=Digital -OutputCue28=[~UNUSED3~] -OutputSigType28=Digital -OutputCue29=[~UNUSED3~] -OutputSigType29=Digital -OutputCue30=[~UNUSED3~] -OutputSigType30=Digital -OutputCue31=[~UNUSED3~] -OutputSigType31=Digital -OutputCue32=[~UNUSED2~] -OutputSigType32=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED2~] -OutputSigType2034=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=[~EndGroup~]Press -OutputSigType4076=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=an_fb13 -InputList2SigType24=Analog -InputList2Cue25=an_fb14 -InputList2SigType25=Analog -InputList2Cue26=an_fb15 -InputList2SigType26=Analog -InputList2Cue27=an_fb16 -InputList2SigType27=Analog -InputList2Cue28=an_fb17 -InputList2SigType28=Analog -InputList2Cue29=an_fb18 -InputList2SigType29=Analog -InputList2Cue30=an_fb19 -InputList2SigType30=Analog -InputList2Cue31=an_fb20 -InputList2SigType31=Analog -InputList2Cue32=an_fb21 -InputList2SigType32=Analog -InputList2Cue33=an_fb22 -InputList2SigType33=Analog -InputList2Cue34=an_fb23 -InputList2SigType34=Analog -InputList2Cue35=an_fb24 -InputList2SigType35=Analog -InputList2Cue36=an_fb25 -InputList2SigType36=Analog -InputList2Cue37=an_fb26 -InputList2SigType37=Analog -InputList2Cue38=an_fb27 -InputList2SigType38=Analog -InputList2Cue39=an_fb28 -InputList2SigType39=Analog -InputList2Cue40=an_fb29 -InputList2SigType40=Analog -InputList2Cue41=an_fb30 -InputList2SigType41=Analog -InputList2Cue42=an_fb31 -InputList2SigType42=Analog -InputList2Cue43=an_fb32 -InputList2SigType43=Analog -InputList2Cue44=an_fb33 -InputList2SigType44=Analog -InputList2Cue45=an_fb34 -InputList2SigType45=Analog -InputList2Cue46=an_fb35 -InputList2SigType46=Analog -InputList2Cue47=an_fb36 -InputList2SigType47=Analog -InputList2Cue48=an_fb37 -InputList2SigType48=Analog -InputList2Cue49=an_fb38 -InputList2SigType49=Analog -InputList2Cue50=an_fb39 -InputList2SigType50=Analog -InputList2Cue51=an_fb40 -InputList2SigType51=Analog -InputList2Cue52=an_fb41 -InputList2SigType52=Analog -InputList2Cue53=an_fb42 -InputList2SigType53=Analog -InputList2Cue54=an_fb43 -InputList2SigType54=Analog -InputList2Cue55=an_fb44 -InputList2SigType55=Analog -InputList2Cue56=an_fb45 -InputList2SigType56=Analog -InputList2Cue57=an_fb46 -InputList2SigType57=Analog -InputList2Cue58=an_fb47 -InputList2SigType58=Analog -InputList2Cue59=an_fb48 -InputList2SigType59=Analog -InputList2Cue60=an_fb49 -InputList2SigType60=Analog -InputList2Cue61=an_fb50 -InputList2SigType61=Analog -InputList2Cue62=an_fb51 -InputList2SigType62=Analog -InputList2Cue63=an_fb52 -InputList2SigType63=Analog -InputList2Cue64=an_fb53 -InputList2SigType64=Analog -InputList2Cue65=an_fb54 -InputList2SigType65=Analog -InputList2Cue66=an_fb55 -InputList2SigType66=Analog -InputList2Cue67=an_fb56 -InputList2SigType67=Analog -InputList2Cue68=an_fb57 -InputList2SigType68=Analog -InputList2Cue69=an_fb58 -InputList2SigType69=Analog -InputList2Cue70=an_fb59 -InputList2SigType70=Analog -InputList2Cue71=an_fb60 -InputList2SigType71=Analog -InputList2Cue72=[~EndGroup~]an_fb -InputList2SigType72=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=an_act13 -OutputList2SigType24=Analog -OutputList2Cue25=an_act14 -OutputList2SigType25=Analog -OutputList2Cue26=an_act15 -OutputList2SigType26=Analog -OutputList2Cue27=an_act16 -OutputList2SigType27=Analog -OutputList2Cue28=an_act17 -OutputList2SigType28=Analog -OutputList2Cue29=an_act18 -OutputList2SigType29=Analog -OutputList2Cue30=an_act19 -OutputList2SigType30=Analog -OutputList2Cue31=an_act20 -OutputList2SigType31=Analog -OutputList2Cue32=an_act21 -OutputList2SigType32=Analog -OutputList2Cue33=an_act22 -OutputList2SigType33=Analog -OutputList2Cue34=an_act23 -OutputList2SigType34=Analog -OutputList2Cue35=an_act24 -OutputList2SigType35=Analog -OutputList2Cue36=an_act25 -OutputList2SigType36=Analog -OutputList2Cue37=an_act26 -OutputList2SigType37=Analog -OutputList2Cue38=an_act27 -OutputList2SigType38=Analog -OutputList2Cue39=an_act28 -OutputList2SigType39=Analog -OutputList2Cue40=an_act29 -OutputList2SigType40=Analog -OutputList2Cue41=an_act30 -OutputList2SigType41=Analog -OutputList2Cue42=an_act31 -OutputList2SigType42=Analog -OutputList2Cue43=an_act32 -OutputList2SigType43=Analog -OutputList2Cue44=an_act33 -OutputList2SigType44=Analog -OutputList2Cue45=an_act34 -OutputList2SigType45=Analog -OutputList2Cue46=an_act35 -OutputList2SigType46=Analog -OutputList2Cue47=an_act36 -OutputList2SigType47=Analog -OutputList2Cue48=an_act37 -OutputList2SigType48=Analog -OutputList2Cue49=an_act38 -OutputList2SigType49=Analog -OutputList2Cue50=an_act39 -OutputList2SigType50=Analog -OutputList2Cue51=an_act40 -OutputList2SigType51=Analog -OutputList2Cue52=an_act41 -OutputList2SigType52=Analog -OutputList2Cue53=an_act42 -OutputList2SigType53=Analog -OutputList2Cue54=an_act43 -OutputList2SigType54=Analog -OutputList2Cue55=an_act44 -OutputList2SigType55=Analog -OutputList2Cue56=an_act45 -OutputList2SigType56=Analog -OutputList2Cue57=an_act46 -OutputList2SigType57=Analog -OutputList2Cue58=an_act47 -OutputList2SigType58=Analog -OutputList2Cue59=an_act48 -OutputList2SigType59=Analog -OutputList2Cue60=an_act49 -OutputList2SigType60=Analog -OutputList2Cue61=an_act50 -OutputList2SigType61=Analog -OutputList2Cue62=an_act51 -OutputList2SigType62=Analog -OutputList2Cue63=an_act52 -OutputList2SigType63=Analog -OutputList2Cue64=an_act53 -OutputList2SigType64=Analog -OutputList2Cue65=an_act54 -OutputList2SigType65=Analog -OutputList2Cue66=an_act55 -OutputList2SigType66=Analog -OutputList2Cue67=an_act56 -OutputList2SigType67=Analog -OutputList2Cue68=an_act57 -OutputList2SigType68=Analog -OutputList2Cue69=an_act58 -OutputList2SigType69=Analog -OutputList2Cue70=an_act59 -OutputList2SigType70=Analog -OutputList2Cue71=an_act60 -OutputList2SigType71=Analog -OutputList2Cue72=[~EndGroup~]an_act -OutputList2SigType72=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=[~EndGroup~]text-o -InputList3SigType72=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=[~EndGroup~]text-i -OutputList3SigType72=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=5 -CedH=5 -SmartObjId=3902d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=5 -Tp=1 -HD=TRUE -DV=3902d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=5 -Name=PepperDash Essentials TSW-760_[E.Technician Controls] Sys Status_Subpage Reference List Vertical_3.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[E.Technician Controls] Display Controls_Subpage Reference List Vertical_4.ced -Hint=Subpage Reference List Vertical_4 (Smart Object ID=3904) -Code=6 -SGControlType=Subpage Reference List Vertical -SGControlName=Subpage Reference List Vertical_4 -GUID=AC10DF35-3FD4-4F62-9708-0A06AE7A5A14 -SmplCName=PepperDash Essentials TSW-760_[E.Technician Controls] Display Controls_Subpage Reference List Vertical_4.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4116 -MaxVariableInputs=4116 -MinVariableOutputs=4116 -MaxVariableOutputs=4116 -NumFixedParams=1 -MinVariableInputsList2=42 -MaxVariableInputsList2=42 -MinVariableOutputsList2=42 -MaxVariableOutputsList2=42 -MinVariableInputsList3=42 -MaxVariableInputsList3=42 -MinVariableOutputsList3=42 -MaxVariableOutputsList3=42 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=[~UNUSED2~] -InputSigType22=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=[~UNUSED2~] -InputSigType2024=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=fb61 -InputSigType4076=Digital -InputCue4077=fb62 -InputSigType4077=Digital -InputCue4078=fb63 -InputSigType4078=Digital -InputCue4079=fb64 -InputSigType4079=Digital -InputCue4080=fb65 -InputSigType4080=Digital -InputCue4081=fb66 -InputSigType4081=Digital -InputCue4082=fb67 -InputSigType4082=Digital -InputCue4083=fb68 -InputSigType4083=Digital -InputCue4084=fb69 -InputSigType4084=Digital -InputCue4085=fb70 -InputSigType4085=Digital -InputCue4086=fb71 -InputSigType4086=Digital -InputCue4087=fb72 -InputSigType4087=Digital -InputCue4088=fb73 -InputSigType4088=Digital -InputCue4089=fb74 -InputSigType4089=Digital -InputCue4090=fb75 -InputSigType4090=Digital -InputCue4091=fb76 -InputSigType4091=Digital -InputCue4092=fb77 -InputSigType4092=Digital -InputCue4093=fb78 -InputSigType4093=Digital -InputCue4094=fb79 -InputSigType4094=Digital -InputCue4095=fb80 -InputSigType4095=Digital -InputCue4096=fb81 -InputSigType4096=Digital -InputCue4097=fb82 -InputSigType4097=Digital -InputCue4098=fb83 -InputSigType4098=Digital -InputCue4099=fb84 -InputSigType4099=Digital -InputCue4100=fb85 -InputSigType4100=Digital -InputCue4101=fb86 -InputSigType4101=Digital -InputCue4102=fb87 -InputSigType4102=Digital -InputCue4103=fb88 -InputSigType4103=Digital -InputCue4104=fb89 -InputSigType4104=Digital -InputCue4105=fb90 -InputSigType4105=Digital -InputCue4106=fb91 -InputSigType4106=Digital -InputCue4107=fb92 -InputSigType4107=Digital -InputCue4108=fb93 -InputSigType4108=Digital -InputCue4109=fb94 -InputSigType4109=Digital -InputCue4110=fb95 -InputSigType4110=Digital -InputCue4111=fb96 -InputSigType4111=Digital -InputCue4112=fb97 -InputSigType4112=Digital -InputCue4113=fb98 -InputSigType4113=Digital -InputCue4114=fb99 -InputSigType4114=Digital -InputCue4115=fb100 -InputSigType4115=Digital -InputCue4116=[~EndGroup~]fb -InputSigType4116=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED2~] -OutputSigType22=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED2~] -OutputSigType2024=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=press61 -OutputSigType4076=Digital -OutputCue4077=press62 -OutputSigType4077=Digital -OutputCue4078=press63 -OutputSigType4078=Digital -OutputCue4079=press64 -OutputSigType4079=Digital -OutputCue4080=press65 -OutputSigType4080=Digital -OutputCue4081=press66 -OutputSigType4081=Digital -OutputCue4082=press67 -OutputSigType4082=Digital -OutputCue4083=press68 -OutputSigType4083=Digital -OutputCue4084=press69 -OutputSigType4084=Digital -OutputCue4085=press70 -OutputSigType4085=Digital -OutputCue4086=press71 -OutputSigType4086=Digital -OutputCue4087=press72 -OutputSigType4087=Digital -OutputCue4088=press73 -OutputSigType4088=Digital -OutputCue4089=press74 -OutputSigType4089=Digital -OutputCue4090=press75 -OutputSigType4090=Digital -OutputCue4091=press76 -OutputSigType4091=Digital -OutputCue4092=press77 -OutputSigType4092=Digital -OutputCue4093=press78 -OutputSigType4093=Digital -OutputCue4094=press79 -OutputSigType4094=Digital -OutputCue4095=press80 -OutputSigType4095=Digital -OutputCue4096=press81 -OutputSigType4096=Digital -OutputCue4097=press82 -OutputSigType4097=Digital -OutputCue4098=press83 -OutputSigType4098=Digital -OutputCue4099=press84 -OutputSigType4099=Digital -OutputCue4100=press85 -OutputSigType4100=Digital -OutputCue4101=press86 -OutputSigType4101=Digital -OutputCue4102=press87 -OutputSigType4102=Digital -OutputCue4103=press88 -OutputSigType4103=Digital -OutputCue4104=press89 -OutputSigType4104=Digital -OutputCue4105=press90 -OutputSigType4105=Digital -OutputCue4106=press91 -OutputSigType4106=Digital -OutputCue4107=press92 -OutputSigType4107=Digital -OutputCue4108=press93 -OutputSigType4108=Digital -OutputCue4109=press94 -OutputSigType4109=Digital -OutputCue4110=press95 -OutputSigType4110=Digital -OutputCue4111=press96 -OutputSigType4111=Digital -OutputCue4112=press97 -OutputSigType4112=Digital -OutputCue4113=press98 -OutputSigType4113=Digital -OutputCue4114=press99 -OutputSigType4114=Digital -OutputCue4115=press100 -OutputSigType4115=Digital -OutputCue4116=[~EndGroup~]Press -OutputSigType4116=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=an_fb13 -InputList2SigType24=Analog -InputList2Cue25=an_fb14 -InputList2SigType25=Analog -InputList2Cue26=an_fb15 -InputList2SigType26=Analog -InputList2Cue27=an_fb16 -InputList2SigType27=Analog -InputList2Cue28=an_fb17 -InputList2SigType28=Analog -InputList2Cue29=an_fb18 -InputList2SigType29=Analog -InputList2Cue30=an_fb19 -InputList2SigType30=Analog -InputList2Cue31=an_fb20 -InputList2SigType31=Analog -InputList2Cue32=an_fb21 -InputList2SigType32=Analog -InputList2Cue33=an_fb22 -InputList2SigType33=Analog -InputList2Cue34=an_fb23 -InputList2SigType34=Analog -InputList2Cue35=an_fb24 -InputList2SigType35=Analog -InputList2Cue36=an_fb25 -InputList2SigType36=Analog -InputList2Cue37=an_fb26 -InputList2SigType37=Analog -InputList2Cue38=an_fb27 -InputList2SigType38=Analog -InputList2Cue39=an_fb28 -InputList2SigType39=Analog -InputList2Cue40=an_fb29 -InputList2SigType40=Analog -InputList2Cue41=an_fb30 -InputList2SigType41=Analog -InputList2Cue42=[~EndGroup~]an_fb -InputList2SigType42=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=an_act13 -OutputList2SigType24=Analog -OutputList2Cue25=an_act14 -OutputList2SigType25=Analog -OutputList2Cue26=an_act15 -OutputList2SigType26=Analog -OutputList2Cue27=an_act16 -OutputList2SigType27=Analog -OutputList2Cue28=an_act17 -OutputList2SigType28=Analog -OutputList2Cue29=an_act18 -OutputList2SigType29=Analog -OutputList2Cue30=an_act19 -OutputList2SigType30=Analog -OutputList2Cue31=an_act20 -OutputList2SigType31=Analog -OutputList2Cue32=an_act21 -OutputList2SigType32=Analog -OutputList2Cue33=an_act22 -OutputList2SigType33=Analog -OutputList2Cue34=an_act23 -OutputList2SigType34=Analog -OutputList2Cue35=an_act24 -OutputList2SigType35=Analog -OutputList2Cue36=an_act25 -OutputList2SigType36=Analog -OutputList2Cue37=an_act26 -OutputList2SigType37=Analog -OutputList2Cue38=an_act27 -OutputList2SigType38=Analog -OutputList2Cue39=an_act28 -OutputList2SigType39=Analog -OutputList2Cue40=an_act29 -OutputList2SigType40=Analog -OutputList2Cue41=an_act30 -OutputList2SigType41=Analog -OutputList2Cue42=[~EndGroup~]an_act -OutputList2SigType42=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=[~EndGroup~]text-o -InputList3SigType42=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=[~EndGroup~]text-i -OutputList3SigType42=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=6 -CedH=6 -SmartObjId=3904d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=6 -Tp=1 -HD=TRUE -DV=3904d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=6 -Name=PepperDash Essentials TSW-760_[E.Technician Controls] Display Controls_Subpage Reference List Vertical_4.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[B.AV] Staging_Subpage Reference List Horizontal_3.ced -Hint=Subpage Reference List Horizontal_3 (Smart Object ID=3200) -Code=7 -SGControlType=Subpage Reference List Horizontal -SGControlName=Subpage Reference List Horizontal_3 -GUID=D638D437-6722-43E1-B435-EF13DCE5ECF0 -SmplCName=PepperDash Essentials TSW-760_[B.AV] Staging_Subpage Reference List Horizontal_3.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10124 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4076 -MaxVariableInputs=4076 -MinVariableOutputs=4076 -MaxVariableOutputs=4076 -NumFixedParams=1 -MinVariableInputsList2=72 -MaxVariableInputsList2=72 -MinVariableOutputsList2=72 -MaxVariableOutputsList2=72 -MinVariableInputsList3=72 -MaxVariableInputsList3=72 -MinVariableOutputsList3=72 -MaxVariableOutputsList3=72 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=Item 13 Enable -InputSigType24=Digital -InputCue25=Item 14 Enable -InputSigType25=Digital -InputCue26=Item 15 Enable -InputSigType26=Digital -InputCue27=Item 16 Enable -InputSigType27=Digital -InputCue28=Item 17 Enable -InputSigType28=Digital -InputCue29=Item 18 Enable -InputSigType29=Digital -InputCue30=Item 19 Enable -InputSigType30=Digital -InputCue31=Item 20 Enable -InputSigType31=Digital -InputCue32=[~UNUSED2~] -InputSigType32=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=Item 13 Visible -InputSigType2026=Digital -InputCue2027=Item 14 Visible -InputSigType2027=Digital -InputCue2028=Item 15 Visible -InputSigType2028=Digital -InputCue2029=Item 16 Visible -InputSigType2029=Digital -InputCue2030=Item 17 Visible -InputSigType2030=Digital -InputCue2031=Item 18 Visible -InputSigType2031=Digital -InputCue2032=Item 19 Visible -InputSigType2032=Digital -InputCue2033=Item 20 Visible -InputSigType2033=Digital -InputCue2034=[~UNUSED2~] -InputSigType2034=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=[~EndGroup~]fb -InputSigType4076=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED3~] -OutputSigType24=Digital -OutputCue25=[~UNUSED3~] -OutputSigType25=Digital -OutputCue26=[~UNUSED3~] -OutputSigType26=Digital -OutputCue27=[~UNUSED3~] -OutputSigType27=Digital -OutputCue28=[~UNUSED3~] -OutputSigType28=Digital -OutputCue29=[~UNUSED3~] -OutputSigType29=Digital -OutputCue30=[~UNUSED3~] -OutputSigType30=Digital -OutputCue31=[~UNUSED3~] -OutputSigType31=Digital -OutputCue32=[~UNUSED2~] -OutputSigType32=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED2~] -OutputSigType2034=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=[~EndGroup~]Press -OutputSigType4076=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=an_fb13 -InputList2SigType24=Analog -InputList2Cue25=an_fb14 -InputList2SigType25=Analog -InputList2Cue26=an_fb15 -InputList2SigType26=Analog -InputList2Cue27=an_fb16 -InputList2SigType27=Analog -InputList2Cue28=an_fb17 -InputList2SigType28=Analog -InputList2Cue29=an_fb18 -InputList2SigType29=Analog -InputList2Cue30=an_fb19 -InputList2SigType30=Analog -InputList2Cue31=an_fb20 -InputList2SigType31=Analog -InputList2Cue32=an_fb21 -InputList2SigType32=Analog -InputList2Cue33=an_fb22 -InputList2SigType33=Analog -InputList2Cue34=an_fb23 -InputList2SigType34=Analog -InputList2Cue35=an_fb24 -InputList2SigType35=Analog -InputList2Cue36=an_fb25 -InputList2SigType36=Analog -InputList2Cue37=an_fb26 -InputList2SigType37=Analog -InputList2Cue38=an_fb27 -InputList2SigType38=Analog -InputList2Cue39=an_fb28 -InputList2SigType39=Analog -InputList2Cue40=an_fb29 -InputList2SigType40=Analog -InputList2Cue41=an_fb30 -InputList2SigType41=Analog -InputList2Cue42=an_fb31 -InputList2SigType42=Analog -InputList2Cue43=an_fb32 -InputList2SigType43=Analog -InputList2Cue44=an_fb33 -InputList2SigType44=Analog -InputList2Cue45=an_fb34 -InputList2SigType45=Analog -InputList2Cue46=an_fb35 -InputList2SigType46=Analog -InputList2Cue47=an_fb36 -InputList2SigType47=Analog -InputList2Cue48=an_fb37 -InputList2SigType48=Analog -InputList2Cue49=an_fb38 -InputList2SigType49=Analog -InputList2Cue50=an_fb39 -InputList2SigType50=Analog -InputList2Cue51=an_fb40 -InputList2SigType51=Analog -InputList2Cue52=an_fb41 -InputList2SigType52=Analog -InputList2Cue53=an_fb42 -InputList2SigType53=Analog -InputList2Cue54=an_fb43 -InputList2SigType54=Analog -InputList2Cue55=an_fb44 -InputList2SigType55=Analog -InputList2Cue56=an_fb45 -InputList2SigType56=Analog -InputList2Cue57=an_fb46 -InputList2SigType57=Analog -InputList2Cue58=an_fb47 -InputList2SigType58=Analog -InputList2Cue59=an_fb48 -InputList2SigType59=Analog -InputList2Cue60=an_fb49 -InputList2SigType60=Analog -InputList2Cue61=an_fb50 -InputList2SigType61=Analog -InputList2Cue62=an_fb51 -InputList2SigType62=Analog -InputList2Cue63=an_fb52 -InputList2SigType63=Analog -InputList2Cue64=an_fb53 -InputList2SigType64=Analog -InputList2Cue65=an_fb54 -InputList2SigType65=Analog -InputList2Cue66=an_fb55 -InputList2SigType66=Analog -InputList2Cue67=an_fb56 -InputList2SigType67=Analog -InputList2Cue68=an_fb57 -InputList2SigType68=Analog -InputList2Cue69=an_fb58 -InputList2SigType69=Analog -InputList2Cue70=an_fb59 -InputList2SigType70=Analog -InputList2Cue71=an_fb60 -InputList2SigType71=Analog -InputList2Cue72=[~EndGroup~]an_fb -InputList2SigType72=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=an_act13 -OutputList2SigType24=Analog -OutputList2Cue25=an_act14 -OutputList2SigType25=Analog -OutputList2Cue26=an_act15 -OutputList2SigType26=Analog -OutputList2Cue27=an_act16 -OutputList2SigType27=Analog -OutputList2Cue28=an_act17 -OutputList2SigType28=Analog -OutputList2Cue29=an_act18 -OutputList2SigType29=Analog -OutputList2Cue30=an_act19 -OutputList2SigType30=Analog -OutputList2Cue31=an_act20 -OutputList2SigType31=Analog -OutputList2Cue32=an_act21 -OutputList2SigType32=Analog -OutputList2Cue33=an_act22 -OutputList2SigType33=Analog -OutputList2Cue34=an_act23 -OutputList2SigType34=Analog -OutputList2Cue35=an_act24 -OutputList2SigType35=Analog -OutputList2Cue36=an_act25 -OutputList2SigType36=Analog -OutputList2Cue37=an_act26 -OutputList2SigType37=Analog -OutputList2Cue38=an_act27 -OutputList2SigType38=Analog -OutputList2Cue39=an_act28 -OutputList2SigType39=Analog -OutputList2Cue40=an_act29 -OutputList2SigType40=Analog -OutputList2Cue41=an_act30 -OutputList2SigType41=Analog -OutputList2Cue42=an_act31 -OutputList2SigType42=Analog -OutputList2Cue43=an_act32 -OutputList2SigType43=Analog -OutputList2Cue44=an_act33 -OutputList2SigType44=Analog -OutputList2Cue45=an_act34 -OutputList2SigType45=Analog -OutputList2Cue46=an_act35 -OutputList2SigType46=Analog -OutputList2Cue47=an_act36 -OutputList2SigType47=Analog -OutputList2Cue48=an_act37 -OutputList2SigType48=Analog -OutputList2Cue49=an_act38 -OutputList2SigType49=Analog -OutputList2Cue50=an_act39 -OutputList2SigType50=Analog -OutputList2Cue51=an_act40 -OutputList2SigType51=Analog -OutputList2Cue52=an_act41 -OutputList2SigType52=Analog -OutputList2Cue53=an_act42 -OutputList2SigType53=Analog -OutputList2Cue54=an_act43 -OutputList2SigType54=Analog -OutputList2Cue55=an_act44 -OutputList2SigType55=Analog -OutputList2Cue56=an_act45 -OutputList2SigType56=Analog -OutputList2Cue57=an_act46 -OutputList2SigType57=Analog -OutputList2Cue58=an_act47 -OutputList2SigType58=Analog -OutputList2Cue59=an_act48 -OutputList2SigType59=Analog -OutputList2Cue60=an_act49 -OutputList2SigType60=Analog -OutputList2Cue61=an_act50 -OutputList2SigType61=Analog -OutputList2Cue62=an_act51 -OutputList2SigType62=Analog -OutputList2Cue63=an_act52 -OutputList2SigType63=Analog -OutputList2Cue64=an_act53 -OutputList2SigType64=Analog -OutputList2Cue65=an_act54 -OutputList2SigType65=Analog -OutputList2Cue66=an_act55 -OutputList2SigType66=Analog -OutputList2Cue67=an_act56 -OutputList2SigType67=Analog -OutputList2Cue68=an_act57 -OutputList2SigType68=Analog -OutputList2Cue69=an_act58 -OutputList2SigType69=Analog -OutputList2Cue70=an_act59 -OutputList2SigType70=Analog -OutputList2Cue71=an_act60 -OutputList2SigType71=Analog -OutputList2Cue72=[~EndGroup~]an_act -OutputList2SigType72=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=[~EndGroup~]text-o -InputList3SigType72=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=[~EndGroup~]text-i -OutputList3SigType72=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=7 -CedH=7 -SmartObjId=3200d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=7 -Tp=1 -HD=TRUE -DV=3200d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=7 -Name=PepperDash Essentials TSW-760_[B.AV] Staging_Subpage Reference List Horizontal_3.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[B.AV] Source Ctrl-CATV-Basic_Channel Preset List Basic.ced -Hint=Channel Preset List Basic (Smart Object ID=1806) -Code=8 -SGControlType=Subpage Reference List Vertical -SGControlName=Channel Preset List Basic -GUID=46C43CE4-6BB9-4B76-A13E-B4279202F998 -SmplCName=PepperDash Essentials TSW-760_[B.AV] Source Ctrl-CATV-Basic_Channel Preset List Basic.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4106 -MaxVariableInputs=4106 -MinVariableOutputs=4106 -MaxVariableOutputs=4106 -NumFixedParams=1 -MinVariableInputsList2=3 -MaxVariableInputsList2=3 -MinVariableOutputsList2=3 -MaxVariableOutputsList2=3 -MinVariableInputsList3=132 -MaxVariableInputsList3=132 -MinVariableOutputsList3=132 -MaxVariableOutputsList3=132 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=Item 13 Enable -InputSigType24=Digital -InputCue25=Item 14 Enable -InputSigType25=Digital -InputCue26=Item 15 Enable -InputSigType26=Digital -InputCue27=Item 16 Enable -InputSigType27=Digital -InputCue28=Item 17 Enable -InputSigType28=Digital -InputCue29=Item 18 Enable -InputSigType29=Digital -InputCue30=Item 19 Enable -InputSigType30=Digital -InputCue31=Item 20 Enable -InputSigType31=Digital -InputCue32=Item 21 Enable -InputSigType32=Digital -InputCue33=Item 22 Enable -InputSigType33=Digital -InputCue34=Item 23 Enable -InputSigType34=Digital -InputCue35=Item 24 Enable -InputSigType35=Digital -InputCue36=Item 25 Enable -InputSigType36=Digital -InputCue37=Item 26 Enable -InputSigType37=Digital -InputCue38=Item 27 Enable -InputSigType38=Digital -InputCue39=Item 28 Enable -InputSigType39=Digital -InputCue40=Item 29 Enable -InputSigType40=Digital -InputCue41=Item 30 Enable -InputSigType41=Digital -InputCue42=[~UNUSED2~] -InputSigType42=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=Item 13 Visible -InputSigType2026=Digital -InputCue2027=Item 14 Visible -InputSigType2027=Digital -InputCue2028=Item 15 Visible -InputSigType2028=Digital -InputCue2029=Item 16 Visible -InputSigType2029=Digital -InputCue2030=Item 17 Visible -InputSigType2030=Digital -InputCue2031=Item 18 Visible -InputSigType2031=Digital -InputCue2032=Item 19 Visible -InputSigType2032=Digital -InputCue2033=Item 20 Visible -InputSigType2033=Digital -InputCue2034=Item 21 Visible -InputSigType2034=Digital -InputCue2035=Item 22 Visible -InputSigType2035=Digital -InputCue2036=Item 23 Visible -InputSigType2036=Digital -InputCue2037=Item 24 Visible -InputSigType2037=Digital -InputCue2038=Item 25 Visible -InputSigType2038=Digital -InputCue2039=Item 26 Visible -InputSigType2039=Digital -InputCue2040=Item 27 Visible -InputSigType2040=Digital -InputCue2041=Item 28 Visible -InputSigType2041=Digital -InputCue2042=Item 29 Visible -InputSigType2042=Digital -InputCue2043=Item 30 Visible -InputSigType2043=Digital -InputCue2044=[~UNUSED2~] -InputSigType2044=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=fb61 -InputSigType4076=Digital -InputCue4077=fb62 -InputSigType4077=Digital -InputCue4078=fb63 -InputSigType4078=Digital -InputCue4079=fb64 -InputSigType4079=Digital -InputCue4080=fb65 -InputSigType4080=Digital -InputCue4081=fb66 -InputSigType4081=Digital -InputCue4082=fb67 -InputSigType4082=Digital -InputCue4083=fb68 -InputSigType4083=Digital -InputCue4084=fb69 -InputSigType4084=Digital -InputCue4085=fb70 -InputSigType4085=Digital -InputCue4086=fb71 -InputSigType4086=Digital -InputCue4087=fb72 -InputSigType4087=Digital -InputCue4088=fb73 -InputSigType4088=Digital -InputCue4089=fb74 -InputSigType4089=Digital -InputCue4090=fb75 -InputSigType4090=Digital -InputCue4091=fb76 -InputSigType4091=Digital -InputCue4092=fb77 -InputSigType4092=Digital -InputCue4093=fb78 -InputSigType4093=Digital -InputCue4094=fb79 -InputSigType4094=Digital -InputCue4095=fb80 -InputSigType4095=Digital -InputCue4096=fb81 -InputSigType4096=Digital -InputCue4097=fb82 -InputSigType4097=Digital -InputCue4098=fb83 -InputSigType4098=Digital -InputCue4099=fb84 -InputSigType4099=Digital -InputCue4100=fb85 -InputSigType4100=Digital -InputCue4101=fb86 -InputSigType4101=Digital -InputCue4102=fb87 -InputSigType4102=Digital -InputCue4103=fb88 -InputSigType4103=Digital -InputCue4104=fb89 -InputSigType4104=Digital -InputCue4105=fb90 -InputSigType4105=Digital -InputCue4106=[~EndGroup~]fb -InputSigType4106=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED3~] -OutputSigType24=Digital -OutputCue25=[~UNUSED3~] -OutputSigType25=Digital -OutputCue26=[~UNUSED3~] -OutputSigType26=Digital -OutputCue27=[~UNUSED3~] -OutputSigType27=Digital -OutputCue28=[~UNUSED3~] -OutputSigType28=Digital -OutputCue29=[~UNUSED3~] -OutputSigType29=Digital -OutputCue30=[~UNUSED3~] -OutputSigType30=Digital -OutputCue31=[~UNUSED3~] -OutputSigType31=Digital -OutputCue32=[~UNUSED3~] -OutputSigType32=Digital -OutputCue33=[~UNUSED3~] -OutputSigType33=Digital -OutputCue34=[~UNUSED3~] -OutputSigType34=Digital -OutputCue35=[~UNUSED3~] -OutputSigType35=Digital -OutputCue36=[~UNUSED3~] -OutputSigType36=Digital -OutputCue37=[~UNUSED3~] -OutputSigType37=Digital -OutputCue38=[~UNUSED3~] -OutputSigType38=Digital -OutputCue39=[~UNUSED3~] -OutputSigType39=Digital -OutputCue40=[~UNUSED3~] -OutputSigType40=Digital -OutputCue41=[~UNUSED3~] -OutputSigType41=Digital -OutputCue42=[~UNUSED2~] -OutputSigType42=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED3~] -OutputSigType2034=Digital -OutputCue2035=[~UNUSED3~] -OutputSigType2035=Digital -OutputCue2036=[~UNUSED3~] -OutputSigType2036=Digital -OutputCue2037=[~UNUSED3~] -OutputSigType2037=Digital -OutputCue2038=[~UNUSED3~] -OutputSigType2038=Digital -OutputCue2039=[~UNUSED3~] -OutputSigType2039=Digital -OutputCue2040=[~UNUSED3~] -OutputSigType2040=Digital -OutputCue2041=[~UNUSED3~] -OutputSigType2041=Digital -OutputCue2042=[~UNUSED3~] -OutputSigType2042=Digital -OutputCue2043=[~UNUSED3~] -OutputSigType2043=Digital -OutputCue2044=[~UNUSED2~] -OutputSigType2044=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=press61 -OutputSigType4076=Digital -OutputCue4077=press62 -OutputSigType4077=Digital -OutputCue4078=press63 -OutputSigType4078=Digital -OutputCue4079=press64 -OutputSigType4079=Digital -OutputCue4080=press65 -OutputSigType4080=Digital -OutputCue4081=press66 -OutputSigType4081=Digital -OutputCue4082=press67 -OutputSigType4082=Digital -OutputCue4083=press68 -OutputSigType4083=Digital -OutputCue4084=press69 -OutputSigType4084=Digital -OutputCue4085=press70 -OutputSigType4085=Digital -OutputCue4086=press71 -OutputSigType4086=Digital -OutputCue4087=press72 -OutputSigType4087=Digital -OutputCue4088=press73 -OutputSigType4088=Digital -OutputCue4089=press74 -OutputSigType4089=Digital -OutputCue4090=press75 -OutputSigType4090=Digital -OutputCue4091=press76 -OutputSigType4091=Digital -OutputCue4092=press77 -OutputSigType4092=Digital -OutputCue4093=press78 -OutputSigType4093=Digital -OutputCue4094=press79 -OutputSigType4094=Digital -OutputCue4095=press80 -OutputSigType4095=Digital -OutputCue4096=press81 -OutputSigType4096=Digital -OutputCue4097=press82 -OutputSigType4097=Digital -OutputCue4098=press83 -OutputSigType4098=Digital -OutputCue4099=press84 -OutputSigType4099=Digital -OutputCue4100=press85 -OutputSigType4100=Digital -OutputCue4101=press86 -OutputSigType4101=Digital -OutputCue4102=press87 -OutputSigType4102=Digital -OutputCue4103=press88 -OutputSigType4103=Digital -OutputCue4104=press89 -OutputSigType4104=Digital -OutputCue4105=press90 -OutputSigType4105=Digital -OutputCue4106=[~EndGroup~]Press -OutputSigType4106=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=text-o61 -InputList3SigType72=Serial -InputList3Cue73=text-o62 -InputList3SigType73=Serial -InputList3Cue74=text-o63 -InputList3SigType74=Serial -InputList3Cue75=text-o64 -InputList3SigType75=Serial -InputList3Cue76=text-o65 -InputList3SigType76=Serial -InputList3Cue77=text-o66 -InputList3SigType77=Serial -InputList3Cue78=text-o67 -InputList3SigType78=Serial -InputList3Cue79=text-o68 -InputList3SigType79=Serial -InputList3Cue80=text-o69 -InputList3SigType80=Serial -InputList3Cue81=text-o70 -InputList3SigType81=Serial -InputList3Cue82=text-o71 -InputList3SigType82=Serial -InputList3Cue83=text-o72 -InputList3SigType83=Serial -InputList3Cue84=text-o73 -InputList3SigType84=Serial -InputList3Cue85=text-o74 -InputList3SigType85=Serial -InputList3Cue86=text-o75 -InputList3SigType86=Serial -InputList3Cue87=text-o76 -InputList3SigType87=Serial -InputList3Cue88=text-o77 -InputList3SigType88=Serial -InputList3Cue89=text-o78 -InputList3SigType89=Serial -InputList3Cue90=text-o79 -InputList3SigType90=Serial -InputList3Cue91=text-o80 -InputList3SigType91=Serial -InputList3Cue92=text-o81 -InputList3SigType92=Serial -InputList3Cue93=text-o82 -InputList3SigType93=Serial -InputList3Cue94=text-o83 -InputList3SigType94=Serial -InputList3Cue95=text-o84 -InputList3SigType95=Serial -InputList3Cue96=text-o85 -InputList3SigType96=Serial -InputList3Cue97=text-o86 -InputList3SigType97=Serial -InputList3Cue98=text-o87 -InputList3SigType98=Serial -InputList3Cue99=text-o88 -InputList3SigType99=Serial -InputList3Cue100=text-o89 -InputList3SigType100=Serial -InputList3Cue101=text-o90 -InputList3SigType101=Serial -InputList3Cue102=text-o91 -InputList3SigType102=Serial -InputList3Cue103=text-o92 -InputList3SigType103=Serial -InputList3Cue104=text-o93 -InputList3SigType104=Serial -InputList3Cue105=text-o94 -InputList3SigType105=Serial -InputList3Cue106=text-o95 -InputList3SigType106=Serial -InputList3Cue107=text-o96 -InputList3SigType107=Serial -InputList3Cue108=text-o97 -InputList3SigType108=Serial -InputList3Cue109=text-o98 -InputList3SigType109=Serial -InputList3Cue110=text-o99 -InputList3SigType110=Serial -InputList3Cue111=text-o100 -InputList3SigType111=Serial -InputList3Cue112=text-o101 -InputList3SigType112=Serial -InputList3Cue113=text-o102 -InputList3SigType113=Serial -InputList3Cue114=text-o103 -InputList3SigType114=Serial -InputList3Cue115=text-o104 -InputList3SigType115=Serial -InputList3Cue116=text-o105 -InputList3SigType116=Serial -InputList3Cue117=text-o106 -InputList3SigType117=Serial -InputList3Cue118=text-o107 -InputList3SigType118=Serial -InputList3Cue119=text-o108 -InputList3SigType119=Serial -InputList3Cue120=text-o109 -InputList3SigType120=Serial -InputList3Cue121=text-o110 -InputList3SigType121=Serial -InputList3Cue122=text-o111 -InputList3SigType122=Serial -InputList3Cue123=text-o112 -InputList3SigType123=Serial -InputList3Cue124=text-o113 -InputList3SigType124=Serial -InputList3Cue125=text-o114 -InputList3SigType125=Serial -InputList3Cue126=text-o115 -InputList3SigType126=Serial -InputList3Cue127=text-o116 -InputList3SigType127=Serial -InputList3Cue128=text-o117 -InputList3SigType128=Serial -InputList3Cue129=text-o118 -InputList3SigType129=Serial -InputList3Cue130=text-o119 -InputList3SigType130=Serial -InputList3Cue131=text-o120 -InputList3SigType131=Serial -InputList3Cue132=[~EndGroup~]text-o -InputList3SigType132=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=text-i61 -OutputList3SigType72=Serial -OutputList3Cue73=text-i62 -OutputList3SigType73=Serial -OutputList3Cue74=text-i63 -OutputList3SigType74=Serial -OutputList3Cue75=text-i64 -OutputList3SigType75=Serial -OutputList3Cue76=text-i65 -OutputList3SigType76=Serial -OutputList3Cue77=text-i66 -OutputList3SigType77=Serial -OutputList3Cue78=text-i67 -OutputList3SigType78=Serial -OutputList3Cue79=text-i68 -OutputList3SigType79=Serial -OutputList3Cue80=text-i69 -OutputList3SigType80=Serial -OutputList3Cue81=text-i70 -OutputList3SigType81=Serial -OutputList3Cue82=text-i71 -OutputList3SigType82=Serial -OutputList3Cue83=text-i72 -OutputList3SigType83=Serial -OutputList3Cue84=text-i73 -OutputList3SigType84=Serial -OutputList3Cue85=text-i74 -OutputList3SigType85=Serial -OutputList3Cue86=text-i75 -OutputList3SigType86=Serial -OutputList3Cue87=text-i76 -OutputList3SigType87=Serial -OutputList3Cue88=text-i77 -OutputList3SigType88=Serial -OutputList3Cue89=text-i78 -OutputList3SigType89=Serial -OutputList3Cue90=text-i79 -OutputList3SigType90=Serial -OutputList3Cue91=text-i80 -OutputList3SigType91=Serial -OutputList3Cue92=text-i81 -OutputList3SigType92=Serial -OutputList3Cue93=text-i82 -OutputList3SigType93=Serial -OutputList3Cue94=text-i83 -OutputList3SigType94=Serial -OutputList3Cue95=text-i84 -OutputList3SigType95=Serial -OutputList3Cue96=text-i85 -OutputList3SigType96=Serial -OutputList3Cue97=text-i86 -OutputList3SigType97=Serial -OutputList3Cue98=text-i87 -OutputList3SigType98=Serial -OutputList3Cue99=text-i88 -OutputList3SigType99=Serial -OutputList3Cue100=text-i89 -OutputList3SigType100=Serial -OutputList3Cue101=text-i90 -OutputList3SigType101=Serial -OutputList3Cue102=text-i91 -OutputList3SigType102=Serial -OutputList3Cue103=text-i92 -OutputList3SigType103=Serial -OutputList3Cue104=text-i93 -OutputList3SigType104=Serial -OutputList3Cue105=text-i94 -OutputList3SigType105=Serial -OutputList3Cue106=text-i95 -OutputList3SigType106=Serial -OutputList3Cue107=text-i96 -OutputList3SigType107=Serial -OutputList3Cue108=text-i97 -OutputList3SigType108=Serial -OutputList3Cue109=text-i98 -OutputList3SigType109=Serial -OutputList3Cue110=text-i99 -OutputList3SigType110=Serial -OutputList3Cue111=text-i100 -OutputList3SigType111=Serial -OutputList3Cue112=text-i101 -OutputList3SigType112=Serial -OutputList3Cue113=text-i102 -OutputList3SigType113=Serial -OutputList3Cue114=text-i103 -OutputList3SigType114=Serial -OutputList3Cue115=text-i104 -OutputList3SigType115=Serial -OutputList3Cue116=text-i105 -OutputList3SigType116=Serial -OutputList3Cue117=text-i106 -OutputList3SigType117=Serial -OutputList3Cue118=text-i107 -OutputList3SigType118=Serial -OutputList3Cue119=text-i108 -OutputList3SigType119=Serial -OutputList3Cue120=text-i109 -OutputList3SigType120=Serial -OutputList3Cue121=text-i110 -OutputList3SigType121=Serial -OutputList3Cue122=text-i111 -OutputList3SigType122=Serial -OutputList3Cue123=text-i112 -OutputList3SigType123=Serial -OutputList3Cue124=text-i113 -OutputList3SigType124=Serial -OutputList3Cue125=text-i114 -OutputList3SigType125=Serial -OutputList3Cue126=text-i115 -OutputList3SigType126=Serial -OutputList3Cue127=text-i116 -OutputList3SigType127=Serial -OutputList3Cue128=text-i117 -OutputList3SigType128=Serial -OutputList3Cue129=text-i118 -OutputList3SigType129=Serial -OutputList3Cue130=text-i119 -OutputList3SigType130=Serial -OutputList3Cue131=text-i120 -OutputList3SigType131=Serial -OutputList3Cue132=[~EndGroup~]text-i -OutputList3SigType132=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=8 -CedH=8 -SmartObjId=1806d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=8 -Tp=1 -HD=TRUE -DV=1806d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=8 -Name=PepperDash Essentials TSW-760_[B.AV] Source Ctrl-CATV-Basic_Channel Preset List Basic.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[A.Global] Activity Footer SRL_Modes Bottom Bar SRL.ced -Hint=Modes Bottom Bar SRL (Smart Object ID=15022) -Code=9 -SGControlType=Subpage Reference List Horizontal -SGControlName=Modes Bottom Bar SRL -GUID=812FF0C4-486D-4ABC-90FA-405F19104323 -SmplCName=PepperDash Essentials TSW-760_[A.Global] Activity Footer SRL_Modes Bottom Bar SRL.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10124 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4031 -MaxVariableInputs=4031 -MinVariableOutputs=4031 -MaxVariableOutputs=4031 -NumFixedParams=1 -MinVariableInputsList2=27 -MaxVariableInputsList2=27 -MinVariableOutputsList2=27 -MaxVariableOutputsList2=27 -MinVariableInputsList3=27 -MaxVariableInputsList3=27 -MinVariableOutputsList3=27 -MaxVariableOutputsList3=27 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=[~UNUSED2~] -InputSigType17=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=[~UNUSED2~] -InputSigType2019=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=[~EndGroup~]fb -InputSigType4031=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED2~] -OutputSigType17=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED2~] -OutputSigType2019=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=[~EndGroup~]Press -OutputSigType4031=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=an_fb13 -InputList2SigType24=Analog -InputList2Cue25=an_fb14 -InputList2SigType25=Analog -InputList2Cue26=an_fb15 -InputList2SigType26=Analog -InputList2Cue27=[~EndGroup~]an_fb -InputList2SigType27=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=an_act13 -OutputList2SigType24=Analog -OutputList2Cue25=an_act14 -OutputList2SigType25=Analog -OutputList2Cue26=an_act15 -OutputList2SigType26=Analog -OutputList2Cue27=[~EndGroup~]an_act -OutputList2SigType27=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=[~EndGroup~]text-o -InputList3SigType27=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=[~EndGroup~]text-i -OutputList3SigType27=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=9 -CedH=9 -SmartObjId=15022d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=9 -Tp=1 -HD=TRUE -DV=15022d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=9 -Name=PepperDash Essentials TSW-760_[A.Global] Activity Footer SRL_Modes Bottom Bar SRL.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[B.AV] Object - Presets_CATV Icon List Vertical.ced -Hint=CATV Icon List Vertical (Smart Object ID=10012) -Code=10 -SGControlType=Subpage Reference List Vertical -SGControlName=CATV Icon List Vertical -GUID=B34C4DC0-DD10-4C49-AEBA-F968934EFDC6 -SmplCName=PepperDash Essentials TSW-760_[B.AV] Object - Presets_CATV Icon List Vertical.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4316 -MaxVariableInputs=4316 -MinVariableOutputs=4316 -MaxVariableOutputs=4316 -NumFixedParams=1 -MinVariableInputsList2=3 -MaxVariableInputsList2=3 -MinVariableOutputsList2=3 -MaxVariableOutputsList2=3 -MinVariableInputsList3=412 -MaxVariableInputsList3=412 -MinVariableOutputsList3=412 -MaxVariableOutputsList3=412 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=Item 13 Enable -InputSigType24=Digital -InputCue25=Item 14 Enable -InputSigType25=Digital -InputCue26=Item 15 Enable -InputSigType26=Digital -InputCue27=Item 16 Enable -InputSigType27=Digital -InputCue28=Item 17 Enable -InputSigType28=Digital -InputCue29=Item 18 Enable -InputSigType29=Digital -InputCue30=Item 19 Enable -InputSigType30=Digital -InputCue31=Item 20 Enable -InputSigType31=Digital -InputCue32=Item 21 Enable -InputSigType32=Digital -InputCue33=Item 22 Enable -InputSigType33=Digital -InputCue34=Item 23 Enable -InputSigType34=Digital -InputCue35=Item 24 Enable -InputSigType35=Digital -InputCue36=Item 25 Enable -InputSigType36=Digital -InputCue37=Item 26 Enable -InputSigType37=Digital -InputCue38=Item 27 Enable -InputSigType38=Digital -InputCue39=Item 28 Enable -InputSigType39=Digital -InputCue40=Item 29 Enable -InputSigType40=Digital -InputCue41=Item 30 Enable -InputSigType41=Digital -InputCue42=Item 31 Enable -InputSigType42=Digital -InputCue43=Item 32 Enable -InputSigType43=Digital -InputCue44=Item 33 Enable -InputSigType44=Digital -InputCue45=Item 34 Enable -InputSigType45=Digital -InputCue46=Item 35 Enable -InputSigType46=Digital -InputCue47=Item 36 Enable -InputSigType47=Digital -InputCue48=Item 37 Enable -InputSigType48=Digital -InputCue49=Item 38 Enable -InputSigType49=Digital -InputCue50=Item 39 Enable -InputSigType50=Digital -InputCue51=Item 40 Enable -InputSigType51=Digital -InputCue52=Item 41 Enable -InputSigType52=Digital -InputCue53=Item 42 Enable -InputSigType53=Digital -InputCue54=Item 43 Enable -InputSigType54=Digital -InputCue55=Item 44 Enable -InputSigType55=Digital -InputCue56=Item 45 Enable -InputSigType56=Digital -InputCue57=Item 46 Enable -InputSigType57=Digital -InputCue58=Item 47 Enable -InputSigType58=Digital -InputCue59=Item 48 Enable -InputSigType59=Digital -InputCue60=Item 49 Enable -InputSigType60=Digital -InputCue61=Item 50 Enable -InputSigType61=Digital -InputCue62=Item 51 Enable -InputSigType62=Digital -InputCue63=Item 52 Enable -InputSigType63=Digital -InputCue64=Item 53 Enable -InputSigType64=Digital -InputCue65=Item 54 Enable -InputSigType65=Digital -InputCue66=Item 55 Enable -InputSigType66=Digital -InputCue67=Item 56 Enable -InputSigType67=Digital -InputCue68=Item 57 Enable -InputSigType68=Digital -InputCue69=Item 58 Enable -InputSigType69=Digital -InputCue70=Item 59 Enable -InputSigType70=Digital -InputCue71=Item 60 Enable -InputSigType71=Digital -InputCue72=Item 61 Enable -InputSigType72=Digital -InputCue73=Item 62 Enable -InputSigType73=Digital -InputCue74=Item 63 Enable -InputSigType74=Digital -InputCue75=Item 64 Enable -InputSigType75=Digital -InputCue76=Item 65 Enable -InputSigType76=Digital -InputCue77=Item 66 Enable -InputSigType77=Digital -InputCue78=Item 67 Enable -InputSigType78=Digital -InputCue79=Item 68 Enable -InputSigType79=Digital -InputCue80=Item 69 Enable -InputSigType80=Digital -InputCue81=Item 70 Enable -InputSigType81=Digital -InputCue82=Item 71 Enable -InputSigType82=Digital -InputCue83=Item 72 Enable -InputSigType83=Digital -InputCue84=Item 73 Enable -InputSigType84=Digital -InputCue85=Item 74 Enable -InputSigType85=Digital -InputCue86=Item 75 Enable -InputSigType86=Digital -InputCue87=Item 76 Enable -InputSigType87=Digital -InputCue88=Item 77 Enable -InputSigType88=Digital -InputCue89=Item 78 Enable -InputSigType89=Digital -InputCue90=Item 79 Enable -InputSigType90=Digital -InputCue91=Item 80 Enable -InputSigType91=Digital -InputCue92=Item 81 Enable -InputSigType92=Digital -InputCue93=Item 82 Enable -InputSigType93=Digital -InputCue94=Item 83 Enable -InputSigType94=Digital -InputCue95=Item 84 Enable -InputSigType95=Digital -InputCue96=Item 85 Enable -InputSigType96=Digital -InputCue97=Item 86 Enable -InputSigType97=Digital -InputCue98=Item 87 Enable -InputSigType98=Digital -InputCue99=Item 88 Enable -InputSigType99=Digital -InputCue100=Item 89 Enable -InputSigType100=Digital -InputCue101=Item 90 Enable -InputSigType101=Digital -InputCue102=Item 91 Enable -InputSigType102=Digital -InputCue103=Item 92 Enable -InputSigType103=Digital -InputCue104=Item 93 Enable -InputSigType104=Digital -InputCue105=Item 94 Enable -InputSigType105=Digital -InputCue106=Item 95 Enable -InputSigType106=Digital -InputCue107=Item 96 Enable -InputSigType107=Digital -InputCue108=Item 97 Enable -InputSigType108=Digital -InputCue109=Item 98 Enable -InputSigType109=Digital -InputCue110=Item 99 Enable -InputSigType110=Digital -InputCue111=Item 100 Enable -InputSigType111=Digital -InputCue112=[~UNUSED2~] -InputSigType112=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=Item 13 Visible -InputSigType2026=Digital -InputCue2027=Item 14 Visible -InputSigType2027=Digital -InputCue2028=Item 15 Visible -InputSigType2028=Digital -InputCue2029=Item 16 Visible -InputSigType2029=Digital -InputCue2030=Item 17 Visible -InputSigType2030=Digital -InputCue2031=Item 18 Visible -InputSigType2031=Digital -InputCue2032=Item 19 Visible -InputSigType2032=Digital -InputCue2033=Item 20 Visible -InputSigType2033=Digital -InputCue2034=Item 21 Visible -InputSigType2034=Digital -InputCue2035=Item 22 Visible -InputSigType2035=Digital -InputCue2036=Item 23 Visible -InputSigType2036=Digital -InputCue2037=Item 24 Visible -InputSigType2037=Digital -InputCue2038=Item 25 Visible -InputSigType2038=Digital -InputCue2039=Item 26 Visible -InputSigType2039=Digital -InputCue2040=Item 27 Visible -InputSigType2040=Digital -InputCue2041=Item 28 Visible -InputSigType2041=Digital -InputCue2042=Item 29 Visible -InputSigType2042=Digital -InputCue2043=Item 30 Visible -InputSigType2043=Digital -InputCue2044=Item 31 Visible -InputSigType2044=Digital -InputCue2045=Item 32 Visible -InputSigType2045=Digital -InputCue2046=Item 33 Visible -InputSigType2046=Digital -InputCue2047=Item 34 Visible -InputSigType2047=Digital -InputCue2048=Item 35 Visible -InputSigType2048=Digital -InputCue2049=Item 36 Visible -InputSigType2049=Digital -InputCue2050=Item 37 Visible -InputSigType2050=Digital -InputCue2051=Item 38 Visible -InputSigType2051=Digital -InputCue2052=Item 39 Visible -InputSigType2052=Digital -InputCue2053=Item 40 Visible -InputSigType2053=Digital -InputCue2054=Item 41 Visible -InputSigType2054=Digital -InputCue2055=Item 42 Visible -InputSigType2055=Digital -InputCue2056=Item 43 Visible -InputSigType2056=Digital -InputCue2057=Item 44 Visible -InputSigType2057=Digital -InputCue2058=Item 45 Visible -InputSigType2058=Digital -InputCue2059=Item 46 Visible -InputSigType2059=Digital -InputCue2060=Item 47 Visible -InputSigType2060=Digital -InputCue2061=Item 48 Visible -InputSigType2061=Digital -InputCue2062=Item 49 Visible -InputSigType2062=Digital -InputCue2063=Item 50 Visible -InputSigType2063=Digital -InputCue2064=Item 51 Visible -InputSigType2064=Digital -InputCue2065=Item 52 Visible -InputSigType2065=Digital -InputCue2066=Item 53 Visible -InputSigType2066=Digital -InputCue2067=Item 54 Visible -InputSigType2067=Digital -InputCue2068=Item 55 Visible -InputSigType2068=Digital -InputCue2069=Item 56 Visible -InputSigType2069=Digital -InputCue2070=Item 57 Visible -InputSigType2070=Digital -InputCue2071=Item 58 Visible -InputSigType2071=Digital -InputCue2072=Item 59 Visible -InputSigType2072=Digital -InputCue2073=Item 60 Visible -InputSigType2073=Digital -InputCue2074=Item 61 Visible -InputSigType2074=Digital -InputCue2075=Item 62 Visible -InputSigType2075=Digital -InputCue2076=Item 63 Visible -InputSigType2076=Digital -InputCue2077=Item 64 Visible -InputSigType2077=Digital -InputCue2078=Item 65 Visible -InputSigType2078=Digital -InputCue2079=Item 66 Visible -InputSigType2079=Digital -InputCue2080=Item 67 Visible -InputSigType2080=Digital -InputCue2081=Item 68 Visible -InputSigType2081=Digital -InputCue2082=Item 69 Visible -InputSigType2082=Digital -InputCue2083=Item 70 Visible -InputSigType2083=Digital -InputCue2084=Item 71 Visible -InputSigType2084=Digital -InputCue2085=Item 72 Visible -InputSigType2085=Digital -InputCue2086=Item 73 Visible -InputSigType2086=Digital -InputCue2087=Item 74 Visible -InputSigType2087=Digital -InputCue2088=Item 75 Visible -InputSigType2088=Digital -InputCue2089=Item 76 Visible -InputSigType2089=Digital -InputCue2090=Item 77 Visible -InputSigType2090=Digital -InputCue2091=Item 78 Visible -InputSigType2091=Digital -InputCue2092=Item 79 Visible -InputSigType2092=Digital -InputCue2093=Item 80 Visible -InputSigType2093=Digital -InputCue2094=Item 81 Visible -InputSigType2094=Digital -InputCue2095=Item 82 Visible -InputSigType2095=Digital -InputCue2096=Item 83 Visible -InputSigType2096=Digital -InputCue2097=Item 84 Visible -InputSigType2097=Digital -InputCue2098=Item 85 Visible -InputSigType2098=Digital -InputCue2099=Item 86 Visible -InputSigType2099=Digital -InputCue2100=Item 87 Visible -InputSigType2100=Digital -InputCue2101=Item 88 Visible -InputSigType2101=Digital -InputCue2102=Item 89 Visible -InputSigType2102=Digital -InputCue2103=Item 90 Visible -InputSigType2103=Digital -InputCue2104=Item 91 Visible -InputSigType2104=Digital -InputCue2105=Item 92 Visible -InputSigType2105=Digital -InputCue2106=Item 93 Visible -InputSigType2106=Digital -InputCue2107=Item 94 Visible -InputSigType2107=Digital -InputCue2108=Item 95 Visible -InputSigType2108=Digital -InputCue2109=Item 96 Visible -InputSigType2109=Digital -InputCue2110=Item 97 Visible -InputSigType2110=Digital -InputCue2111=Item 98 Visible -InputSigType2111=Digital -InputCue2112=Item 99 Visible -InputSigType2112=Digital -InputCue2113=Item 100 Visible -InputSigType2113=Digital -InputCue2114=[~UNUSED2~] -InputSigType2114=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=fb61 -InputSigType4076=Digital -InputCue4077=fb62 -InputSigType4077=Digital -InputCue4078=fb63 -InputSigType4078=Digital -InputCue4079=fb64 -InputSigType4079=Digital -InputCue4080=fb65 -InputSigType4080=Digital -InputCue4081=fb66 -InputSigType4081=Digital -InputCue4082=fb67 -InputSigType4082=Digital -InputCue4083=fb68 -InputSigType4083=Digital -InputCue4084=fb69 -InputSigType4084=Digital -InputCue4085=fb70 -InputSigType4085=Digital -InputCue4086=fb71 -InputSigType4086=Digital -InputCue4087=fb72 -InputSigType4087=Digital -InputCue4088=fb73 -InputSigType4088=Digital -InputCue4089=fb74 -InputSigType4089=Digital -InputCue4090=fb75 -InputSigType4090=Digital -InputCue4091=fb76 -InputSigType4091=Digital -InputCue4092=fb77 -InputSigType4092=Digital -InputCue4093=fb78 -InputSigType4093=Digital -InputCue4094=fb79 -InputSigType4094=Digital -InputCue4095=fb80 -InputSigType4095=Digital -InputCue4096=fb81 -InputSigType4096=Digital -InputCue4097=fb82 -InputSigType4097=Digital -InputCue4098=fb83 -InputSigType4098=Digital -InputCue4099=fb84 -InputSigType4099=Digital -InputCue4100=fb85 -InputSigType4100=Digital -InputCue4101=fb86 -InputSigType4101=Digital -InputCue4102=fb87 -InputSigType4102=Digital -InputCue4103=fb88 -InputSigType4103=Digital -InputCue4104=fb89 -InputSigType4104=Digital -InputCue4105=fb90 -InputSigType4105=Digital -InputCue4106=fb91 -InputSigType4106=Digital -InputCue4107=fb92 -InputSigType4107=Digital -InputCue4108=fb93 -InputSigType4108=Digital -InputCue4109=fb94 -InputSigType4109=Digital -InputCue4110=fb95 -InputSigType4110=Digital -InputCue4111=fb96 -InputSigType4111=Digital -InputCue4112=fb97 -InputSigType4112=Digital -InputCue4113=fb98 -InputSigType4113=Digital -InputCue4114=fb99 -InputSigType4114=Digital -InputCue4115=fb100 -InputSigType4115=Digital -InputCue4116=fb101 -InputSigType4116=Digital -InputCue4117=fb102 -InputSigType4117=Digital -InputCue4118=fb103 -InputSigType4118=Digital -InputCue4119=fb104 -InputSigType4119=Digital -InputCue4120=fb105 -InputSigType4120=Digital -InputCue4121=fb106 -InputSigType4121=Digital -InputCue4122=fb107 -InputSigType4122=Digital -InputCue4123=fb108 -InputSigType4123=Digital -InputCue4124=fb109 -InputSigType4124=Digital -InputCue4125=fb110 -InputSigType4125=Digital -InputCue4126=fb111 -InputSigType4126=Digital -InputCue4127=fb112 -InputSigType4127=Digital -InputCue4128=fb113 -InputSigType4128=Digital -InputCue4129=fb114 -InputSigType4129=Digital -InputCue4130=fb115 -InputSigType4130=Digital -InputCue4131=fb116 -InputSigType4131=Digital -InputCue4132=fb117 -InputSigType4132=Digital -InputCue4133=fb118 -InputSigType4133=Digital -InputCue4134=fb119 -InputSigType4134=Digital -InputCue4135=fb120 -InputSigType4135=Digital -InputCue4136=fb121 -InputSigType4136=Digital -InputCue4137=fb122 -InputSigType4137=Digital -InputCue4138=fb123 -InputSigType4138=Digital -InputCue4139=fb124 -InputSigType4139=Digital -InputCue4140=fb125 -InputSigType4140=Digital -InputCue4141=fb126 -InputSigType4141=Digital -InputCue4142=fb127 -InputSigType4142=Digital -InputCue4143=fb128 -InputSigType4143=Digital -InputCue4144=fb129 -InputSigType4144=Digital -InputCue4145=fb130 -InputSigType4145=Digital -InputCue4146=fb131 -InputSigType4146=Digital -InputCue4147=fb132 -InputSigType4147=Digital -InputCue4148=fb133 -InputSigType4148=Digital -InputCue4149=fb134 -InputSigType4149=Digital -InputCue4150=fb135 -InputSigType4150=Digital -InputCue4151=fb136 -InputSigType4151=Digital -InputCue4152=fb137 -InputSigType4152=Digital -InputCue4153=fb138 -InputSigType4153=Digital -InputCue4154=fb139 -InputSigType4154=Digital -InputCue4155=fb140 -InputSigType4155=Digital -InputCue4156=fb141 -InputSigType4156=Digital -InputCue4157=fb142 -InputSigType4157=Digital -InputCue4158=fb143 -InputSigType4158=Digital -InputCue4159=fb144 -InputSigType4159=Digital -InputCue4160=fb145 -InputSigType4160=Digital -InputCue4161=fb146 -InputSigType4161=Digital -InputCue4162=fb147 -InputSigType4162=Digital -InputCue4163=fb148 -InputSigType4163=Digital -InputCue4164=fb149 -InputSigType4164=Digital -InputCue4165=fb150 -InputSigType4165=Digital -InputCue4166=fb151 -InputSigType4166=Digital -InputCue4167=fb152 -InputSigType4167=Digital -InputCue4168=fb153 -InputSigType4168=Digital -InputCue4169=fb154 -InputSigType4169=Digital -InputCue4170=fb155 -InputSigType4170=Digital -InputCue4171=fb156 -InputSigType4171=Digital -InputCue4172=fb157 -InputSigType4172=Digital -InputCue4173=fb158 -InputSigType4173=Digital -InputCue4174=fb159 -InputSigType4174=Digital -InputCue4175=fb160 -InputSigType4175=Digital -InputCue4176=fb161 -InputSigType4176=Digital -InputCue4177=fb162 -InputSigType4177=Digital -InputCue4178=fb163 -InputSigType4178=Digital -InputCue4179=fb164 -InputSigType4179=Digital -InputCue4180=fb165 -InputSigType4180=Digital -InputCue4181=fb166 -InputSigType4181=Digital -InputCue4182=fb167 -InputSigType4182=Digital -InputCue4183=fb168 -InputSigType4183=Digital -InputCue4184=fb169 -InputSigType4184=Digital -InputCue4185=fb170 -InputSigType4185=Digital -InputCue4186=fb171 -InputSigType4186=Digital -InputCue4187=fb172 -InputSigType4187=Digital -InputCue4188=fb173 -InputSigType4188=Digital -InputCue4189=fb174 -InputSigType4189=Digital -InputCue4190=fb175 -InputSigType4190=Digital -InputCue4191=fb176 -InputSigType4191=Digital -InputCue4192=fb177 -InputSigType4192=Digital -InputCue4193=fb178 -InputSigType4193=Digital -InputCue4194=fb179 -InputSigType4194=Digital -InputCue4195=fb180 -InputSigType4195=Digital -InputCue4196=fb181 -InputSigType4196=Digital -InputCue4197=fb182 -InputSigType4197=Digital -InputCue4198=fb183 -InputSigType4198=Digital -InputCue4199=fb184 -InputSigType4199=Digital -InputCue4200=fb185 -InputSigType4200=Digital -InputCue4201=fb186 -InputSigType4201=Digital -InputCue4202=fb187 -InputSigType4202=Digital -InputCue4203=fb188 -InputSigType4203=Digital -InputCue4204=fb189 -InputSigType4204=Digital -InputCue4205=fb190 -InputSigType4205=Digital -InputCue4206=fb191 -InputSigType4206=Digital -InputCue4207=fb192 -InputSigType4207=Digital -InputCue4208=fb193 -InputSigType4208=Digital -InputCue4209=fb194 -InputSigType4209=Digital -InputCue4210=fb195 -InputSigType4210=Digital -InputCue4211=fb196 -InputSigType4211=Digital -InputCue4212=fb197 -InputSigType4212=Digital -InputCue4213=fb198 -InputSigType4213=Digital -InputCue4214=fb199 -InputSigType4214=Digital -InputCue4215=fb200 -InputSigType4215=Digital -InputCue4216=fb201 -InputSigType4216=Digital -InputCue4217=fb202 -InputSigType4217=Digital -InputCue4218=fb203 -InputSigType4218=Digital -InputCue4219=fb204 -InputSigType4219=Digital -InputCue4220=fb205 -InputSigType4220=Digital -InputCue4221=fb206 -InputSigType4221=Digital -InputCue4222=fb207 -InputSigType4222=Digital -InputCue4223=fb208 -InputSigType4223=Digital -InputCue4224=fb209 -InputSigType4224=Digital -InputCue4225=fb210 -InputSigType4225=Digital -InputCue4226=fb211 -InputSigType4226=Digital -InputCue4227=fb212 -InputSigType4227=Digital -InputCue4228=fb213 -InputSigType4228=Digital -InputCue4229=fb214 -InputSigType4229=Digital -InputCue4230=fb215 -InputSigType4230=Digital -InputCue4231=fb216 -InputSigType4231=Digital -InputCue4232=fb217 -InputSigType4232=Digital -InputCue4233=fb218 -InputSigType4233=Digital -InputCue4234=fb219 -InputSigType4234=Digital -InputCue4235=fb220 -InputSigType4235=Digital -InputCue4236=fb221 -InputSigType4236=Digital -InputCue4237=fb222 -InputSigType4237=Digital -InputCue4238=fb223 -InputSigType4238=Digital -InputCue4239=fb224 -InputSigType4239=Digital -InputCue4240=fb225 -InputSigType4240=Digital -InputCue4241=fb226 -InputSigType4241=Digital -InputCue4242=fb227 -InputSigType4242=Digital -InputCue4243=fb228 -InputSigType4243=Digital -InputCue4244=fb229 -InputSigType4244=Digital -InputCue4245=fb230 -InputSigType4245=Digital -InputCue4246=fb231 -InputSigType4246=Digital -InputCue4247=fb232 -InputSigType4247=Digital -InputCue4248=fb233 -InputSigType4248=Digital -InputCue4249=fb234 -InputSigType4249=Digital -InputCue4250=fb235 -InputSigType4250=Digital -InputCue4251=fb236 -InputSigType4251=Digital -InputCue4252=fb237 -InputSigType4252=Digital -InputCue4253=fb238 -InputSigType4253=Digital -InputCue4254=fb239 -InputSigType4254=Digital -InputCue4255=fb240 -InputSigType4255=Digital -InputCue4256=fb241 -InputSigType4256=Digital -InputCue4257=fb242 -InputSigType4257=Digital -InputCue4258=fb243 -InputSigType4258=Digital -InputCue4259=fb244 -InputSigType4259=Digital -InputCue4260=fb245 -InputSigType4260=Digital -InputCue4261=fb246 -InputSigType4261=Digital -InputCue4262=fb247 -InputSigType4262=Digital -InputCue4263=fb248 -InputSigType4263=Digital -InputCue4264=fb249 -InputSigType4264=Digital -InputCue4265=fb250 -InputSigType4265=Digital -InputCue4266=fb251 -InputSigType4266=Digital -InputCue4267=fb252 -InputSigType4267=Digital -InputCue4268=fb253 -InputSigType4268=Digital -InputCue4269=fb254 -InputSigType4269=Digital -InputCue4270=fb255 -InputSigType4270=Digital -InputCue4271=fb256 -InputSigType4271=Digital -InputCue4272=fb257 -InputSigType4272=Digital -InputCue4273=fb258 -InputSigType4273=Digital -InputCue4274=fb259 -InputSigType4274=Digital -InputCue4275=fb260 -InputSigType4275=Digital -InputCue4276=fb261 -InputSigType4276=Digital -InputCue4277=fb262 -InputSigType4277=Digital -InputCue4278=fb263 -InputSigType4278=Digital -InputCue4279=fb264 -InputSigType4279=Digital -InputCue4280=fb265 -InputSigType4280=Digital -InputCue4281=fb266 -InputSigType4281=Digital -InputCue4282=fb267 -InputSigType4282=Digital -InputCue4283=fb268 -InputSigType4283=Digital -InputCue4284=fb269 -InputSigType4284=Digital -InputCue4285=fb270 -InputSigType4285=Digital -InputCue4286=fb271 -InputSigType4286=Digital -InputCue4287=fb272 -InputSigType4287=Digital -InputCue4288=fb273 -InputSigType4288=Digital -InputCue4289=fb274 -InputSigType4289=Digital -InputCue4290=fb275 -InputSigType4290=Digital -InputCue4291=fb276 -InputSigType4291=Digital -InputCue4292=fb277 -InputSigType4292=Digital -InputCue4293=fb278 -InputSigType4293=Digital -InputCue4294=fb279 -InputSigType4294=Digital -InputCue4295=fb280 -InputSigType4295=Digital -InputCue4296=fb281 -InputSigType4296=Digital -InputCue4297=fb282 -InputSigType4297=Digital -InputCue4298=fb283 -InputSigType4298=Digital -InputCue4299=fb284 -InputSigType4299=Digital -InputCue4300=fb285 -InputSigType4300=Digital -InputCue4301=fb286 -InputSigType4301=Digital -InputCue4302=fb287 -InputSigType4302=Digital -InputCue4303=fb288 -InputSigType4303=Digital -InputCue4304=fb289 -InputSigType4304=Digital -InputCue4305=fb290 -InputSigType4305=Digital -InputCue4306=fb291 -InputSigType4306=Digital -InputCue4307=fb292 -InputSigType4307=Digital -InputCue4308=fb293 -InputSigType4308=Digital -InputCue4309=fb294 -InputSigType4309=Digital -InputCue4310=fb295 -InputSigType4310=Digital -InputCue4311=fb296 -InputSigType4311=Digital -InputCue4312=fb297 -InputSigType4312=Digital -InputCue4313=fb298 -InputSigType4313=Digital -InputCue4314=fb299 -InputSigType4314=Digital -InputCue4315=fb300 -InputSigType4315=Digital -InputCue4316=[~EndGroup~]fb -InputSigType4316=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED3~] -OutputSigType24=Digital -OutputCue25=[~UNUSED3~] -OutputSigType25=Digital -OutputCue26=[~UNUSED3~] -OutputSigType26=Digital -OutputCue27=[~UNUSED3~] -OutputSigType27=Digital -OutputCue28=[~UNUSED3~] -OutputSigType28=Digital -OutputCue29=[~UNUSED3~] -OutputSigType29=Digital -OutputCue30=[~UNUSED3~] -OutputSigType30=Digital -OutputCue31=[~UNUSED3~] -OutputSigType31=Digital -OutputCue32=[~UNUSED3~] -OutputSigType32=Digital -OutputCue33=[~UNUSED3~] -OutputSigType33=Digital -OutputCue34=[~UNUSED3~] -OutputSigType34=Digital -OutputCue35=[~UNUSED3~] -OutputSigType35=Digital -OutputCue36=[~UNUSED3~] -OutputSigType36=Digital -OutputCue37=[~UNUSED3~] -OutputSigType37=Digital -OutputCue38=[~UNUSED3~] -OutputSigType38=Digital -OutputCue39=[~UNUSED3~] -OutputSigType39=Digital -OutputCue40=[~UNUSED3~] -OutputSigType40=Digital -OutputCue41=[~UNUSED3~] -OutputSigType41=Digital -OutputCue42=[~UNUSED3~] -OutputSigType42=Digital -OutputCue43=[~UNUSED3~] -OutputSigType43=Digital -OutputCue44=[~UNUSED3~] -OutputSigType44=Digital -OutputCue45=[~UNUSED3~] -OutputSigType45=Digital -OutputCue46=[~UNUSED3~] -OutputSigType46=Digital -OutputCue47=[~UNUSED3~] -OutputSigType47=Digital -OutputCue48=[~UNUSED3~] -OutputSigType48=Digital -OutputCue49=[~UNUSED3~] -OutputSigType49=Digital -OutputCue50=[~UNUSED3~] -OutputSigType50=Digital -OutputCue51=[~UNUSED3~] -OutputSigType51=Digital -OutputCue52=[~UNUSED3~] -OutputSigType52=Digital -OutputCue53=[~UNUSED3~] -OutputSigType53=Digital -OutputCue54=[~UNUSED3~] -OutputSigType54=Digital -OutputCue55=[~UNUSED3~] -OutputSigType55=Digital -OutputCue56=[~UNUSED3~] -OutputSigType56=Digital -OutputCue57=[~UNUSED3~] -OutputSigType57=Digital -OutputCue58=[~UNUSED3~] -OutputSigType58=Digital -OutputCue59=[~UNUSED3~] -OutputSigType59=Digital -OutputCue60=[~UNUSED3~] -OutputSigType60=Digital -OutputCue61=[~UNUSED3~] -OutputSigType61=Digital -OutputCue62=[~UNUSED3~] -OutputSigType62=Digital -OutputCue63=[~UNUSED3~] -OutputSigType63=Digital -OutputCue64=[~UNUSED3~] -OutputSigType64=Digital -OutputCue65=[~UNUSED3~] -OutputSigType65=Digital -OutputCue66=[~UNUSED3~] -OutputSigType66=Digital -OutputCue67=[~UNUSED3~] -OutputSigType67=Digital -OutputCue68=[~UNUSED3~] -OutputSigType68=Digital -OutputCue69=[~UNUSED3~] -OutputSigType69=Digital -OutputCue70=[~UNUSED3~] -OutputSigType70=Digital -OutputCue71=[~UNUSED3~] -OutputSigType71=Digital -OutputCue72=[~UNUSED3~] -OutputSigType72=Digital -OutputCue73=[~UNUSED3~] -OutputSigType73=Digital -OutputCue74=[~UNUSED3~] -OutputSigType74=Digital -OutputCue75=[~UNUSED3~] -OutputSigType75=Digital -OutputCue76=[~UNUSED3~] -OutputSigType76=Digital -OutputCue77=[~UNUSED3~] -OutputSigType77=Digital -OutputCue78=[~UNUSED3~] -OutputSigType78=Digital -OutputCue79=[~UNUSED3~] -OutputSigType79=Digital -OutputCue80=[~UNUSED3~] -OutputSigType80=Digital -OutputCue81=[~UNUSED3~] -OutputSigType81=Digital -OutputCue82=[~UNUSED3~] -OutputSigType82=Digital -OutputCue83=[~UNUSED3~] -OutputSigType83=Digital -OutputCue84=[~UNUSED3~] -OutputSigType84=Digital -OutputCue85=[~UNUSED3~] -OutputSigType85=Digital -OutputCue86=[~UNUSED3~] -OutputSigType86=Digital -OutputCue87=[~UNUSED3~] -OutputSigType87=Digital -OutputCue88=[~UNUSED3~] -OutputSigType88=Digital -OutputCue89=[~UNUSED3~] -OutputSigType89=Digital -OutputCue90=[~UNUSED3~] -OutputSigType90=Digital -OutputCue91=[~UNUSED3~] -OutputSigType91=Digital -OutputCue92=[~UNUSED3~] -OutputSigType92=Digital -OutputCue93=[~UNUSED3~] -OutputSigType93=Digital -OutputCue94=[~UNUSED3~] -OutputSigType94=Digital -OutputCue95=[~UNUSED3~] -OutputSigType95=Digital -OutputCue96=[~UNUSED3~] -OutputSigType96=Digital -OutputCue97=[~UNUSED3~] -OutputSigType97=Digital -OutputCue98=[~UNUSED3~] -OutputSigType98=Digital -OutputCue99=[~UNUSED3~] -OutputSigType99=Digital -OutputCue100=[~UNUSED3~] -OutputSigType100=Digital -OutputCue101=[~UNUSED3~] -OutputSigType101=Digital -OutputCue102=[~UNUSED3~] -OutputSigType102=Digital -OutputCue103=[~UNUSED3~] -OutputSigType103=Digital -OutputCue104=[~UNUSED3~] -OutputSigType104=Digital -OutputCue105=[~UNUSED3~] -OutputSigType105=Digital -OutputCue106=[~UNUSED3~] -OutputSigType106=Digital -OutputCue107=[~UNUSED3~] -OutputSigType107=Digital -OutputCue108=[~UNUSED3~] -OutputSigType108=Digital -OutputCue109=[~UNUSED3~] -OutputSigType109=Digital -OutputCue110=[~UNUSED3~] -OutputSigType110=Digital -OutputCue111=[~UNUSED3~] -OutputSigType111=Digital -OutputCue112=[~UNUSED2~] -OutputSigType112=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED3~] -OutputSigType2034=Digital -OutputCue2035=[~UNUSED3~] -OutputSigType2035=Digital -OutputCue2036=[~UNUSED3~] -OutputSigType2036=Digital -OutputCue2037=[~UNUSED3~] -OutputSigType2037=Digital -OutputCue2038=[~UNUSED3~] -OutputSigType2038=Digital -OutputCue2039=[~UNUSED3~] -OutputSigType2039=Digital -OutputCue2040=[~UNUSED3~] -OutputSigType2040=Digital -OutputCue2041=[~UNUSED3~] -OutputSigType2041=Digital -OutputCue2042=[~UNUSED3~] -OutputSigType2042=Digital -OutputCue2043=[~UNUSED3~] -OutputSigType2043=Digital -OutputCue2044=[~UNUSED3~] -OutputSigType2044=Digital -OutputCue2045=[~UNUSED3~] -OutputSigType2045=Digital -OutputCue2046=[~UNUSED3~] -OutputSigType2046=Digital -OutputCue2047=[~UNUSED3~] -OutputSigType2047=Digital -OutputCue2048=[~UNUSED3~] -OutputSigType2048=Digital -OutputCue2049=[~UNUSED3~] -OutputSigType2049=Digital -OutputCue2050=[~UNUSED3~] -OutputSigType2050=Digital -OutputCue2051=[~UNUSED3~] -OutputSigType2051=Digital -OutputCue2052=[~UNUSED3~] -OutputSigType2052=Digital -OutputCue2053=[~UNUSED3~] -OutputSigType2053=Digital -OutputCue2054=[~UNUSED3~] -OutputSigType2054=Digital -OutputCue2055=[~UNUSED3~] -OutputSigType2055=Digital -OutputCue2056=[~UNUSED3~] -OutputSigType2056=Digital -OutputCue2057=[~UNUSED3~] -OutputSigType2057=Digital -OutputCue2058=[~UNUSED3~] -OutputSigType2058=Digital -OutputCue2059=[~UNUSED3~] -OutputSigType2059=Digital -OutputCue2060=[~UNUSED3~] -OutputSigType2060=Digital -OutputCue2061=[~UNUSED3~] -OutputSigType2061=Digital -OutputCue2062=[~UNUSED3~] -OutputSigType2062=Digital -OutputCue2063=[~UNUSED3~] -OutputSigType2063=Digital -OutputCue2064=[~UNUSED3~] -OutputSigType2064=Digital -OutputCue2065=[~UNUSED3~] -OutputSigType2065=Digital -OutputCue2066=[~UNUSED3~] -OutputSigType2066=Digital -OutputCue2067=[~UNUSED3~] -OutputSigType2067=Digital -OutputCue2068=[~UNUSED3~] -OutputSigType2068=Digital -OutputCue2069=[~UNUSED3~] -OutputSigType2069=Digital -OutputCue2070=[~UNUSED3~] -OutputSigType2070=Digital -OutputCue2071=[~UNUSED3~] -OutputSigType2071=Digital -OutputCue2072=[~UNUSED3~] -OutputSigType2072=Digital -OutputCue2073=[~UNUSED3~] -OutputSigType2073=Digital -OutputCue2074=[~UNUSED3~] -OutputSigType2074=Digital -OutputCue2075=[~UNUSED3~] -OutputSigType2075=Digital -OutputCue2076=[~UNUSED3~] -OutputSigType2076=Digital -OutputCue2077=[~UNUSED3~] -OutputSigType2077=Digital -OutputCue2078=[~UNUSED3~] -OutputSigType2078=Digital -OutputCue2079=[~UNUSED3~] -OutputSigType2079=Digital -OutputCue2080=[~UNUSED3~] -OutputSigType2080=Digital -OutputCue2081=[~UNUSED3~] -OutputSigType2081=Digital -OutputCue2082=[~UNUSED3~] -OutputSigType2082=Digital -OutputCue2083=[~UNUSED3~] -OutputSigType2083=Digital -OutputCue2084=[~UNUSED3~] -OutputSigType2084=Digital -OutputCue2085=[~UNUSED3~] -OutputSigType2085=Digital -OutputCue2086=[~UNUSED3~] -OutputSigType2086=Digital -OutputCue2087=[~UNUSED3~] -OutputSigType2087=Digital -OutputCue2088=[~UNUSED3~] -OutputSigType2088=Digital -OutputCue2089=[~UNUSED3~] -OutputSigType2089=Digital -OutputCue2090=[~UNUSED3~] -OutputSigType2090=Digital -OutputCue2091=[~UNUSED3~] -OutputSigType2091=Digital -OutputCue2092=[~UNUSED3~] -OutputSigType2092=Digital -OutputCue2093=[~UNUSED3~] -OutputSigType2093=Digital -OutputCue2094=[~UNUSED3~] -OutputSigType2094=Digital -OutputCue2095=[~UNUSED3~] -OutputSigType2095=Digital -OutputCue2096=[~UNUSED3~] -OutputSigType2096=Digital -OutputCue2097=[~UNUSED3~] -OutputSigType2097=Digital -OutputCue2098=[~UNUSED3~] -OutputSigType2098=Digital -OutputCue2099=[~UNUSED3~] -OutputSigType2099=Digital -OutputCue2100=[~UNUSED3~] -OutputSigType2100=Digital -OutputCue2101=[~UNUSED3~] -OutputSigType2101=Digital -OutputCue2102=[~UNUSED3~] -OutputSigType2102=Digital -OutputCue2103=[~UNUSED3~] -OutputSigType2103=Digital -OutputCue2104=[~UNUSED3~] -OutputSigType2104=Digital -OutputCue2105=[~UNUSED3~] -OutputSigType2105=Digital -OutputCue2106=[~UNUSED3~] -OutputSigType2106=Digital -OutputCue2107=[~UNUSED3~] -OutputSigType2107=Digital -OutputCue2108=[~UNUSED3~] -OutputSigType2108=Digital -OutputCue2109=[~UNUSED3~] -OutputSigType2109=Digital -OutputCue2110=[~UNUSED3~] -OutputSigType2110=Digital -OutputCue2111=[~UNUSED3~] -OutputSigType2111=Digital -OutputCue2112=[~UNUSED3~] -OutputSigType2112=Digital -OutputCue2113=[~UNUSED3~] -OutputSigType2113=Digital -OutputCue2114=[~UNUSED2~] -OutputSigType2114=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=press61 -OutputSigType4076=Digital -OutputCue4077=press62 -OutputSigType4077=Digital -OutputCue4078=press63 -OutputSigType4078=Digital -OutputCue4079=press64 -OutputSigType4079=Digital -OutputCue4080=press65 -OutputSigType4080=Digital -OutputCue4081=press66 -OutputSigType4081=Digital -OutputCue4082=press67 -OutputSigType4082=Digital -OutputCue4083=press68 -OutputSigType4083=Digital -OutputCue4084=press69 -OutputSigType4084=Digital -OutputCue4085=press70 -OutputSigType4085=Digital -OutputCue4086=press71 -OutputSigType4086=Digital -OutputCue4087=press72 -OutputSigType4087=Digital -OutputCue4088=press73 -OutputSigType4088=Digital -OutputCue4089=press74 -OutputSigType4089=Digital -OutputCue4090=press75 -OutputSigType4090=Digital -OutputCue4091=press76 -OutputSigType4091=Digital -OutputCue4092=press77 -OutputSigType4092=Digital -OutputCue4093=press78 -OutputSigType4093=Digital -OutputCue4094=press79 -OutputSigType4094=Digital -OutputCue4095=press80 -OutputSigType4095=Digital -OutputCue4096=press81 -OutputSigType4096=Digital -OutputCue4097=press82 -OutputSigType4097=Digital -OutputCue4098=press83 -OutputSigType4098=Digital -OutputCue4099=press84 -OutputSigType4099=Digital -OutputCue4100=press85 -OutputSigType4100=Digital -OutputCue4101=press86 -OutputSigType4101=Digital -OutputCue4102=press87 -OutputSigType4102=Digital -OutputCue4103=press88 -OutputSigType4103=Digital -OutputCue4104=press89 -OutputSigType4104=Digital -OutputCue4105=press90 -OutputSigType4105=Digital -OutputCue4106=press91 -OutputSigType4106=Digital -OutputCue4107=press92 -OutputSigType4107=Digital -OutputCue4108=press93 -OutputSigType4108=Digital -OutputCue4109=press94 -OutputSigType4109=Digital -OutputCue4110=press95 -OutputSigType4110=Digital -OutputCue4111=press96 -OutputSigType4111=Digital -OutputCue4112=press97 -OutputSigType4112=Digital -OutputCue4113=press98 -OutputSigType4113=Digital -OutputCue4114=press99 -OutputSigType4114=Digital -OutputCue4115=press100 -OutputSigType4115=Digital -OutputCue4116=press101 -OutputSigType4116=Digital -OutputCue4117=press102 -OutputSigType4117=Digital -OutputCue4118=press103 -OutputSigType4118=Digital -OutputCue4119=press104 -OutputSigType4119=Digital -OutputCue4120=press105 -OutputSigType4120=Digital -OutputCue4121=press106 -OutputSigType4121=Digital -OutputCue4122=press107 -OutputSigType4122=Digital -OutputCue4123=press108 -OutputSigType4123=Digital -OutputCue4124=press109 -OutputSigType4124=Digital -OutputCue4125=press110 -OutputSigType4125=Digital -OutputCue4126=press111 -OutputSigType4126=Digital -OutputCue4127=press112 -OutputSigType4127=Digital -OutputCue4128=press113 -OutputSigType4128=Digital -OutputCue4129=press114 -OutputSigType4129=Digital -OutputCue4130=press115 -OutputSigType4130=Digital -OutputCue4131=press116 -OutputSigType4131=Digital -OutputCue4132=press117 -OutputSigType4132=Digital -OutputCue4133=press118 -OutputSigType4133=Digital -OutputCue4134=press119 -OutputSigType4134=Digital -OutputCue4135=press120 -OutputSigType4135=Digital -OutputCue4136=press121 -OutputSigType4136=Digital -OutputCue4137=press122 -OutputSigType4137=Digital -OutputCue4138=press123 -OutputSigType4138=Digital -OutputCue4139=press124 -OutputSigType4139=Digital -OutputCue4140=press125 -OutputSigType4140=Digital -OutputCue4141=press126 -OutputSigType4141=Digital -OutputCue4142=press127 -OutputSigType4142=Digital -OutputCue4143=press128 -OutputSigType4143=Digital -OutputCue4144=press129 -OutputSigType4144=Digital -OutputCue4145=press130 -OutputSigType4145=Digital -OutputCue4146=press131 -OutputSigType4146=Digital -OutputCue4147=press132 -OutputSigType4147=Digital -OutputCue4148=press133 -OutputSigType4148=Digital -OutputCue4149=press134 -OutputSigType4149=Digital -OutputCue4150=press135 -OutputSigType4150=Digital -OutputCue4151=press136 -OutputSigType4151=Digital -OutputCue4152=press137 -OutputSigType4152=Digital -OutputCue4153=press138 -OutputSigType4153=Digital -OutputCue4154=press139 -OutputSigType4154=Digital -OutputCue4155=press140 -OutputSigType4155=Digital -OutputCue4156=press141 -OutputSigType4156=Digital -OutputCue4157=press142 -OutputSigType4157=Digital -OutputCue4158=press143 -OutputSigType4158=Digital -OutputCue4159=press144 -OutputSigType4159=Digital -OutputCue4160=press145 -OutputSigType4160=Digital -OutputCue4161=press146 -OutputSigType4161=Digital -OutputCue4162=press147 -OutputSigType4162=Digital -OutputCue4163=press148 -OutputSigType4163=Digital -OutputCue4164=press149 -OutputSigType4164=Digital -OutputCue4165=press150 -OutputSigType4165=Digital -OutputCue4166=press151 -OutputSigType4166=Digital -OutputCue4167=press152 -OutputSigType4167=Digital -OutputCue4168=press153 -OutputSigType4168=Digital -OutputCue4169=press154 -OutputSigType4169=Digital -OutputCue4170=press155 -OutputSigType4170=Digital -OutputCue4171=press156 -OutputSigType4171=Digital -OutputCue4172=press157 -OutputSigType4172=Digital -OutputCue4173=press158 -OutputSigType4173=Digital -OutputCue4174=press159 -OutputSigType4174=Digital -OutputCue4175=press160 -OutputSigType4175=Digital -OutputCue4176=press161 -OutputSigType4176=Digital -OutputCue4177=press162 -OutputSigType4177=Digital -OutputCue4178=press163 -OutputSigType4178=Digital -OutputCue4179=press164 -OutputSigType4179=Digital -OutputCue4180=press165 -OutputSigType4180=Digital -OutputCue4181=press166 -OutputSigType4181=Digital -OutputCue4182=press167 -OutputSigType4182=Digital -OutputCue4183=press168 -OutputSigType4183=Digital -OutputCue4184=press169 -OutputSigType4184=Digital -OutputCue4185=press170 -OutputSigType4185=Digital -OutputCue4186=press171 -OutputSigType4186=Digital -OutputCue4187=press172 -OutputSigType4187=Digital -OutputCue4188=press173 -OutputSigType4188=Digital -OutputCue4189=press174 -OutputSigType4189=Digital -OutputCue4190=press175 -OutputSigType4190=Digital -OutputCue4191=press176 -OutputSigType4191=Digital -OutputCue4192=press177 -OutputSigType4192=Digital -OutputCue4193=press178 -OutputSigType4193=Digital -OutputCue4194=press179 -OutputSigType4194=Digital -OutputCue4195=press180 -OutputSigType4195=Digital -OutputCue4196=press181 -OutputSigType4196=Digital -OutputCue4197=press182 -OutputSigType4197=Digital -OutputCue4198=press183 -OutputSigType4198=Digital -OutputCue4199=press184 -OutputSigType4199=Digital -OutputCue4200=press185 -OutputSigType4200=Digital -OutputCue4201=press186 -OutputSigType4201=Digital -OutputCue4202=press187 -OutputSigType4202=Digital -OutputCue4203=press188 -OutputSigType4203=Digital -OutputCue4204=press189 -OutputSigType4204=Digital -OutputCue4205=press190 -OutputSigType4205=Digital -OutputCue4206=press191 -OutputSigType4206=Digital -OutputCue4207=press192 -OutputSigType4207=Digital -OutputCue4208=press193 -OutputSigType4208=Digital -OutputCue4209=press194 -OutputSigType4209=Digital -OutputCue4210=press195 -OutputSigType4210=Digital -OutputCue4211=press196 -OutputSigType4211=Digital -OutputCue4212=press197 -OutputSigType4212=Digital -OutputCue4213=press198 -OutputSigType4213=Digital -OutputCue4214=press199 -OutputSigType4214=Digital -OutputCue4215=press200 -OutputSigType4215=Digital -OutputCue4216=press201 -OutputSigType4216=Digital -OutputCue4217=press202 -OutputSigType4217=Digital -OutputCue4218=press203 -OutputSigType4218=Digital -OutputCue4219=press204 -OutputSigType4219=Digital -OutputCue4220=press205 -OutputSigType4220=Digital -OutputCue4221=press206 -OutputSigType4221=Digital -OutputCue4222=press207 -OutputSigType4222=Digital -OutputCue4223=press208 -OutputSigType4223=Digital -OutputCue4224=press209 -OutputSigType4224=Digital -OutputCue4225=press210 -OutputSigType4225=Digital -OutputCue4226=press211 -OutputSigType4226=Digital -OutputCue4227=press212 -OutputSigType4227=Digital -OutputCue4228=press213 -OutputSigType4228=Digital -OutputCue4229=press214 -OutputSigType4229=Digital -OutputCue4230=press215 -OutputSigType4230=Digital -OutputCue4231=press216 -OutputSigType4231=Digital -OutputCue4232=press217 -OutputSigType4232=Digital -OutputCue4233=press218 -OutputSigType4233=Digital -OutputCue4234=press219 -OutputSigType4234=Digital -OutputCue4235=press220 -OutputSigType4235=Digital -OutputCue4236=press221 -OutputSigType4236=Digital -OutputCue4237=press222 -OutputSigType4237=Digital -OutputCue4238=press223 -OutputSigType4238=Digital -OutputCue4239=press224 -OutputSigType4239=Digital -OutputCue4240=press225 -OutputSigType4240=Digital -OutputCue4241=press226 -OutputSigType4241=Digital -OutputCue4242=press227 -OutputSigType4242=Digital -OutputCue4243=press228 -OutputSigType4243=Digital -OutputCue4244=press229 -OutputSigType4244=Digital -OutputCue4245=press230 -OutputSigType4245=Digital -OutputCue4246=press231 -OutputSigType4246=Digital -OutputCue4247=press232 -OutputSigType4247=Digital -OutputCue4248=press233 -OutputSigType4248=Digital -OutputCue4249=press234 -OutputSigType4249=Digital -OutputCue4250=press235 -OutputSigType4250=Digital -OutputCue4251=press236 -OutputSigType4251=Digital -OutputCue4252=press237 -OutputSigType4252=Digital -OutputCue4253=press238 -OutputSigType4253=Digital -OutputCue4254=press239 -OutputSigType4254=Digital -OutputCue4255=press240 -OutputSigType4255=Digital -OutputCue4256=press241 -OutputSigType4256=Digital -OutputCue4257=press242 -OutputSigType4257=Digital -OutputCue4258=press243 -OutputSigType4258=Digital -OutputCue4259=press244 -OutputSigType4259=Digital -OutputCue4260=press245 -OutputSigType4260=Digital -OutputCue4261=press246 -OutputSigType4261=Digital -OutputCue4262=press247 -OutputSigType4262=Digital -OutputCue4263=press248 -OutputSigType4263=Digital -OutputCue4264=press249 -OutputSigType4264=Digital -OutputCue4265=press250 -OutputSigType4265=Digital -OutputCue4266=press251 -OutputSigType4266=Digital -OutputCue4267=press252 -OutputSigType4267=Digital -OutputCue4268=press253 -OutputSigType4268=Digital -OutputCue4269=press254 -OutputSigType4269=Digital -OutputCue4270=press255 -OutputSigType4270=Digital -OutputCue4271=press256 -OutputSigType4271=Digital -OutputCue4272=press257 -OutputSigType4272=Digital -OutputCue4273=press258 -OutputSigType4273=Digital -OutputCue4274=press259 -OutputSigType4274=Digital -OutputCue4275=press260 -OutputSigType4275=Digital -OutputCue4276=press261 -OutputSigType4276=Digital -OutputCue4277=press262 -OutputSigType4277=Digital -OutputCue4278=press263 -OutputSigType4278=Digital -OutputCue4279=press264 -OutputSigType4279=Digital -OutputCue4280=press265 -OutputSigType4280=Digital -OutputCue4281=press266 -OutputSigType4281=Digital -OutputCue4282=press267 -OutputSigType4282=Digital -OutputCue4283=press268 -OutputSigType4283=Digital -OutputCue4284=press269 -OutputSigType4284=Digital -OutputCue4285=press270 -OutputSigType4285=Digital -OutputCue4286=press271 -OutputSigType4286=Digital -OutputCue4287=press272 -OutputSigType4287=Digital -OutputCue4288=press273 -OutputSigType4288=Digital -OutputCue4289=press274 -OutputSigType4289=Digital -OutputCue4290=press275 -OutputSigType4290=Digital -OutputCue4291=press276 -OutputSigType4291=Digital -OutputCue4292=press277 -OutputSigType4292=Digital -OutputCue4293=press278 -OutputSigType4293=Digital -OutputCue4294=press279 -OutputSigType4294=Digital -OutputCue4295=press280 -OutputSigType4295=Digital -OutputCue4296=press281 -OutputSigType4296=Digital -OutputCue4297=press282 -OutputSigType4297=Digital -OutputCue4298=press283 -OutputSigType4298=Digital -OutputCue4299=press284 -OutputSigType4299=Digital -OutputCue4300=press285 -OutputSigType4300=Digital -OutputCue4301=press286 -OutputSigType4301=Digital -OutputCue4302=press287 -OutputSigType4302=Digital -OutputCue4303=press288 -OutputSigType4303=Digital -OutputCue4304=press289 -OutputSigType4304=Digital -OutputCue4305=press290 -OutputSigType4305=Digital -OutputCue4306=press291 -OutputSigType4306=Digital -OutputCue4307=press292 -OutputSigType4307=Digital -OutputCue4308=press293 -OutputSigType4308=Digital -OutputCue4309=press294 -OutputSigType4309=Digital -OutputCue4310=press295 -OutputSigType4310=Digital -OutputCue4311=press296 -OutputSigType4311=Digital -OutputCue4312=press297 -OutputSigType4312=Digital -OutputCue4313=press298 -OutputSigType4313=Digital -OutputCue4314=press299 -OutputSigType4314=Digital -OutputCue4315=press300 -OutputSigType4315=Digital -OutputCue4316=[~EndGroup~]Press -OutputSigType4316=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=text-o61 -InputList3SigType72=Serial -InputList3Cue73=text-o62 -InputList3SigType73=Serial -InputList3Cue74=text-o63 -InputList3SigType74=Serial -InputList3Cue75=text-o64 -InputList3SigType75=Serial -InputList3Cue76=text-o65 -InputList3SigType76=Serial -InputList3Cue77=text-o66 -InputList3SigType77=Serial -InputList3Cue78=text-o67 -InputList3SigType78=Serial -InputList3Cue79=text-o68 -InputList3SigType79=Serial -InputList3Cue80=text-o69 -InputList3SigType80=Serial -InputList3Cue81=text-o70 -InputList3SigType81=Serial -InputList3Cue82=text-o71 -InputList3SigType82=Serial -InputList3Cue83=text-o72 -InputList3SigType83=Serial -InputList3Cue84=text-o73 -InputList3SigType84=Serial -InputList3Cue85=text-o74 -InputList3SigType85=Serial -InputList3Cue86=text-o75 -InputList3SigType86=Serial -InputList3Cue87=text-o76 -InputList3SigType87=Serial -InputList3Cue88=text-o77 -InputList3SigType88=Serial -InputList3Cue89=text-o78 -InputList3SigType89=Serial -InputList3Cue90=text-o79 -InputList3SigType90=Serial -InputList3Cue91=text-o80 -InputList3SigType91=Serial -InputList3Cue92=text-o81 -InputList3SigType92=Serial -InputList3Cue93=text-o82 -InputList3SigType93=Serial -InputList3Cue94=text-o83 -InputList3SigType94=Serial -InputList3Cue95=text-o84 -InputList3SigType95=Serial -InputList3Cue96=text-o85 -InputList3SigType96=Serial -InputList3Cue97=text-o86 -InputList3SigType97=Serial -InputList3Cue98=text-o87 -InputList3SigType98=Serial -InputList3Cue99=text-o88 -InputList3SigType99=Serial -InputList3Cue100=text-o89 -InputList3SigType100=Serial -InputList3Cue101=text-o90 -InputList3SigType101=Serial -InputList3Cue102=text-o91 -InputList3SigType102=Serial -InputList3Cue103=text-o92 -InputList3SigType103=Serial -InputList3Cue104=text-o93 -InputList3SigType104=Serial -InputList3Cue105=text-o94 -InputList3SigType105=Serial -InputList3Cue106=text-o95 -InputList3SigType106=Serial -InputList3Cue107=text-o96 -InputList3SigType107=Serial -InputList3Cue108=text-o97 -InputList3SigType108=Serial -InputList3Cue109=text-o98 -InputList3SigType109=Serial -InputList3Cue110=text-o99 -InputList3SigType110=Serial -InputList3Cue111=text-o100 -InputList3SigType111=Serial -InputList3Cue112=text-o101 -InputList3SigType112=Serial -InputList3Cue113=text-o102 -InputList3SigType113=Serial -InputList3Cue114=text-o103 -InputList3SigType114=Serial -InputList3Cue115=text-o104 -InputList3SigType115=Serial -InputList3Cue116=text-o105 -InputList3SigType116=Serial -InputList3Cue117=text-o106 -InputList3SigType117=Serial -InputList3Cue118=text-o107 -InputList3SigType118=Serial -InputList3Cue119=text-o108 -InputList3SigType119=Serial -InputList3Cue120=text-o109 -InputList3SigType120=Serial -InputList3Cue121=text-o110 -InputList3SigType121=Serial -InputList3Cue122=text-o111 -InputList3SigType122=Serial -InputList3Cue123=text-o112 -InputList3SigType123=Serial -InputList3Cue124=text-o113 -InputList3SigType124=Serial -InputList3Cue125=text-o114 -InputList3SigType125=Serial -InputList3Cue126=text-o115 -InputList3SigType126=Serial -InputList3Cue127=text-o116 -InputList3SigType127=Serial -InputList3Cue128=text-o117 -InputList3SigType128=Serial -InputList3Cue129=text-o118 -InputList3SigType129=Serial -InputList3Cue130=text-o119 -InputList3SigType130=Serial -InputList3Cue131=text-o120 -InputList3SigType131=Serial -InputList3Cue132=text-o121 -InputList3SigType132=Serial -InputList3Cue133=text-o122 -InputList3SigType133=Serial -InputList3Cue134=text-o123 -InputList3SigType134=Serial -InputList3Cue135=text-o124 -InputList3SigType135=Serial -InputList3Cue136=text-o125 -InputList3SigType136=Serial -InputList3Cue137=text-o126 -InputList3SigType137=Serial -InputList3Cue138=text-o127 -InputList3SigType138=Serial -InputList3Cue139=text-o128 -InputList3SigType139=Serial -InputList3Cue140=text-o129 -InputList3SigType140=Serial -InputList3Cue141=text-o130 -InputList3SigType141=Serial -InputList3Cue142=text-o131 -InputList3SigType142=Serial -InputList3Cue143=text-o132 -InputList3SigType143=Serial -InputList3Cue144=text-o133 -InputList3SigType144=Serial -InputList3Cue145=text-o134 -InputList3SigType145=Serial -InputList3Cue146=text-o135 -InputList3SigType146=Serial -InputList3Cue147=text-o136 -InputList3SigType147=Serial -InputList3Cue148=text-o137 -InputList3SigType148=Serial -InputList3Cue149=text-o138 -InputList3SigType149=Serial -InputList3Cue150=text-o139 -InputList3SigType150=Serial -InputList3Cue151=text-o140 -InputList3SigType151=Serial -InputList3Cue152=text-o141 -InputList3SigType152=Serial -InputList3Cue153=text-o142 -InputList3SigType153=Serial -InputList3Cue154=text-o143 -InputList3SigType154=Serial -InputList3Cue155=text-o144 -InputList3SigType155=Serial -InputList3Cue156=text-o145 -InputList3SigType156=Serial -InputList3Cue157=text-o146 -InputList3SigType157=Serial -InputList3Cue158=text-o147 -InputList3SigType158=Serial -InputList3Cue159=text-o148 -InputList3SigType159=Serial -InputList3Cue160=text-o149 -InputList3SigType160=Serial -InputList3Cue161=text-o150 -InputList3SigType161=Serial -InputList3Cue162=text-o151 -InputList3SigType162=Serial -InputList3Cue163=text-o152 -InputList3SigType163=Serial -InputList3Cue164=text-o153 -InputList3SigType164=Serial -InputList3Cue165=text-o154 -InputList3SigType165=Serial -InputList3Cue166=text-o155 -InputList3SigType166=Serial -InputList3Cue167=text-o156 -InputList3SigType167=Serial -InputList3Cue168=text-o157 -InputList3SigType168=Serial -InputList3Cue169=text-o158 -InputList3SigType169=Serial -InputList3Cue170=text-o159 -InputList3SigType170=Serial -InputList3Cue171=text-o160 -InputList3SigType171=Serial -InputList3Cue172=text-o161 -InputList3SigType172=Serial -InputList3Cue173=text-o162 -InputList3SigType173=Serial -InputList3Cue174=text-o163 -InputList3SigType174=Serial -InputList3Cue175=text-o164 -InputList3SigType175=Serial -InputList3Cue176=text-o165 -InputList3SigType176=Serial -InputList3Cue177=text-o166 -InputList3SigType177=Serial -InputList3Cue178=text-o167 -InputList3SigType178=Serial -InputList3Cue179=text-o168 -InputList3SigType179=Serial -InputList3Cue180=text-o169 -InputList3SigType180=Serial -InputList3Cue181=text-o170 -InputList3SigType181=Serial -InputList3Cue182=text-o171 -InputList3SigType182=Serial -InputList3Cue183=text-o172 -InputList3SigType183=Serial -InputList3Cue184=text-o173 -InputList3SigType184=Serial -InputList3Cue185=text-o174 -InputList3SigType185=Serial -InputList3Cue186=text-o175 -InputList3SigType186=Serial -InputList3Cue187=text-o176 -InputList3SigType187=Serial -InputList3Cue188=text-o177 -InputList3SigType188=Serial -InputList3Cue189=text-o178 -InputList3SigType189=Serial -InputList3Cue190=text-o179 -InputList3SigType190=Serial -InputList3Cue191=text-o180 -InputList3SigType191=Serial -InputList3Cue192=text-o181 -InputList3SigType192=Serial -InputList3Cue193=text-o182 -InputList3SigType193=Serial -InputList3Cue194=text-o183 -InputList3SigType194=Serial -InputList3Cue195=text-o184 -InputList3SigType195=Serial -InputList3Cue196=text-o185 -InputList3SigType196=Serial -InputList3Cue197=text-o186 -InputList3SigType197=Serial -InputList3Cue198=text-o187 -InputList3SigType198=Serial -InputList3Cue199=text-o188 -InputList3SigType199=Serial -InputList3Cue200=text-o189 -InputList3SigType200=Serial -InputList3Cue201=text-o190 -InputList3SigType201=Serial -InputList3Cue202=text-o191 -InputList3SigType202=Serial -InputList3Cue203=text-o192 -InputList3SigType203=Serial -InputList3Cue204=text-o193 -InputList3SigType204=Serial -InputList3Cue205=text-o194 -InputList3SigType205=Serial -InputList3Cue206=text-o195 -InputList3SigType206=Serial -InputList3Cue207=text-o196 -InputList3SigType207=Serial -InputList3Cue208=text-o197 -InputList3SigType208=Serial -InputList3Cue209=text-o198 -InputList3SigType209=Serial -InputList3Cue210=text-o199 -InputList3SigType210=Serial -InputList3Cue211=text-o200 -InputList3SigType211=Serial -InputList3Cue212=text-o201 -InputList3SigType212=Serial -InputList3Cue213=text-o202 -InputList3SigType213=Serial -InputList3Cue214=text-o203 -InputList3SigType214=Serial -InputList3Cue215=text-o204 -InputList3SigType215=Serial -InputList3Cue216=text-o205 -InputList3SigType216=Serial -InputList3Cue217=text-o206 -InputList3SigType217=Serial -InputList3Cue218=text-o207 -InputList3SigType218=Serial -InputList3Cue219=text-o208 -InputList3SigType219=Serial -InputList3Cue220=text-o209 -InputList3SigType220=Serial -InputList3Cue221=text-o210 -InputList3SigType221=Serial -InputList3Cue222=text-o211 -InputList3SigType222=Serial -InputList3Cue223=text-o212 -InputList3SigType223=Serial -InputList3Cue224=text-o213 -InputList3SigType224=Serial -InputList3Cue225=text-o214 -InputList3SigType225=Serial -InputList3Cue226=text-o215 -InputList3SigType226=Serial -InputList3Cue227=text-o216 -InputList3SigType227=Serial -InputList3Cue228=text-o217 -InputList3SigType228=Serial -InputList3Cue229=text-o218 -InputList3SigType229=Serial -InputList3Cue230=text-o219 -InputList3SigType230=Serial -InputList3Cue231=text-o220 -InputList3SigType231=Serial -InputList3Cue232=text-o221 -InputList3SigType232=Serial -InputList3Cue233=text-o222 -InputList3SigType233=Serial -InputList3Cue234=text-o223 -InputList3SigType234=Serial -InputList3Cue235=text-o224 -InputList3SigType235=Serial -InputList3Cue236=text-o225 -InputList3SigType236=Serial -InputList3Cue237=text-o226 -InputList3SigType237=Serial -InputList3Cue238=text-o227 -InputList3SigType238=Serial -InputList3Cue239=text-o228 -InputList3SigType239=Serial -InputList3Cue240=text-o229 -InputList3SigType240=Serial -InputList3Cue241=text-o230 -InputList3SigType241=Serial -InputList3Cue242=text-o231 -InputList3SigType242=Serial -InputList3Cue243=text-o232 -InputList3SigType243=Serial -InputList3Cue244=text-o233 -InputList3SigType244=Serial -InputList3Cue245=text-o234 -InputList3SigType245=Serial -InputList3Cue246=text-o235 -InputList3SigType246=Serial -InputList3Cue247=text-o236 -InputList3SigType247=Serial -InputList3Cue248=text-o237 -InputList3SigType248=Serial -InputList3Cue249=text-o238 -InputList3SigType249=Serial -InputList3Cue250=text-o239 -InputList3SigType250=Serial -InputList3Cue251=text-o240 -InputList3SigType251=Serial -InputList3Cue252=text-o241 -InputList3SigType252=Serial -InputList3Cue253=text-o242 -InputList3SigType253=Serial -InputList3Cue254=text-o243 -InputList3SigType254=Serial -InputList3Cue255=text-o244 -InputList3SigType255=Serial -InputList3Cue256=text-o245 -InputList3SigType256=Serial -InputList3Cue257=text-o246 -InputList3SigType257=Serial -InputList3Cue258=text-o247 -InputList3SigType258=Serial -InputList3Cue259=text-o248 -InputList3SigType259=Serial -InputList3Cue260=text-o249 -InputList3SigType260=Serial -InputList3Cue261=text-o250 -InputList3SigType261=Serial -InputList3Cue262=text-o251 -InputList3SigType262=Serial -InputList3Cue263=text-o252 -InputList3SigType263=Serial -InputList3Cue264=text-o253 -InputList3SigType264=Serial -InputList3Cue265=text-o254 -InputList3SigType265=Serial -InputList3Cue266=text-o255 -InputList3SigType266=Serial -InputList3Cue267=text-o256 -InputList3SigType267=Serial -InputList3Cue268=text-o257 -InputList3SigType268=Serial -InputList3Cue269=text-o258 -InputList3SigType269=Serial -InputList3Cue270=text-o259 -InputList3SigType270=Serial -InputList3Cue271=text-o260 -InputList3SigType271=Serial -InputList3Cue272=text-o261 -InputList3SigType272=Serial -InputList3Cue273=text-o262 -InputList3SigType273=Serial -InputList3Cue274=text-o263 -InputList3SigType274=Serial -InputList3Cue275=text-o264 -InputList3SigType275=Serial -InputList3Cue276=text-o265 -InputList3SigType276=Serial -InputList3Cue277=text-o266 -InputList3SigType277=Serial -InputList3Cue278=text-o267 -InputList3SigType278=Serial -InputList3Cue279=text-o268 -InputList3SigType279=Serial -InputList3Cue280=text-o269 -InputList3SigType280=Serial -InputList3Cue281=text-o270 -InputList3SigType281=Serial -InputList3Cue282=text-o271 -InputList3SigType282=Serial -InputList3Cue283=text-o272 -InputList3SigType283=Serial -InputList3Cue284=text-o273 -InputList3SigType284=Serial -InputList3Cue285=text-o274 -InputList3SigType285=Serial -InputList3Cue286=text-o275 -InputList3SigType286=Serial -InputList3Cue287=text-o276 -InputList3SigType287=Serial -InputList3Cue288=text-o277 -InputList3SigType288=Serial -InputList3Cue289=text-o278 -InputList3SigType289=Serial -InputList3Cue290=text-o279 -InputList3SigType290=Serial -InputList3Cue291=text-o280 -InputList3SigType291=Serial -InputList3Cue292=text-o281 -InputList3SigType292=Serial -InputList3Cue293=text-o282 -InputList3SigType293=Serial -InputList3Cue294=text-o283 -InputList3SigType294=Serial -InputList3Cue295=text-o284 -InputList3SigType295=Serial -InputList3Cue296=text-o285 -InputList3SigType296=Serial -InputList3Cue297=text-o286 -InputList3SigType297=Serial -InputList3Cue298=text-o287 -InputList3SigType298=Serial -InputList3Cue299=text-o288 -InputList3SigType299=Serial -InputList3Cue300=text-o289 -InputList3SigType300=Serial -InputList3Cue301=text-o290 -InputList3SigType301=Serial -InputList3Cue302=text-o291 -InputList3SigType302=Serial -InputList3Cue303=text-o292 -InputList3SigType303=Serial -InputList3Cue304=text-o293 -InputList3SigType304=Serial -InputList3Cue305=text-o294 -InputList3SigType305=Serial -InputList3Cue306=text-o295 -InputList3SigType306=Serial -InputList3Cue307=text-o296 -InputList3SigType307=Serial -InputList3Cue308=text-o297 -InputList3SigType308=Serial -InputList3Cue309=text-o298 -InputList3SigType309=Serial -InputList3Cue310=text-o299 -InputList3SigType310=Serial -InputList3Cue311=text-o300 -InputList3SigType311=Serial -InputList3Cue312=text-o301 -InputList3SigType312=Serial -InputList3Cue313=text-o302 -InputList3SigType313=Serial -InputList3Cue314=text-o303 -InputList3SigType314=Serial -InputList3Cue315=text-o304 -InputList3SigType315=Serial -InputList3Cue316=text-o305 -InputList3SigType316=Serial -InputList3Cue317=text-o306 -InputList3SigType317=Serial -InputList3Cue318=text-o307 -InputList3SigType318=Serial -InputList3Cue319=text-o308 -InputList3SigType319=Serial -InputList3Cue320=text-o309 -InputList3SigType320=Serial -InputList3Cue321=text-o310 -InputList3SigType321=Serial -InputList3Cue322=text-o311 -InputList3SigType322=Serial -InputList3Cue323=text-o312 -InputList3SigType323=Serial -InputList3Cue324=text-o313 -InputList3SigType324=Serial -InputList3Cue325=text-o314 -InputList3SigType325=Serial -InputList3Cue326=text-o315 -InputList3SigType326=Serial -InputList3Cue327=text-o316 -InputList3SigType327=Serial -InputList3Cue328=text-o317 -InputList3SigType328=Serial -InputList3Cue329=text-o318 -InputList3SigType329=Serial -InputList3Cue330=text-o319 -InputList3SigType330=Serial -InputList3Cue331=text-o320 -InputList3SigType331=Serial -InputList3Cue332=text-o321 -InputList3SigType332=Serial -InputList3Cue333=text-o322 -InputList3SigType333=Serial -InputList3Cue334=text-o323 -InputList3SigType334=Serial -InputList3Cue335=text-o324 -InputList3SigType335=Serial -InputList3Cue336=text-o325 -InputList3SigType336=Serial -InputList3Cue337=text-o326 -InputList3SigType337=Serial -InputList3Cue338=text-o327 -InputList3SigType338=Serial -InputList3Cue339=text-o328 -InputList3SigType339=Serial -InputList3Cue340=text-o329 -InputList3SigType340=Serial -InputList3Cue341=text-o330 -InputList3SigType341=Serial -InputList3Cue342=text-o331 -InputList3SigType342=Serial -InputList3Cue343=text-o332 -InputList3SigType343=Serial -InputList3Cue344=text-o333 -InputList3SigType344=Serial -InputList3Cue345=text-o334 -InputList3SigType345=Serial -InputList3Cue346=text-o335 -InputList3SigType346=Serial -InputList3Cue347=text-o336 -InputList3SigType347=Serial -InputList3Cue348=text-o337 -InputList3SigType348=Serial -InputList3Cue349=text-o338 -InputList3SigType349=Serial -InputList3Cue350=text-o339 -InputList3SigType350=Serial -InputList3Cue351=text-o340 -InputList3SigType351=Serial -InputList3Cue352=text-o341 -InputList3SigType352=Serial -InputList3Cue353=text-o342 -InputList3SigType353=Serial -InputList3Cue354=text-o343 -InputList3SigType354=Serial -InputList3Cue355=text-o344 -InputList3SigType355=Serial -InputList3Cue356=text-o345 -InputList3SigType356=Serial -InputList3Cue357=text-o346 -InputList3SigType357=Serial -InputList3Cue358=text-o347 -InputList3SigType358=Serial -InputList3Cue359=text-o348 -InputList3SigType359=Serial -InputList3Cue360=text-o349 -InputList3SigType360=Serial -InputList3Cue361=text-o350 -InputList3SigType361=Serial -InputList3Cue362=text-o351 -InputList3SigType362=Serial -InputList3Cue363=text-o352 -InputList3SigType363=Serial -InputList3Cue364=text-o353 -InputList3SigType364=Serial -InputList3Cue365=text-o354 -InputList3SigType365=Serial -InputList3Cue366=text-o355 -InputList3SigType366=Serial -InputList3Cue367=text-o356 -InputList3SigType367=Serial -InputList3Cue368=text-o357 -InputList3SigType368=Serial -InputList3Cue369=text-o358 -InputList3SigType369=Serial -InputList3Cue370=text-o359 -InputList3SigType370=Serial -InputList3Cue371=text-o360 -InputList3SigType371=Serial -InputList3Cue372=text-o361 -InputList3SigType372=Serial -InputList3Cue373=text-o362 -InputList3SigType373=Serial -InputList3Cue374=text-o363 -InputList3SigType374=Serial -InputList3Cue375=text-o364 -InputList3SigType375=Serial -InputList3Cue376=text-o365 -InputList3SigType376=Serial -InputList3Cue377=text-o366 -InputList3SigType377=Serial -InputList3Cue378=text-o367 -InputList3SigType378=Serial -InputList3Cue379=text-o368 -InputList3SigType379=Serial -InputList3Cue380=text-o369 -InputList3SigType380=Serial -InputList3Cue381=text-o370 -InputList3SigType381=Serial -InputList3Cue382=text-o371 -InputList3SigType382=Serial -InputList3Cue383=text-o372 -InputList3SigType383=Serial -InputList3Cue384=text-o373 -InputList3SigType384=Serial -InputList3Cue385=text-o374 -InputList3SigType385=Serial -InputList3Cue386=text-o375 -InputList3SigType386=Serial -InputList3Cue387=text-o376 -InputList3SigType387=Serial -InputList3Cue388=text-o377 -InputList3SigType388=Serial -InputList3Cue389=text-o378 -InputList3SigType389=Serial -InputList3Cue390=text-o379 -InputList3SigType390=Serial -InputList3Cue391=text-o380 -InputList3SigType391=Serial -InputList3Cue392=text-o381 -InputList3SigType392=Serial -InputList3Cue393=text-o382 -InputList3SigType393=Serial -InputList3Cue394=text-o383 -InputList3SigType394=Serial -InputList3Cue395=text-o384 -InputList3SigType395=Serial -InputList3Cue396=text-o385 -InputList3SigType396=Serial -InputList3Cue397=text-o386 -InputList3SigType397=Serial -InputList3Cue398=text-o387 -InputList3SigType398=Serial -InputList3Cue399=text-o388 -InputList3SigType399=Serial -InputList3Cue400=text-o389 -InputList3SigType400=Serial -InputList3Cue401=text-o390 -InputList3SigType401=Serial -InputList3Cue402=text-o391 -InputList3SigType402=Serial -InputList3Cue403=text-o392 -InputList3SigType403=Serial -InputList3Cue404=text-o393 -InputList3SigType404=Serial -InputList3Cue405=text-o394 -InputList3SigType405=Serial -InputList3Cue406=text-o395 -InputList3SigType406=Serial -InputList3Cue407=text-o396 -InputList3SigType407=Serial -InputList3Cue408=text-o397 -InputList3SigType408=Serial -InputList3Cue409=text-o398 -InputList3SigType409=Serial -InputList3Cue410=text-o399 -InputList3SigType410=Serial -InputList3Cue411=text-o400 -InputList3SigType411=Serial -InputList3Cue412=[~EndGroup~]text-o -InputList3SigType412=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=text-i61 -OutputList3SigType72=Serial -OutputList3Cue73=text-i62 -OutputList3SigType73=Serial -OutputList3Cue74=text-i63 -OutputList3SigType74=Serial -OutputList3Cue75=text-i64 -OutputList3SigType75=Serial -OutputList3Cue76=text-i65 -OutputList3SigType76=Serial -OutputList3Cue77=text-i66 -OutputList3SigType77=Serial -OutputList3Cue78=text-i67 -OutputList3SigType78=Serial -OutputList3Cue79=text-i68 -OutputList3SigType79=Serial -OutputList3Cue80=text-i69 -OutputList3SigType80=Serial -OutputList3Cue81=text-i70 -OutputList3SigType81=Serial -OutputList3Cue82=text-i71 -OutputList3SigType82=Serial -OutputList3Cue83=text-i72 -OutputList3SigType83=Serial -OutputList3Cue84=text-i73 -OutputList3SigType84=Serial -OutputList3Cue85=text-i74 -OutputList3SigType85=Serial -OutputList3Cue86=text-i75 -OutputList3SigType86=Serial -OutputList3Cue87=text-i76 -OutputList3SigType87=Serial -OutputList3Cue88=text-i77 -OutputList3SigType88=Serial -OutputList3Cue89=text-i78 -OutputList3SigType89=Serial -OutputList3Cue90=text-i79 -OutputList3SigType90=Serial -OutputList3Cue91=text-i80 -OutputList3SigType91=Serial -OutputList3Cue92=text-i81 -OutputList3SigType92=Serial -OutputList3Cue93=text-i82 -OutputList3SigType93=Serial -OutputList3Cue94=text-i83 -OutputList3SigType94=Serial -OutputList3Cue95=text-i84 -OutputList3SigType95=Serial -OutputList3Cue96=text-i85 -OutputList3SigType96=Serial -OutputList3Cue97=text-i86 -OutputList3SigType97=Serial -OutputList3Cue98=text-i87 -OutputList3SigType98=Serial -OutputList3Cue99=text-i88 -OutputList3SigType99=Serial -OutputList3Cue100=text-i89 -OutputList3SigType100=Serial -OutputList3Cue101=text-i90 -OutputList3SigType101=Serial -OutputList3Cue102=text-i91 -OutputList3SigType102=Serial -OutputList3Cue103=text-i92 -OutputList3SigType103=Serial -OutputList3Cue104=text-i93 -OutputList3SigType104=Serial -OutputList3Cue105=text-i94 -OutputList3SigType105=Serial -OutputList3Cue106=text-i95 -OutputList3SigType106=Serial -OutputList3Cue107=text-i96 -OutputList3SigType107=Serial -OutputList3Cue108=text-i97 -OutputList3SigType108=Serial -OutputList3Cue109=text-i98 -OutputList3SigType109=Serial -OutputList3Cue110=text-i99 -OutputList3SigType110=Serial -OutputList3Cue111=text-i100 -OutputList3SigType111=Serial -OutputList3Cue112=text-i101 -OutputList3SigType112=Serial -OutputList3Cue113=text-i102 -OutputList3SigType113=Serial -OutputList3Cue114=text-i103 -OutputList3SigType114=Serial -OutputList3Cue115=text-i104 -OutputList3SigType115=Serial -OutputList3Cue116=text-i105 -OutputList3SigType116=Serial -OutputList3Cue117=text-i106 -OutputList3SigType117=Serial -OutputList3Cue118=text-i107 -OutputList3SigType118=Serial -OutputList3Cue119=text-i108 -OutputList3SigType119=Serial -OutputList3Cue120=text-i109 -OutputList3SigType120=Serial -OutputList3Cue121=text-i110 -OutputList3SigType121=Serial -OutputList3Cue122=text-i111 -OutputList3SigType122=Serial -OutputList3Cue123=text-i112 -OutputList3SigType123=Serial -OutputList3Cue124=text-i113 -OutputList3SigType124=Serial -OutputList3Cue125=text-i114 -OutputList3SigType125=Serial -OutputList3Cue126=text-i115 -OutputList3SigType126=Serial -OutputList3Cue127=text-i116 -OutputList3SigType127=Serial -OutputList3Cue128=text-i117 -OutputList3SigType128=Serial -OutputList3Cue129=text-i118 -OutputList3SigType129=Serial -OutputList3Cue130=text-i119 -OutputList3SigType130=Serial -OutputList3Cue131=text-i120 -OutputList3SigType131=Serial -OutputList3Cue132=text-i121 -OutputList3SigType132=Serial -OutputList3Cue133=text-i122 -OutputList3SigType133=Serial -OutputList3Cue134=text-i123 -OutputList3SigType134=Serial -OutputList3Cue135=text-i124 -OutputList3SigType135=Serial -OutputList3Cue136=text-i125 -OutputList3SigType136=Serial -OutputList3Cue137=text-i126 -OutputList3SigType137=Serial -OutputList3Cue138=text-i127 -OutputList3SigType138=Serial -OutputList3Cue139=text-i128 -OutputList3SigType139=Serial -OutputList3Cue140=text-i129 -OutputList3SigType140=Serial -OutputList3Cue141=text-i130 -OutputList3SigType141=Serial -OutputList3Cue142=text-i131 -OutputList3SigType142=Serial -OutputList3Cue143=text-i132 -OutputList3SigType143=Serial -OutputList3Cue144=text-i133 -OutputList3SigType144=Serial -OutputList3Cue145=text-i134 -OutputList3SigType145=Serial -OutputList3Cue146=text-i135 -OutputList3SigType146=Serial -OutputList3Cue147=text-i136 -OutputList3SigType147=Serial -OutputList3Cue148=text-i137 -OutputList3SigType148=Serial -OutputList3Cue149=text-i138 -OutputList3SigType149=Serial -OutputList3Cue150=text-i139 -OutputList3SigType150=Serial -OutputList3Cue151=text-i140 -OutputList3SigType151=Serial -OutputList3Cue152=text-i141 -OutputList3SigType152=Serial -OutputList3Cue153=text-i142 -OutputList3SigType153=Serial -OutputList3Cue154=text-i143 -OutputList3SigType154=Serial -OutputList3Cue155=text-i144 -OutputList3SigType155=Serial -OutputList3Cue156=text-i145 -OutputList3SigType156=Serial -OutputList3Cue157=text-i146 -OutputList3SigType157=Serial -OutputList3Cue158=text-i147 -OutputList3SigType158=Serial -OutputList3Cue159=text-i148 -OutputList3SigType159=Serial -OutputList3Cue160=text-i149 -OutputList3SigType160=Serial -OutputList3Cue161=text-i150 -OutputList3SigType161=Serial -OutputList3Cue162=text-i151 -OutputList3SigType162=Serial -OutputList3Cue163=text-i152 -OutputList3SigType163=Serial -OutputList3Cue164=text-i153 -OutputList3SigType164=Serial -OutputList3Cue165=text-i154 -OutputList3SigType165=Serial -OutputList3Cue166=text-i155 -OutputList3SigType166=Serial -OutputList3Cue167=text-i156 -OutputList3SigType167=Serial -OutputList3Cue168=text-i157 -OutputList3SigType168=Serial -OutputList3Cue169=text-i158 -OutputList3SigType169=Serial -OutputList3Cue170=text-i159 -OutputList3SigType170=Serial -OutputList3Cue171=text-i160 -OutputList3SigType171=Serial -OutputList3Cue172=text-i161 -OutputList3SigType172=Serial -OutputList3Cue173=text-i162 -OutputList3SigType173=Serial -OutputList3Cue174=text-i163 -OutputList3SigType174=Serial -OutputList3Cue175=text-i164 -OutputList3SigType175=Serial -OutputList3Cue176=text-i165 -OutputList3SigType176=Serial -OutputList3Cue177=text-i166 -OutputList3SigType177=Serial -OutputList3Cue178=text-i167 -OutputList3SigType178=Serial -OutputList3Cue179=text-i168 -OutputList3SigType179=Serial -OutputList3Cue180=text-i169 -OutputList3SigType180=Serial -OutputList3Cue181=text-i170 -OutputList3SigType181=Serial -OutputList3Cue182=text-i171 -OutputList3SigType182=Serial -OutputList3Cue183=text-i172 -OutputList3SigType183=Serial -OutputList3Cue184=text-i173 -OutputList3SigType184=Serial -OutputList3Cue185=text-i174 -OutputList3SigType185=Serial -OutputList3Cue186=text-i175 -OutputList3SigType186=Serial -OutputList3Cue187=text-i176 -OutputList3SigType187=Serial -OutputList3Cue188=text-i177 -OutputList3SigType188=Serial -OutputList3Cue189=text-i178 -OutputList3SigType189=Serial -OutputList3Cue190=text-i179 -OutputList3SigType190=Serial -OutputList3Cue191=text-i180 -OutputList3SigType191=Serial -OutputList3Cue192=text-i181 -OutputList3SigType192=Serial -OutputList3Cue193=text-i182 -OutputList3SigType193=Serial -OutputList3Cue194=text-i183 -OutputList3SigType194=Serial -OutputList3Cue195=text-i184 -OutputList3SigType195=Serial -OutputList3Cue196=text-i185 -OutputList3SigType196=Serial -OutputList3Cue197=text-i186 -OutputList3SigType197=Serial -OutputList3Cue198=text-i187 -OutputList3SigType198=Serial -OutputList3Cue199=text-i188 -OutputList3SigType199=Serial -OutputList3Cue200=text-i189 -OutputList3SigType200=Serial -OutputList3Cue201=text-i190 -OutputList3SigType201=Serial -OutputList3Cue202=text-i191 -OutputList3SigType202=Serial -OutputList3Cue203=text-i192 -OutputList3SigType203=Serial -OutputList3Cue204=text-i193 -OutputList3SigType204=Serial -OutputList3Cue205=text-i194 -OutputList3SigType205=Serial -OutputList3Cue206=text-i195 -OutputList3SigType206=Serial -OutputList3Cue207=text-i196 -OutputList3SigType207=Serial -OutputList3Cue208=text-i197 -OutputList3SigType208=Serial -OutputList3Cue209=text-i198 -OutputList3SigType209=Serial -OutputList3Cue210=text-i199 -OutputList3SigType210=Serial -OutputList3Cue211=text-i200 -OutputList3SigType211=Serial -OutputList3Cue212=text-i201 -OutputList3SigType212=Serial -OutputList3Cue213=text-i202 -OutputList3SigType213=Serial -OutputList3Cue214=text-i203 -OutputList3SigType214=Serial -OutputList3Cue215=text-i204 -OutputList3SigType215=Serial -OutputList3Cue216=text-i205 -OutputList3SigType216=Serial -OutputList3Cue217=text-i206 -OutputList3SigType217=Serial -OutputList3Cue218=text-i207 -OutputList3SigType218=Serial -OutputList3Cue219=text-i208 -OutputList3SigType219=Serial -OutputList3Cue220=text-i209 -OutputList3SigType220=Serial -OutputList3Cue221=text-i210 -OutputList3SigType221=Serial -OutputList3Cue222=text-i211 -OutputList3SigType222=Serial -OutputList3Cue223=text-i212 -OutputList3SigType223=Serial -OutputList3Cue224=text-i213 -OutputList3SigType224=Serial -OutputList3Cue225=text-i214 -OutputList3SigType225=Serial -OutputList3Cue226=text-i215 -OutputList3SigType226=Serial -OutputList3Cue227=text-i216 -OutputList3SigType227=Serial -OutputList3Cue228=text-i217 -OutputList3SigType228=Serial -OutputList3Cue229=text-i218 -OutputList3SigType229=Serial -OutputList3Cue230=text-i219 -OutputList3SigType230=Serial -OutputList3Cue231=text-i220 -OutputList3SigType231=Serial -OutputList3Cue232=text-i221 -OutputList3SigType232=Serial -OutputList3Cue233=text-i222 -OutputList3SigType233=Serial -OutputList3Cue234=text-i223 -OutputList3SigType234=Serial -OutputList3Cue235=text-i224 -OutputList3SigType235=Serial -OutputList3Cue236=text-i225 -OutputList3SigType236=Serial -OutputList3Cue237=text-i226 -OutputList3SigType237=Serial -OutputList3Cue238=text-i227 -OutputList3SigType238=Serial -OutputList3Cue239=text-i228 -OutputList3SigType239=Serial -OutputList3Cue240=text-i229 -OutputList3SigType240=Serial -OutputList3Cue241=text-i230 -OutputList3SigType241=Serial -OutputList3Cue242=text-i231 -OutputList3SigType242=Serial -OutputList3Cue243=text-i232 -OutputList3SigType243=Serial -OutputList3Cue244=text-i233 -OutputList3SigType244=Serial -OutputList3Cue245=text-i234 -OutputList3SigType245=Serial -OutputList3Cue246=text-i235 -OutputList3SigType246=Serial -OutputList3Cue247=text-i236 -OutputList3SigType247=Serial -OutputList3Cue248=text-i237 -OutputList3SigType248=Serial -OutputList3Cue249=text-i238 -OutputList3SigType249=Serial -OutputList3Cue250=text-i239 -OutputList3SigType250=Serial -OutputList3Cue251=text-i240 -OutputList3SigType251=Serial -OutputList3Cue252=text-i241 -OutputList3SigType252=Serial -OutputList3Cue253=text-i242 -OutputList3SigType253=Serial -OutputList3Cue254=text-i243 -OutputList3SigType254=Serial -OutputList3Cue255=text-i244 -OutputList3SigType255=Serial -OutputList3Cue256=text-i245 -OutputList3SigType256=Serial -OutputList3Cue257=text-i246 -OutputList3SigType257=Serial -OutputList3Cue258=text-i247 -OutputList3SigType258=Serial -OutputList3Cue259=text-i248 -OutputList3SigType259=Serial -OutputList3Cue260=text-i249 -OutputList3SigType260=Serial -OutputList3Cue261=text-i250 -OutputList3SigType261=Serial -OutputList3Cue262=text-i251 -OutputList3SigType262=Serial -OutputList3Cue263=text-i252 -OutputList3SigType263=Serial -OutputList3Cue264=text-i253 -OutputList3SigType264=Serial -OutputList3Cue265=text-i254 -OutputList3SigType265=Serial -OutputList3Cue266=text-i255 -OutputList3SigType266=Serial -OutputList3Cue267=text-i256 -OutputList3SigType267=Serial -OutputList3Cue268=text-i257 -OutputList3SigType268=Serial -OutputList3Cue269=text-i258 -OutputList3SigType269=Serial -OutputList3Cue270=text-i259 -OutputList3SigType270=Serial -OutputList3Cue271=text-i260 -OutputList3SigType271=Serial -OutputList3Cue272=text-i261 -OutputList3SigType272=Serial -OutputList3Cue273=text-i262 -OutputList3SigType273=Serial -OutputList3Cue274=text-i263 -OutputList3SigType274=Serial -OutputList3Cue275=text-i264 -OutputList3SigType275=Serial -OutputList3Cue276=text-i265 -OutputList3SigType276=Serial -OutputList3Cue277=text-i266 -OutputList3SigType277=Serial -OutputList3Cue278=text-i267 -OutputList3SigType278=Serial -OutputList3Cue279=text-i268 -OutputList3SigType279=Serial -OutputList3Cue280=text-i269 -OutputList3SigType280=Serial -OutputList3Cue281=text-i270 -OutputList3SigType281=Serial -OutputList3Cue282=text-i271 -OutputList3SigType282=Serial -OutputList3Cue283=text-i272 -OutputList3SigType283=Serial -OutputList3Cue284=text-i273 -OutputList3SigType284=Serial -OutputList3Cue285=text-i274 -OutputList3SigType285=Serial -OutputList3Cue286=text-i275 -OutputList3SigType286=Serial -OutputList3Cue287=text-i276 -OutputList3SigType287=Serial -OutputList3Cue288=text-i277 -OutputList3SigType288=Serial -OutputList3Cue289=text-i278 -OutputList3SigType289=Serial -OutputList3Cue290=text-i279 -OutputList3SigType290=Serial -OutputList3Cue291=text-i280 -OutputList3SigType291=Serial -OutputList3Cue292=text-i281 -OutputList3SigType292=Serial -OutputList3Cue293=text-i282 -OutputList3SigType293=Serial -OutputList3Cue294=text-i283 -OutputList3SigType294=Serial -OutputList3Cue295=text-i284 -OutputList3SigType295=Serial -OutputList3Cue296=text-i285 -OutputList3SigType296=Serial -OutputList3Cue297=text-i286 -OutputList3SigType297=Serial -OutputList3Cue298=text-i287 -OutputList3SigType298=Serial -OutputList3Cue299=text-i288 -OutputList3SigType299=Serial -OutputList3Cue300=text-i289 -OutputList3SigType300=Serial -OutputList3Cue301=text-i290 -OutputList3SigType301=Serial -OutputList3Cue302=text-i291 -OutputList3SigType302=Serial -OutputList3Cue303=text-i292 -OutputList3SigType303=Serial -OutputList3Cue304=text-i293 -OutputList3SigType304=Serial -OutputList3Cue305=text-i294 -OutputList3SigType305=Serial -OutputList3Cue306=text-i295 -OutputList3SigType306=Serial -OutputList3Cue307=text-i296 -OutputList3SigType307=Serial -OutputList3Cue308=text-i297 -OutputList3SigType308=Serial -OutputList3Cue309=text-i298 -OutputList3SigType309=Serial -OutputList3Cue310=text-i299 -OutputList3SigType310=Serial -OutputList3Cue311=text-i300 -OutputList3SigType311=Serial -OutputList3Cue312=text-i301 -OutputList3SigType312=Serial -OutputList3Cue313=text-i302 -OutputList3SigType313=Serial -OutputList3Cue314=text-i303 -OutputList3SigType314=Serial -OutputList3Cue315=text-i304 -OutputList3SigType315=Serial -OutputList3Cue316=text-i305 -OutputList3SigType316=Serial -OutputList3Cue317=text-i306 -OutputList3SigType317=Serial -OutputList3Cue318=text-i307 -OutputList3SigType318=Serial -OutputList3Cue319=text-i308 -OutputList3SigType319=Serial -OutputList3Cue320=text-i309 -OutputList3SigType320=Serial -OutputList3Cue321=text-i310 -OutputList3SigType321=Serial -OutputList3Cue322=text-i311 -OutputList3SigType322=Serial -OutputList3Cue323=text-i312 -OutputList3SigType323=Serial -OutputList3Cue324=text-i313 -OutputList3SigType324=Serial -OutputList3Cue325=text-i314 -OutputList3SigType325=Serial -OutputList3Cue326=text-i315 -OutputList3SigType326=Serial -OutputList3Cue327=text-i316 -OutputList3SigType327=Serial -OutputList3Cue328=text-i317 -OutputList3SigType328=Serial -OutputList3Cue329=text-i318 -OutputList3SigType329=Serial -OutputList3Cue330=text-i319 -OutputList3SigType330=Serial -OutputList3Cue331=text-i320 -OutputList3SigType331=Serial -OutputList3Cue332=text-i321 -OutputList3SigType332=Serial -OutputList3Cue333=text-i322 -OutputList3SigType333=Serial -OutputList3Cue334=text-i323 -OutputList3SigType334=Serial -OutputList3Cue335=text-i324 -OutputList3SigType335=Serial -OutputList3Cue336=text-i325 -OutputList3SigType336=Serial -OutputList3Cue337=text-i326 -OutputList3SigType337=Serial -OutputList3Cue338=text-i327 -OutputList3SigType338=Serial -OutputList3Cue339=text-i328 -OutputList3SigType339=Serial -OutputList3Cue340=text-i329 -OutputList3SigType340=Serial -OutputList3Cue341=text-i330 -OutputList3SigType341=Serial -OutputList3Cue342=text-i331 -OutputList3SigType342=Serial -OutputList3Cue343=text-i332 -OutputList3SigType343=Serial -OutputList3Cue344=text-i333 -OutputList3SigType344=Serial -OutputList3Cue345=text-i334 -OutputList3SigType345=Serial -OutputList3Cue346=text-i335 -OutputList3SigType346=Serial -OutputList3Cue347=text-i336 -OutputList3SigType347=Serial -OutputList3Cue348=text-i337 -OutputList3SigType348=Serial -OutputList3Cue349=text-i338 -OutputList3SigType349=Serial -OutputList3Cue350=text-i339 -OutputList3SigType350=Serial -OutputList3Cue351=text-i340 -OutputList3SigType351=Serial -OutputList3Cue352=text-i341 -OutputList3SigType352=Serial -OutputList3Cue353=text-i342 -OutputList3SigType353=Serial -OutputList3Cue354=text-i343 -OutputList3SigType354=Serial -OutputList3Cue355=text-i344 -OutputList3SigType355=Serial -OutputList3Cue356=text-i345 -OutputList3SigType356=Serial -OutputList3Cue357=text-i346 -OutputList3SigType357=Serial -OutputList3Cue358=text-i347 -OutputList3SigType358=Serial -OutputList3Cue359=text-i348 -OutputList3SigType359=Serial -OutputList3Cue360=text-i349 -OutputList3SigType360=Serial -OutputList3Cue361=text-i350 -OutputList3SigType361=Serial -OutputList3Cue362=text-i351 -OutputList3SigType362=Serial -OutputList3Cue363=text-i352 -OutputList3SigType363=Serial -OutputList3Cue364=text-i353 -OutputList3SigType364=Serial -OutputList3Cue365=text-i354 -OutputList3SigType365=Serial -OutputList3Cue366=text-i355 -OutputList3SigType366=Serial -OutputList3Cue367=text-i356 -OutputList3SigType367=Serial -OutputList3Cue368=text-i357 -OutputList3SigType368=Serial -OutputList3Cue369=text-i358 -OutputList3SigType369=Serial -OutputList3Cue370=text-i359 -OutputList3SigType370=Serial -OutputList3Cue371=text-i360 -OutputList3SigType371=Serial -OutputList3Cue372=text-i361 -OutputList3SigType372=Serial -OutputList3Cue373=text-i362 -OutputList3SigType373=Serial -OutputList3Cue374=text-i363 -OutputList3SigType374=Serial -OutputList3Cue375=text-i364 -OutputList3SigType375=Serial -OutputList3Cue376=text-i365 -OutputList3SigType376=Serial -OutputList3Cue377=text-i366 -OutputList3SigType377=Serial -OutputList3Cue378=text-i367 -OutputList3SigType378=Serial -OutputList3Cue379=text-i368 -OutputList3SigType379=Serial -OutputList3Cue380=text-i369 -OutputList3SigType380=Serial -OutputList3Cue381=text-i370 -OutputList3SigType381=Serial -OutputList3Cue382=text-i371 -OutputList3SigType382=Serial -OutputList3Cue383=text-i372 -OutputList3SigType383=Serial -OutputList3Cue384=text-i373 -OutputList3SigType384=Serial -OutputList3Cue385=text-i374 -OutputList3SigType385=Serial -OutputList3Cue386=text-i375 -OutputList3SigType386=Serial -OutputList3Cue387=text-i376 -OutputList3SigType387=Serial -OutputList3Cue388=text-i377 -OutputList3SigType388=Serial -OutputList3Cue389=text-i378 -OutputList3SigType389=Serial -OutputList3Cue390=text-i379 -OutputList3SigType390=Serial -OutputList3Cue391=text-i380 -OutputList3SigType391=Serial -OutputList3Cue392=text-i381 -OutputList3SigType392=Serial -OutputList3Cue393=text-i382 -OutputList3SigType393=Serial -OutputList3Cue394=text-i383 -OutputList3SigType394=Serial -OutputList3Cue395=text-i384 -OutputList3SigType395=Serial -OutputList3Cue396=text-i385 -OutputList3SigType396=Serial -OutputList3Cue397=text-i386 -OutputList3SigType397=Serial -OutputList3Cue398=text-i387 -OutputList3SigType398=Serial -OutputList3Cue399=text-i388 -OutputList3SigType399=Serial -OutputList3Cue400=text-i389 -OutputList3SigType400=Serial -OutputList3Cue401=text-i390 -OutputList3SigType401=Serial -OutputList3Cue402=text-i391 -OutputList3SigType402=Serial -OutputList3Cue403=text-i392 -OutputList3SigType403=Serial -OutputList3Cue404=text-i393 -OutputList3SigType404=Serial -OutputList3Cue405=text-i394 -OutputList3SigType405=Serial -OutputList3Cue406=text-i395 -OutputList3SigType406=Serial -OutputList3Cue407=text-i396 -OutputList3SigType407=Serial -OutputList3Cue408=text-i397 -OutputList3SigType408=Serial -OutputList3Cue409=text-i398 -OutputList3SigType409=Serial -OutputList3Cue410=text-i399 -OutputList3SigType410=Serial -OutputList3Cue411=text-i400 -OutputList3SigType411=Serial -OutputList3Cue412=[~EndGroup~]text-i -OutputList3SigType412=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=10 -CedH=10 -SmartObjId=10012d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=10 -Tp=1 -HD=TRUE -DV=10012d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=10 -Name=PepperDash Essentials TSW-760_[B.AV] Object - Presets_CATV Icon List Vertical.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[B.AV] Object - DPad STB_STB DPad.ced -Hint=STB DPad (Smart Object ID=10011) -Code=11 -SGControlType=DPad -SGControlName=STB DPad -GUID=F2340FAD-85E9-4E49-B46E-15E9B096F58B -SmplCName=PepperDash Essentials TSW-760_[B.AV] Object - DPad STB_STB DPad.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10015 -;Define the number of inputs, outputs and parameters -MinVariableInputs=5 -MaxVariableInputs=5 -MinVariableOutputs=5 -MaxVariableOutputs=5 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=Up -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=Down -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=Left -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=Right -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=OK -OutputSigType5=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=11 -CedH=11 -SmartObjId=10011d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=11 -Tp=1 -HD=TRUE -DV=10011d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=11 -Name=PepperDash Essentials TSW-760_[B.AV] Object - DPad STB_STB DPad.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[B.AV] Object - Tab SetTopBox_Tab Button Horizontal.ced -Hint=Tab Button Horizontal (Smart Object ID=10081) -Code=12 -SGControlType=Horizontal Tab Button -SGControlName=Tab Button Horizontal -GUID=198C97B0-9D0C-46C2-9557-27EA33C0BE9F -SmplCName=PepperDash Essentials TSW-760_[B.AV] Object - Tab SetTopBox_Tab Button Horizontal.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10031 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4 -MaxVariableInputs=4 -MinVariableOutputs=4 -MaxVariableOutputs=4 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=Tab Button 1 Press -OutputSigType1=Digital -InputCue2=Tab Button 1 Select -InputSigType2=Digital -OutputCue2=[~UNUSED3~] -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=Tab Button 2 Press -OutputSigType3=Digital -InputCue4=Tab Button 2 Select -InputSigType4=Digital -OutputCue4=[~UNUSED3~] -OutputSigType4=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=12 -CedH=12 -SmartObjId=10081d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=12 -Tp=1 -HD=TRUE -DV=10081d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=12 -Name=PepperDash Essentials TSW-760_[B.AV] Object - Tab SetTopBox_Tab Button Horizontal.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[B.AV] Object - Dpad DVD_DVD DPad.ced -Hint=DVD DPad (Smart Object ID=10411) -Code=13 -SGControlType=DPad -SGControlName=DVD DPad -GUID=D49BCF22-C770-4146-93E6-00867D885E1E -SmplCName=PepperDash Essentials TSW-760_[B.AV] Object - Dpad DVD_DVD DPad.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10015 -;Define the number of inputs, outputs and parameters -MinVariableInputs=5 -MaxVariableInputs=5 -MinVariableOutputs=5 -MaxVariableOutputs=5 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=Up -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=Down -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=Left -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=Right -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=OK -OutputSigType5=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=13 -CedH=13 -SmartObjId=10411d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=13 -Tp=1 -HD=TRUE -DV=10411d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=13 -Name=PepperDash Essentials TSW-760_[B.AV] Object - Dpad DVD_DVD DPad.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[B.AV] Source-Set Top Box Backer_CATV Keypad.ced -Hint=CATV Keypad (Smart Object ID=10014) -Code=14 -SGControlType=Simple Keypad -SGControlName=CATV Keypad -GUID=5E33D4F4-5C5F-430C-879A-AE82529B3943 -SmplCName=PepperDash Essentials TSW-760_[B.AV] Source-Set Top Box Backer_CATV Keypad.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10061 -;Define the number of inputs, outputs and parameters -MinVariableInputs=12 -MaxVariableInputs=12 -MinVariableOutputs=12 -MaxVariableOutputs=12 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=1 -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=2 -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=3 -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=4 -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=5 -OutputSigType5=Digital -InputCue6=[~UNUSED3~] -InputSigType6=Digital -OutputCue6=6 -OutputSigType6=Digital -InputCue7=[~UNUSED3~] -InputSigType7=Digital -OutputCue7=7 -OutputSigType7=Digital -InputCue8=[~UNUSED3~] -InputSigType8=Digital -OutputCue8=8 -OutputSigType8=Digital -InputCue9=[~UNUSED3~] -InputSigType9=Digital -OutputCue9=9 -OutputSigType9=Digital -InputCue10=[~UNUSED3~] -InputSigType10=Digital -OutputCue10=0 -OutputSigType10=Digital -InputCue11=[~UNUSED3~] -InputSigType11=Digital -OutputCue11=Misc_1 -OutputSigType11=Digital -InputCue12=[~UNUSED3~] -InputSigType12=Digital -OutputCue12=Misc_2 -OutputSigType12=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=14 -CedH=14 -SmartObjId=10014d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=14 -Tp=1 -HD=TRUE -DV=10014d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=14 -Name=PepperDash Essentials TSW-760_[B.AV] Source-Set Top Box Backer_CATV Keypad.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[B.AV] Source-Set Top Box Backer_CATV Icon List Vertical.ced -Hint=CATV Icon List Vertical (Smart Object ID=3333) -Code=15 -SGControlType=Subpage Reference List Vertical -SGControlName=CATV Icon List Vertical -GUID=D6A79678-BAD2-4F6D-8104-A941FBA9432F -SmplCName=PepperDash Essentials TSW-760_[B.AV] Source-Set Top Box Backer_CATV Icon List Vertical.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4106 -MaxVariableInputs=4106 -MinVariableOutputs=4106 -MaxVariableOutputs=4106 -NumFixedParams=1 -MinVariableInputsList2=3 -MaxVariableInputsList2=3 -MinVariableOutputsList2=3 -MaxVariableOutputsList2=3 -MinVariableInputsList3=132 -MaxVariableInputsList3=132 -MinVariableOutputsList3=132 -MaxVariableOutputsList3=132 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=Item 13 Enable -InputSigType24=Digital -InputCue25=Item 14 Enable -InputSigType25=Digital -InputCue26=Item 15 Enable -InputSigType26=Digital -InputCue27=Item 16 Enable -InputSigType27=Digital -InputCue28=Item 17 Enable -InputSigType28=Digital -InputCue29=Item 18 Enable -InputSigType29=Digital -InputCue30=Item 19 Enable -InputSigType30=Digital -InputCue31=Item 20 Enable -InputSigType31=Digital -InputCue32=Item 21 Enable -InputSigType32=Digital -InputCue33=Item 22 Enable -InputSigType33=Digital -InputCue34=Item 23 Enable -InputSigType34=Digital -InputCue35=Item 24 Enable -InputSigType35=Digital -InputCue36=Item 25 Enable -InputSigType36=Digital -InputCue37=Item 26 Enable -InputSigType37=Digital -InputCue38=Item 27 Enable -InputSigType38=Digital -InputCue39=Item 28 Enable -InputSigType39=Digital -InputCue40=Item 29 Enable -InputSigType40=Digital -InputCue41=Item 30 Enable -InputSigType41=Digital -InputCue42=[~UNUSED2~] -InputSigType42=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=Item 13 Visible -InputSigType2026=Digital -InputCue2027=Item 14 Visible -InputSigType2027=Digital -InputCue2028=Item 15 Visible -InputSigType2028=Digital -InputCue2029=Item 16 Visible -InputSigType2029=Digital -InputCue2030=Item 17 Visible -InputSigType2030=Digital -InputCue2031=Item 18 Visible -InputSigType2031=Digital -InputCue2032=Item 19 Visible -InputSigType2032=Digital -InputCue2033=Item 20 Visible -InputSigType2033=Digital -InputCue2034=Item 21 Visible -InputSigType2034=Digital -InputCue2035=Item 22 Visible -InputSigType2035=Digital -InputCue2036=Item 23 Visible -InputSigType2036=Digital -InputCue2037=Item 24 Visible -InputSigType2037=Digital -InputCue2038=Item 25 Visible -InputSigType2038=Digital -InputCue2039=Item 26 Visible -InputSigType2039=Digital -InputCue2040=Item 27 Visible -InputSigType2040=Digital -InputCue2041=Item 28 Visible -InputSigType2041=Digital -InputCue2042=Item 29 Visible -InputSigType2042=Digital -InputCue2043=Item 30 Visible -InputSigType2043=Digital -InputCue2044=[~UNUSED2~] -InputSigType2044=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=fb61 -InputSigType4076=Digital -InputCue4077=fb62 -InputSigType4077=Digital -InputCue4078=fb63 -InputSigType4078=Digital -InputCue4079=fb64 -InputSigType4079=Digital -InputCue4080=fb65 -InputSigType4080=Digital -InputCue4081=fb66 -InputSigType4081=Digital -InputCue4082=fb67 -InputSigType4082=Digital -InputCue4083=fb68 -InputSigType4083=Digital -InputCue4084=fb69 -InputSigType4084=Digital -InputCue4085=fb70 -InputSigType4085=Digital -InputCue4086=fb71 -InputSigType4086=Digital -InputCue4087=fb72 -InputSigType4087=Digital -InputCue4088=fb73 -InputSigType4088=Digital -InputCue4089=fb74 -InputSigType4089=Digital -InputCue4090=fb75 -InputSigType4090=Digital -InputCue4091=fb76 -InputSigType4091=Digital -InputCue4092=fb77 -InputSigType4092=Digital -InputCue4093=fb78 -InputSigType4093=Digital -InputCue4094=fb79 -InputSigType4094=Digital -InputCue4095=fb80 -InputSigType4095=Digital -InputCue4096=fb81 -InputSigType4096=Digital -InputCue4097=fb82 -InputSigType4097=Digital -InputCue4098=fb83 -InputSigType4098=Digital -InputCue4099=fb84 -InputSigType4099=Digital -InputCue4100=fb85 -InputSigType4100=Digital -InputCue4101=fb86 -InputSigType4101=Digital -InputCue4102=fb87 -InputSigType4102=Digital -InputCue4103=fb88 -InputSigType4103=Digital -InputCue4104=fb89 -InputSigType4104=Digital -InputCue4105=fb90 -InputSigType4105=Digital -InputCue4106=[~EndGroup~]fb -InputSigType4106=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED3~] -OutputSigType24=Digital -OutputCue25=[~UNUSED3~] -OutputSigType25=Digital -OutputCue26=[~UNUSED3~] -OutputSigType26=Digital -OutputCue27=[~UNUSED3~] -OutputSigType27=Digital -OutputCue28=[~UNUSED3~] -OutputSigType28=Digital -OutputCue29=[~UNUSED3~] -OutputSigType29=Digital -OutputCue30=[~UNUSED3~] -OutputSigType30=Digital -OutputCue31=[~UNUSED3~] -OutputSigType31=Digital -OutputCue32=[~UNUSED3~] -OutputSigType32=Digital -OutputCue33=[~UNUSED3~] -OutputSigType33=Digital -OutputCue34=[~UNUSED3~] -OutputSigType34=Digital -OutputCue35=[~UNUSED3~] -OutputSigType35=Digital -OutputCue36=[~UNUSED3~] -OutputSigType36=Digital -OutputCue37=[~UNUSED3~] -OutputSigType37=Digital -OutputCue38=[~UNUSED3~] -OutputSigType38=Digital -OutputCue39=[~UNUSED3~] -OutputSigType39=Digital -OutputCue40=[~UNUSED3~] -OutputSigType40=Digital -OutputCue41=[~UNUSED3~] -OutputSigType41=Digital -OutputCue42=[~UNUSED2~] -OutputSigType42=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED3~] -OutputSigType2034=Digital -OutputCue2035=[~UNUSED3~] -OutputSigType2035=Digital -OutputCue2036=[~UNUSED3~] -OutputSigType2036=Digital -OutputCue2037=[~UNUSED3~] -OutputSigType2037=Digital -OutputCue2038=[~UNUSED3~] -OutputSigType2038=Digital -OutputCue2039=[~UNUSED3~] -OutputSigType2039=Digital -OutputCue2040=[~UNUSED3~] -OutputSigType2040=Digital -OutputCue2041=[~UNUSED3~] -OutputSigType2041=Digital -OutputCue2042=[~UNUSED3~] -OutputSigType2042=Digital -OutputCue2043=[~UNUSED3~] -OutputSigType2043=Digital -OutputCue2044=[~UNUSED2~] -OutputSigType2044=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=press61 -OutputSigType4076=Digital -OutputCue4077=press62 -OutputSigType4077=Digital -OutputCue4078=press63 -OutputSigType4078=Digital -OutputCue4079=press64 -OutputSigType4079=Digital -OutputCue4080=press65 -OutputSigType4080=Digital -OutputCue4081=press66 -OutputSigType4081=Digital -OutputCue4082=press67 -OutputSigType4082=Digital -OutputCue4083=press68 -OutputSigType4083=Digital -OutputCue4084=press69 -OutputSigType4084=Digital -OutputCue4085=press70 -OutputSigType4085=Digital -OutputCue4086=press71 -OutputSigType4086=Digital -OutputCue4087=press72 -OutputSigType4087=Digital -OutputCue4088=press73 -OutputSigType4088=Digital -OutputCue4089=press74 -OutputSigType4089=Digital -OutputCue4090=press75 -OutputSigType4090=Digital -OutputCue4091=press76 -OutputSigType4091=Digital -OutputCue4092=press77 -OutputSigType4092=Digital -OutputCue4093=press78 -OutputSigType4093=Digital -OutputCue4094=press79 -OutputSigType4094=Digital -OutputCue4095=press80 -OutputSigType4095=Digital -OutputCue4096=press81 -OutputSigType4096=Digital -OutputCue4097=press82 -OutputSigType4097=Digital -OutputCue4098=press83 -OutputSigType4098=Digital -OutputCue4099=press84 -OutputSigType4099=Digital -OutputCue4100=press85 -OutputSigType4100=Digital -OutputCue4101=press86 -OutputSigType4101=Digital -OutputCue4102=press87 -OutputSigType4102=Digital -OutputCue4103=press88 -OutputSigType4103=Digital -OutputCue4104=press89 -OutputSigType4104=Digital -OutputCue4105=press90 -OutputSigType4105=Digital -OutputCue4106=[~EndGroup~]Press -OutputSigType4106=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=text-o61 -InputList3SigType72=Serial -InputList3Cue73=text-o62 -InputList3SigType73=Serial -InputList3Cue74=text-o63 -InputList3SigType74=Serial -InputList3Cue75=text-o64 -InputList3SigType75=Serial -InputList3Cue76=text-o65 -InputList3SigType76=Serial -InputList3Cue77=text-o66 -InputList3SigType77=Serial -InputList3Cue78=text-o67 -InputList3SigType78=Serial -InputList3Cue79=text-o68 -InputList3SigType79=Serial -InputList3Cue80=text-o69 -InputList3SigType80=Serial -InputList3Cue81=text-o70 -InputList3SigType81=Serial -InputList3Cue82=text-o71 -InputList3SigType82=Serial -InputList3Cue83=text-o72 -InputList3SigType83=Serial -InputList3Cue84=text-o73 -InputList3SigType84=Serial -InputList3Cue85=text-o74 -InputList3SigType85=Serial -InputList3Cue86=text-o75 -InputList3SigType86=Serial -InputList3Cue87=text-o76 -InputList3SigType87=Serial -InputList3Cue88=text-o77 -InputList3SigType88=Serial -InputList3Cue89=text-o78 -InputList3SigType89=Serial -InputList3Cue90=text-o79 -InputList3SigType90=Serial -InputList3Cue91=text-o80 -InputList3SigType91=Serial -InputList3Cue92=text-o81 -InputList3SigType92=Serial -InputList3Cue93=text-o82 -InputList3SigType93=Serial -InputList3Cue94=text-o83 -InputList3SigType94=Serial -InputList3Cue95=text-o84 -InputList3SigType95=Serial -InputList3Cue96=text-o85 -InputList3SigType96=Serial -InputList3Cue97=text-o86 -InputList3SigType97=Serial -InputList3Cue98=text-o87 -InputList3SigType98=Serial -InputList3Cue99=text-o88 -InputList3SigType99=Serial -InputList3Cue100=text-o89 -InputList3SigType100=Serial -InputList3Cue101=text-o90 -InputList3SigType101=Serial -InputList3Cue102=text-o91 -InputList3SigType102=Serial -InputList3Cue103=text-o92 -InputList3SigType103=Serial -InputList3Cue104=text-o93 -InputList3SigType104=Serial -InputList3Cue105=text-o94 -InputList3SigType105=Serial -InputList3Cue106=text-o95 -InputList3SigType106=Serial -InputList3Cue107=text-o96 -InputList3SigType107=Serial -InputList3Cue108=text-o97 -InputList3SigType108=Serial -InputList3Cue109=text-o98 -InputList3SigType109=Serial -InputList3Cue110=text-o99 -InputList3SigType110=Serial -InputList3Cue111=text-o100 -InputList3SigType111=Serial -InputList3Cue112=text-o101 -InputList3SigType112=Serial -InputList3Cue113=text-o102 -InputList3SigType113=Serial -InputList3Cue114=text-o103 -InputList3SigType114=Serial -InputList3Cue115=text-o104 -InputList3SigType115=Serial -InputList3Cue116=text-o105 -InputList3SigType116=Serial -InputList3Cue117=text-o106 -InputList3SigType117=Serial -InputList3Cue118=text-o107 -InputList3SigType118=Serial -InputList3Cue119=text-o108 -InputList3SigType119=Serial -InputList3Cue120=text-o109 -InputList3SigType120=Serial -InputList3Cue121=text-o110 -InputList3SigType121=Serial -InputList3Cue122=text-o111 -InputList3SigType122=Serial -InputList3Cue123=text-o112 -InputList3SigType123=Serial -InputList3Cue124=text-o113 -InputList3SigType124=Serial -InputList3Cue125=text-o114 -InputList3SigType125=Serial -InputList3Cue126=text-o115 -InputList3SigType126=Serial -InputList3Cue127=text-o116 -InputList3SigType127=Serial -InputList3Cue128=text-o117 -InputList3SigType128=Serial -InputList3Cue129=text-o118 -InputList3SigType129=Serial -InputList3Cue130=text-o119 -InputList3SigType130=Serial -InputList3Cue131=text-o120 -InputList3SigType131=Serial -InputList3Cue132=[~EndGroup~]text-o -InputList3SigType132=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=text-i61 -OutputList3SigType72=Serial -OutputList3Cue73=text-i62 -OutputList3SigType73=Serial -OutputList3Cue74=text-i63 -OutputList3SigType74=Serial -OutputList3Cue75=text-i64 -OutputList3SigType75=Serial -OutputList3Cue76=text-i65 -OutputList3SigType76=Serial -OutputList3Cue77=text-i66 -OutputList3SigType77=Serial -OutputList3Cue78=text-i67 -OutputList3SigType78=Serial -OutputList3Cue79=text-i68 -OutputList3SigType79=Serial -OutputList3Cue80=text-i69 -OutputList3SigType80=Serial -OutputList3Cue81=text-i70 -OutputList3SigType81=Serial -OutputList3Cue82=text-i71 -OutputList3SigType82=Serial -OutputList3Cue83=text-i72 -OutputList3SigType83=Serial -OutputList3Cue84=text-i73 -OutputList3SigType84=Serial -OutputList3Cue85=text-i74 -OutputList3SigType85=Serial -OutputList3Cue86=text-i75 -OutputList3SigType86=Serial -OutputList3Cue87=text-i76 -OutputList3SigType87=Serial -OutputList3Cue88=text-i77 -OutputList3SigType88=Serial -OutputList3Cue89=text-i78 -OutputList3SigType89=Serial -OutputList3Cue90=text-i79 -OutputList3SigType90=Serial -OutputList3Cue91=text-i80 -OutputList3SigType91=Serial -OutputList3Cue92=text-i81 -OutputList3SigType92=Serial -OutputList3Cue93=text-i82 -OutputList3SigType93=Serial -OutputList3Cue94=text-i83 -OutputList3SigType94=Serial -OutputList3Cue95=text-i84 -OutputList3SigType95=Serial -OutputList3Cue96=text-i85 -OutputList3SigType96=Serial -OutputList3Cue97=text-i86 -OutputList3SigType97=Serial -OutputList3Cue98=text-i87 -OutputList3SigType98=Serial -OutputList3Cue99=text-i88 -OutputList3SigType99=Serial -OutputList3Cue100=text-i89 -OutputList3SigType100=Serial -OutputList3Cue101=text-i90 -OutputList3SigType101=Serial -OutputList3Cue102=text-i91 -OutputList3SigType102=Serial -OutputList3Cue103=text-i92 -OutputList3SigType103=Serial -OutputList3Cue104=text-i93 -OutputList3SigType104=Serial -OutputList3Cue105=text-i94 -OutputList3SigType105=Serial -OutputList3Cue106=text-i95 -OutputList3SigType106=Serial -OutputList3Cue107=text-i96 -OutputList3SigType107=Serial -OutputList3Cue108=text-i97 -OutputList3SigType108=Serial -OutputList3Cue109=text-i98 -OutputList3SigType109=Serial -OutputList3Cue110=text-i99 -OutputList3SigType110=Serial -OutputList3Cue111=text-i100 -OutputList3SigType111=Serial -OutputList3Cue112=text-i101 -OutputList3SigType112=Serial -OutputList3Cue113=text-i102 -OutputList3SigType113=Serial -OutputList3Cue114=text-i103 -OutputList3SigType114=Serial -OutputList3Cue115=text-i104 -OutputList3SigType115=Serial -OutputList3Cue116=text-i105 -OutputList3SigType116=Serial -OutputList3Cue117=text-i106 -OutputList3SigType117=Serial -OutputList3Cue118=text-i107 -OutputList3SigType118=Serial -OutputList3Cue119=text-i108 -OutputList3SigType119=Serial -OutputList3Cue120=text-i109 -OutputList3SigType120=Serial -OutputList3Cue121=text-i110 -OutputList3SigType121=Serial -OutputList3Cue122=text-i111 -OutputList3SigType122=Serial -OutputList3Cue123=text-i112 -OutputList3SigType123=Serial -OutputList3Cue124=text-i113 -OutputList3SigType124=Serial -OutputList3Cue125=text-i114 -OutputList3SigType125=Serial -OutputList3Cue126=text-i115 -OutputList3SigType126=Serial -OutputList3Cue127=text-i116 -OutputList3SigType127=Serial -OutputList3Cue128=text-i117 -OutputList3SigType128=Serial -OutputList3Cue129=text-i118 -OutputList3SigType129=Serial -OutputList3Cue130=text-i119 -OutputList3SigType130=Serial -OutputList3Cue131=text-i120 -OutputList3SigType131=Serial -OutputList3Cue132=[~EndGroup~]text-i -OutputList3SigType132=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=15 -CedH=15 -SmartObjId=3333d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=15 -Tp=1 -HD=TRUE -DV=3333d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=15 -Name=PepperDash Essentials TSW-760_[B.AV] Source-Set Top Box Backer_CATV Icon List Vertical.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[Z.Dialogs] Call List_Subpage Reference List Vertical_2.ced -Hint=Subpage Reference List Vertical_2 (Smart Object ID=1001) -Code=16 -SGControlType=Subpage Reference List Vertical -SGControlName=Subpage Reference List Vertical_2 -GUID=5F63F5C2-A987-4957-9243-C28805CE297E -SmplCName=PepperDash Essentials TSW-760_[Z.Dialogs] Call List_Subpage Reference List Vertical_2.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4036 -MaxVariableInputs=4036 -MinVariableOutputs=4036 -MaxVariableOutputs=4036 -NumFixedParams=1 -MinVariableInputsList2=32 -MaxVariableInputsList2=32 -MinVariableOutputsList2=32 -MaxVariableOutputsList2=32 -MinVariableInputsList3=32 -MaxVariableInputsList3=32 -MinVariableOutputsList3=32 -MaxVariableOutputsList3=32 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=[~UNUSED2~] -InputSigType16=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=[~UNUSED2~] -InputSigType2018=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=[~EndGroup~]fb -InputSigType4036=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED2~] -OutputSigType16=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED2~] -OutputSigType2018=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=[~EndGroup~]Press -OutputSigType4036=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=an_fb13 -InputList2SigType24=Analog -InputList2Cue25=an_fb14 -InputList2SigType25=Analog -InputList2Cue26=an_fb15 -InputList2SigType26=Analog -InputList2Cue27=an_fb16 -InputList2SigType27=Analog -InputList2Cue28=an_fb17 -InputList2SigType28=Analog -InputList2Cue29=an_fb18 -InputList2SigType29=Analog -InputList2Cue30=an_fb19 -InputList2SigType30=Analog -InputList2Cue31=an_fb20 -InputList2SigType31=Analog -InputList2Cue32=[~EndGroup~]an_fb -InputList2SigType32=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=an_act13 -OutputList2SigType24=Analog -OutputList2Cue25=an_act14 -OutputList2SigType25=Analog -OutputList2Cue26=an_act15 -OutputList2SigType26=Analog -OutputList2Cue27=an_act16 -OutputList2SigType27=Analog -OutputList2Cue28=an_act17 -OutputList2SigType28=Analog -OutputList2Cue29=an_act18 -OutputList2SigType29=Analog -OutputList2Cue30=an_act19 -OutputList2SigType30=Analog -OutputList2Cue31=an_act20 -OutputList2SigType31=Analog -OutputList2Cue32=[~EndGroup~]an_act -OutputList2SigType32=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=[~EndGroup~]text-o -InputList3SigType32=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=[~EndGroup~]text-i -OutputList3SigType32=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=16 -CedH=16 -SmartObjId=1001d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=16 -Tp=1 -HD=TRUE -DV=1001d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=16 -Name=PepperDash Essentials TSW-760_[Z.Dialogs] Call List_Subpage Reference List Vertical_2.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[E.Technician Controls] Menu_Dynamic Button List Vertical.ced -Hint=Dynamic Button List Vertical (Smart Object ID=3901) -Code=17 -SGControlType=Dynamic Button List Vertical -SGControlName=Dynamic Button List Vertical -GUID=15B95903-FB30-472E-9D10-82A9C3A9D7C7 -SmplCName=PepperDash Essentials TSW-760_[E.Technician Controls] Menu_Dynamic Button List Vertical.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10112 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=6016 -MaxVariableInputs=6016 -MinVariableOutputs=6016 -MaxVariableOutputs=6016 -NumFixedParams=1 -MinVariableInputsList2=2012 -MaxVariableInputsList2=2012 -MinVariableOutputsList2=2012 -MaxVariableOutputsList2=2012 -MinVariableInputsList3=4014 -MaxVariableInputsList3=4014 -MinVariableOutputsList3=4014 -MaxVariableOutputsList3=4014 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=Disable Redraw -InputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Press -InputSigType11=Digital -InputCue12=Item 1 Selected -InputSigType12=Digital -InputCue13=Item 2 Selected -InputSigType13=Digital -InputCue14=Item 3 Selected -InputSigType14=Digital -InputCue15=Item 4 Selected -InputSigType15=Digital -InputCue16=Item 5 Selected -InputSigType16=Digital -InputCue17=Item 6 Selected -InputSigType17=Digital -InputCue18=Item 7 Selected -InputSigType18=Digital -InputCue19=Item 8 Selected -InputSigType19=Digital -InputCue20=Item 9 Selected -InputSigType20=Digital -InputCue21=Item 10 Selected -InputSigType21=Digital -InputCue22=[~UNUSED2~] -InputSigType22=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Press -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Enable -InputSigType2013=Digital -InputCue2014=Item 1 Enabled -InputSigType2014=Digital -InputCue2015=Item 2 Enabled -InputSigType2015=Digital -InputCue2016=Item 3 Enabled -InputSigType2016=Digital -InputCue2017=Item 4 Enabled -InputSigType2017=Digital -InputCue2018=Item 5 Enabled -InputSigType2018=Digital -InputCue2019=Item 6 Enabled -InputSigType2019=Digital -InputCue2020=Item 7 Enabled -InputSigType2020=Digital -InputCue2021=Item 8 Enabled -InputSigType2021=Digital -InputCue2022=Item 9 Enabled -InputSigType2022=Digital -InputCue2023=Item 10 Enabled -InputSigType2023=Digital -InputCue2024=[~UNUSED2~] -InputSigType2024=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Enable -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]Visible -InputSigType4015=Digital -InputCue4016=Item 1 Visible -InputSigType4016=Digital -InputCue4017=Item 2 Visible -InputSigType4017=Digital -InputCue4018=Item 3 Visible -InputSigType4018=Digital -InputCue4019=Item 4 Visible -InputSigType4019=Digital -InputCue4020=Item 5 Visible -InputSigType4020=Digital -InputCue4021=Item 6 Visible -InputSigType4021=Digital -InputCue4022=Item 7 Visible -InputSigType4022=Digital -InputCue4023=Item 8 Visible -InputSigType4023=Digital -InputCue4024=Item 9 Visible -InputSigType4024=Digital -InputCue4025=Item 10 Visible -InputSigType4025=Digital -InputCue4026=[~UNUSED2~] -InputSigType4026=Digital|Analog|Serial|String -InputCue6016=[~EndGroup~]Visible -InputSigType6016=Digital -OutputCue1=[~UNUSED3~] -OutputSigType1=Digital -OutputCue2=Is Moving -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Press -OutputSigType11=Digital -OutputCue12=Item 1 Pressed -OutputSigType12=Digital -OutputCue13=Item 2 Pressed -OutputSigType13=Digital -OutputCue14=Item 3 Pressed -OutputSigType14=Digital -OutputCue15=Item 4 Pressed -OutputSigType15=Digital -OutputCue16=Item 5 Pressed -OutputSigType16=Digital -OutputCue17=Item 6 Pressed -OutputSigType17=Digital -OutputCue18=Item 7 Pressed -OutputSigType18=Digital -OutputCue19=Item 8 Pressed -OutputSigType19=Digital -OutputCue20=Item 9 Pressed -OutputSigType20=Digital -OutputCue21=Item 10 Pressed -OutputSigType21=Digital -OutputCue22=[~UNUSED2~] -OutputSigType22=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Press -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Enable -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED2~] -OutputSigType2024=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Enable -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Visible -OutputSigType4015=Digital -OutputCue4016=[~UNUSED3~] -OutputSigType4016=Digital -OutputCue4017=[~UNUSED3~] -OutputSigType4017=Digital -OutputCue4018=[~UNUSED3~] -OutputSigType4018=Digital -OutputCue4019=[~UNUSED3~] -OutputSigType4019=Digital -OutputCue4020=[~UNUSED3~] -OutputSigType4020=Digital -OutputCue4021=[~UNUSED3~] -OutputSigType4021=Digital -OutputCue4022=[~UNUSED3~] -OutputSigType4022=Digital -OutputCue4023=[~UNUSED3~] -OutputSigType4023=Digital -OutputCue4024=[~UNUSED3~] -OutputSigType4024=Digital -OutputCue4025=[~UNUSED3~] -OutputSigType4025=Digital -OutputCue4026=[~UNUSED2~] -OutputSigType4026=Digital|Analog|Serial|String -OutputCue6016=[~EndGroup~]Visible -OutputSigType6016=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=[~UNUSED3~] -InputList2SigType2=Analog -InputList2Cue3=Scroll To Item -InputList2SigType3=Analog -InputList2Cue4=Set Number of Items -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]Item Icons -InputList2SigType11=Analog -InputList2Cue12=Set Item 1 Icon Analog -InputList2SigType12=Analog -InputList2Cue13=Set Item 2 Icon Analog -InputList2SigType13=Analog -InputList2Cue14=Set Item 3 Icon Analog -InputList2SigType14=Analog -InputList2Cue15=Set Item 4 Icon Analog -InputList2SigType15=Analog -InputList2Cue16=Set Item 5 Icon Analog -InputList2SigType16=Analog -InputList2Cue17=Set Item 6 Icon Analog -InputList2SigType17=Analog -InputList2Cue18=Set Item 7 Icon Analog -InputList2SigType18=Analog -InputList2Cue19=Set Item 8 Icon Analog -InputList2SigType19=Analog -InputList2Cue20=Set Item 9 Icon Analog -InputList2SigType20=Analog -InputList2Cue21=Set Item 10 Icon Analog -InputList2SigType21=Analog -InputList2Cue22=[~UNUSED2~] -InputList2SigType22=Digital|Analog|Serial|String -InputList2Cue2012=[~EndGroup~]Item Icons -InputList2SigType2012=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=Item Held -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED3~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]Item Icons -OutputList2SigType11=Analog -OutputList2Cue12=[~UNUSED3~] -OutputList2SigType12=Analog -OutputList2Cue13=[~UNUSED3~] -OutputList2SigType13=Analog -OutputList2Cue14=[~UNUSED3~] -OutputList2SigType14=Analog -OutputList2Cue15=[~UNUSED3~] -OutputList2SigType15=Analog -OutputList2Cue16=[~UNUSED3~] -OutputList2SigType16=Analog -OutputList2Cue17=[~UNUSED3~] -OutputList2SigType17=Analog -OutputList2Cue18=[~UNUSED3~] -OutputList2SigType18=Analog -OutputList2Cue19=[~UNUSED3~] -OutputList2SigType19=Analog -OutputList2Cue20=[~UNUSED3~] -OutputList2SigType20=Analog -OutputList2Cue21=[~UNUSED3~] -OutputList2SigType21=Analog -OutputList2Cue22=[~UNUSED2~] -OutputList2SigType22=Digital|Analog|Serial|String -OutputList2Cue2012=[~EndGroup~]Item Icons -OutputList2SigType2012=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]Item Texts -InputList3SigType11=Serial -InputList3Cue12=Set Item 1 Text -InputList3SigType12=Serial -InputList3Cue13=Set Item 2 Text -InputList3SigType13=Serial -InputList3Cue14=Set Item 3 Text -InputList3SigType14=Serial -InputList3Cue15=Set Item 4 Text -InputList3SigType15=Serial -InputList3Cue16=Set Item 5 Text -InputList3SigType16=Serial -InputList3Cue17=Set Item 6 Text -InputList3SigType17=Serial -InputList3Cue18=Set Item 7 Text -InputList3SigType18=Serial -InputList3Cue19=Set Item 8 Text -InputList3SigType19=Serial -InputList3Cue20=Set Item 9 Text -InputList3SigType20=Serial -InputList3Cue21=Set Item 10 Text -InputList3SigType21=Serial -InputList3Cue22=[~UNUSED2~] -InputList3SigType22=Digital|Analog|Serial|String -InputList3Cue2012=[~EndGroup~]Item Texts -InputList3SigType2012=Serial -InputList3Cue2013=[~BeginGroup~]Item Icons -InputList3SigType2013=Serial -InputList3Cue2014=Set Item 1 Icon Serial -InputList3SigType2014=Serial -InputList3Cue2015=Set Item 2 Icon Serial -InputList3SigType2015=Serial -InputList3Cue2016=Set Item 3 Icon Serial -InputList3SigType2016=Serial -InputList3Cue2017=Set Item 4 Icon Serial -InputList3SigType2017=Serial -InputList3Cue2018=Set Item 5 Icon Serial -InputList3SigType2018=Serial -InputList3Cue2019=Set Item 6 Icon Serial -InputList3SigType2019=Serial -InputList3Cue2020=Set Item 7 Icon Serial -InputList3SigType2020=Serial -InputList3Cue2021=Set Item 8 Icon Serial -InputList3SigType2021=Serial -InputList3Cue2022=Set Item 9 Icon Serial -InputList3SigType2022=Serial -InputList3Cue2023=Set Item 10 Icon Serial -InputList3SigType2023=Serial -InputList3Cue2024=[~UNUSED2~] -InputList3SigType2024=Digital|Analog|Serial|String -InputList3Cue4014=[~EndGroup~]Item Icons -InputList3SigType4014=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]Item Texts -OutputList3SigType11=Serial -OutputList3Cue12=[~UNUSED3~] -OutputList3SigType12=Serial -OutputList3Cue13=[~UNUSED3~] -OutputList3SigType13=Serial -OutputList3Cue14=[~UNUSED3~] -OutputList3SigType14=Serial -OutputList3Cue15=[~UNUSED3~] -OutputList3SigType15=Serial -OutputList3Cue16=[~UNUSED3~] -OutputList3SigType16=Serial -OutputList3Cue17=[~UNUSED3~] -OutputList3SigType17=Serial -OutputList3Cue18=[~UNUSED3~] -OutputList3SigType18=Serial -OutputList3Cue19=[~UNUSED3~] -OutputList3SigType19=Serial -OutputList3Cue20=[~UNUSED3~] -OutputList3SigType20=Serial -OutputList3Cue21=[~UNUSED3~] -OutputList3SigType21=Serial -OutputList3Cue22=[~UNUSED2~] -OutputList3SigType22=Digital|Analog|Serial|String -OutputList3Cue2012=[~EndGroup~]Item Texts -OutputList3SigType2012=Serial -OutputList3Cue2013=[~BeginGroup~]Item Icons -OutputList3SigType2013=Serial -OutputList3Cue2014=[~UNUSED3~] -OutputList3SigType2014=Serial -OutputList3Cue2015=[~UNUSED3~] -OutputList3SigType2015=Serial -OutputList3Cue2016=[~UNUSED3~] -OutputList3SigType2016=Serial -OutputList3Cue2017=[~UNUSED3~] -OutputList3SigType2017=Serial -OutputList3Cue2018=[~UNUSED3~] -OutputList3SigType2018=Serial -OutputList3Cue2019=[~UNUSED3~] -OutputList3SigType2019=Serial -OutputList3Cue2020=[~UNUSED3~] -OutputList3SigType2020=Serial -OutputList3Cue2021=[~UNUSED3~] -OutputList3SigType2021=Serial -OutputList3Cue2022=[~UNUSED3~] -OutputList3SigType2022=Serial -OutputList3Cue2023=[~UNUSED3~] -OutputList3SigType2023=Serial -OutputList3Cue2024=[~UNUSED2~] -OutputList3SigType2024=Digital|Analog|Serial|String -OutputList3Cue4014=[~EndGroup~]Item Icons -OutputList3SigType4014=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=17 -CedH=17 -SmartObjId=3901d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=17 -Tp=1 -HD=TRUE -DV=3901d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=17 -Name=PepperDash Essentials TSW-760_[E.Technician Controls] Menu_Dynamic Button List Vertical.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[Z.Dialogs] Schedule List_Subpage Reference List Vertical.ced -Hint=Subpage Reference List Vertical (Smart Object ID=15023) -Code=18 -SGControlType=Subpage Reference List Vertical -SGControlName=Subpage Reference List Vertical -GUID=EC6E6B35-F033-4F14-9465-FEEBE20455CC -SmplCName=PepperDash Essentials TSW-760_[Z.Dialogs] Schedule List_Subpage Reference List Vertical.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4052 -MaxVariableInputs=4052 -MinVariableOutputs=4052 -MaxVariableOutputs=4052 -NumFixedParams=1 -MinVariableInputsList2=48 -MaxVariableInputsList2=48 -MinVariableOutputsList2=48 -MaxVariableOutputsList2=48 -MinVariableInputsList3=72 -MaxVariableInputsList3=72 -MinVariableOutputsList3=72 -MaxVariableOutputsList3=72 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=[~UNUSED2~] -InputSigType24=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=[~UNUSED2~] -InputSigType2026=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=[~EndGroup~]fb -InputSigType4052=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED2~] -OutputSigType24=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED2~] -OutputSigType2026=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=[~EndGroup~]Press -OutputSigType4052=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=an_fb13 -InputList2SigType24=Analog -InputList2Cue25=an_fb14 -InputList2SigType25=Analog -InputList2Cue26=an_fb15 -InputList2SigType26=Analog -InputList2Cue27=an_fb16 -InputList2SigType27=Analog -InputList2Cue28=an_fb17 -InputList2SigType28=Analog -InputList2Cue29=an_fb18 -InputList2SigType29=Analog -InputList2Cue30=an_fb19 -InputList2SigType30=Analog -InputList2Cue31=an_fb20 -InputList2SigType31=Analog -InputList2Cue32=an_fb21 -InputList2SigType32=Analog -InputList2Cue33=an_fb22 -InputList2SigType33=Analog -InputList2Cue34=an_fb23 -InputList2SigType34=Analog -InputList2Cue35=an_fb24 -InputList2SigType35=Analog -InputList2Cue36=an_fb25 -InputList2SigType36=Analog -InputList2Cue37=an_fb26 -InputList2SigType37=Analog -InputList2Cue38=an_fb27 -InputList2SigType38=Analog -InputList2Cue39=an_fb28 -InputList2SigType39=Analog -InputList2Cue40=an_fb29 -InputList2SigType40=Analog -InputList2Cue41=an_fb30 -InputList2SigType41=Analog -InputList2Cue42=an_fb31 -InputList2SigType42=Analog -InputList2Cue43=an_fb32 -InputList2SigType43=Analog -InputList2Cue44=an_fb33 -InputList2SigType44=Analog -InputList2Cue45=an_fb34 -InputList2SigType45=Analog -InputList2Cue46=an_fb35 -InputList2SigType46=Analog -InputList2Cue47=an_fb36 -InputList2SigType47=Analog -InputList2Cue48=[~EndGroup~]an_fb -InputList2SigType48=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=an_act13 -OutputList2SigType24=Analog -OutputList2Cue25=an_act14 -OutputList2SigType25=Analog -OutputList2Cue26=an_act15 -OutputList2SigType26=Analog -OutputList2Cue27=an_act16 -OutputList2SigType27=Analog -OutputList2Cue28=an_act17 -OutputList2SigType28=Analog -OutputList2Cue29=an_act18 -OutputList2SigType29=Analog -OutputList2Cue30=an_act19 -OutputList2SigType30=Analog -OutputList2Cue31=an_act20 -OutputList2SigType31=Analog -OutputList2Cue32=an_act21 -OutputList2SigType32=Analog -OutputList2Cue33=an_act22 -OutputList2SigType33=Analog -OutputList2Cue34=an_act23 -OutputList2SigType34=Analog -OutputList2Cue35=an_act24 -OutputList2SigType35=Analog -OutputList2Cue36=an_act25 -OutputList2SigType36=Analog -OutputList2Cue37=an_act26 -OutputList2SigType37=Analog -OutputList2Cue38=an_act27 -OutputList2SigType38=Analog -OutputList2Cue39=an_act28 -OutputList2SigType39=Analog -OutputList2Cue40=an_act29 -OutputList2SigType40=Analog -OutputList2Cue41=an_act30 -OutputList2SigType41=Analog -OutputList2Cue42=an_act31 -OutputList2SigType42=Analog -OutputList2Cue43=an_act32 -OutputList2SigType43=Analog -OutputList2Cue44=an_act33 -OutputList2SigType44=Analog -OutputList2Cue45=an_act34 -OutputList2SigType45=Analog -OutputList2Cue46=an_act35 -OutputList2SigType46=Analog -OutputList2Cue47=an_act36 -OutputList2SigType47=Analog -OutputList2Cue48=[~EndGroup~]an_act -OutputList2SigType48=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=[~EndGroup~]text-o -InputList3SigType72=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=[~EndGroup~]text-i -OutputList3SigType72=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=18 -CedH=18 -SmartObjId=15023d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=18 -Tp=1 -HD=TRUE -DV=15023d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=18 -Name=PepperDash Essentials TSW-760_[Z.Dialogs] Schedule List_Subpage Reference List Vertical.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials TSW-760_[D.VC] Recents_Dynamic Button List Vertical_2.ced -Hint=Dynamic Button List Vertical_2 (Smart Object ID=1203) -Code=19 -SGControlType=Dynamic Button List Vertical -SGControlName=Dynamic Button List Vertical_2 -GUID=2C4B55E4-42AC-486D-BC6E-C7DD7D24C974 -SmplCName=PepperDash Essentials TSW-760_[D.VC] Recents_Dynamic Button List Vertical_2.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10112 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=6016 -MaxVariableInputs=6016 -MinVariableOutputs=6016 -MaxVariableOutputs=6016 -NumFixedParams=1 -MinVariableInputsList2=2012 -MaxVariableInputsList2=2012 -MinVariableOutputsList2=2012 -MaxVariableOutputsList2=2012 -MinVariableInputsList3=4014 -MaxVariableInputsList3=4014 -MinVariableOutputsList3=4014 -MaxVariableOutputsList3=4014 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=Disable Redraw -InputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Press -InputSigType11=Digital -InputCue12=Item 1 Selected -InputSigType12=Digital -InputCue13=Item 2 Selected -InputSigType13=Digital -InputCue14=Item 3 Selected -InputSigType14=Digital -InputCue15=Item 4 Selected -InputSigType15=Digital -InputCue16=Item 5 Selected -InputSigType16=Digital -InputCue17=Item 6 Selected -InputSigType17=Digital -InputCue18=Item 7 Selected -InputSigType18=Digital -InputCue19=Item 8 Selected -InputSigType19=Digital -InputCue20=Item 9 Selected -InputSigType20=Digital -InputCue21=Item 10 Selected -InputSigType21=Digital -InputCue22=Item 11 Selected -InputSigType22=Digital -InputCue23=Item 12 Selected -InputSigType23=Digital -InputCue24=Item 13 Selected -InputSigType24=Digital -InputCue25=Item 14 Selected -InputSigType25=Digital -InputCue26=Item 15 Selected -InputSigType26=Digital -InputCue27=Item 16 Selected -InputSigType27=Digital -InputCue28=Item 17 Selected -InputSigType28=Digital -InputCue29=Item 18 Selected -InputSigType29=Digital -InputCue30=Item 19 Selected -InputSigType30=Digital -InputCue31=Item 20 Selected -InputSigType31=Digital -InputCue32=Item 21 Selected -InputSigType32=Digital -InputCue33=Item 22 Selected -InputSigType33=Digital -InputCue34=Item 23 Selected -InputSigType34=Digital -InputCue35=Item 24 Selected -InputSigType35=Digital -InputCue36=Item 25 Selected -InputSigType36=Digital -InputCue37=Item 26 Selected -InputSigType37=Digital -InputCue38=Item 27 Selected -InputSigType38=Digital -InputCue39=Item 28 Selected -InputSigType39=Digital -InputCue40=Item 29 Selected -InputSigType40=Digital -InputCue41=Item 30 Selected -InputSigType41=Digital -InputCue42=[~UNUSED2~] -InputSigType42=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Press -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Enable -InputSigType2013=Digital -InputCue2014=Item 1 Enabled -InputSigType2014=Digital -InputCue2015=Item 2 Enabled -InputSigType2015=Digital -InputCue2016=Item 3 Enabled -InputSigType2016=Digital -InputCue2017=Item 4 Enabled -InputSigType2017=Digital -InputCue2018=Item 5 Enabled -InputSigType2018=Digital -InputCue2019=Item 6 Enabled -InputSigType2019=Digital -InputCue2020=Item 7 Enabled -InputSigType2020=Digital -InputCue2021=Item 8 Enabled -InputSigType2021=Digital -InputCue2022=Item 9 Enabled -InputSigType2022=Digital -InputCue2023=Item 10 Enabled -InputSigType2023=Digital -InputCue2024=Item 11 Enabled -InputSigType2024=Digital -InputCue2025=Item 12 Enabled -InputSigType2025=Digital -InputCue2026=Item 13 Enabled -InputSigType2026=Digital -InputCue2027=Item 14 Enabled -InputSigType2027=Digital -InputCue2028=Item 15 Enabled -InputSigType2028=Digital -InputCue2029=Item 16 Enabled -InputSigType2029=Digital -InputCue2030=Item 17 Enabled -InputSigType2030=Digital -InputCue2031=Item 18 Enabled -InputSigType2031=Digital -InputCue2032=Item 19 Enabled -InputSigType2032=Digital -InputCue2033=Item 20 Enabled -InputSigType2033=Digital -InputCue2034=Item 21 Enabled -InputSigType2034=Digital -InputCue2035=Item 22 Enabled -InputSigType2035=Digital -InputCue2036=Item 23 Enabled -InputSigType2036=Digital -InputCue2037=Item 24 Enabled -InputSigType2037=Digital -InputCue2038=Item 25 Enabled -InputSigType2038=Digital -InputCue2039=Item 26 Enabled -InputSigType2039=Digital -InputCue2040=Item 27 Enabled -InputSigType2040=Digital -InputCue2041=Item 28 Enabled -InputSigType2041=Digital -InputCue2042=Item 29 Enabled -InputSigType2042=Digital -InputCue2043=Item 30 Enabled -InputSigType2043=Digital -InputCue2044=[~UNUSED2~] -InputSigType2044=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Enable -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]Visible -InputSigType4015=Digital -InputCue4016=Item 1 Visible -InputSigType4016=Digital -InputCue4017=Item 2 Visible -InputSigType4017=Digital -InputCue4018=Item 3 Visible -InputSigType4018=Digital -InputCue4019=Item 4 Visible -InputSigType4019=Digital -InputCue4020=Item 5 Visible -InputSigType4020=Digital -InputCue4021=Item 6 Visible -InputSigType4021=Digital -InputCue4022=Item 7 Visible -InputSigType4022=Digital -InputCue4023=Item 8 Visible -InputSigType4023=Digital -InputCue4024=Item 9 Visible -InputSigType4024=Digital -InputCue4025=Item 10 Visible -InputSigType4025=Digital -InputCue4026=Item 11 Visible -InputSigType4026=Digital -InputCue4027=Item 12 Visible -InputSigType4027=Digital -InputCue4028=Item 13 Visible -InputSigType4028=Digital -InputCue4029=Item 14 Visible -InputSigType4029=Digital -InputCue4030=Item 15 Visible -InputSigType4030=Digital -InputCue4031=Item 16 Visible -InputSigType4031=Digital -InputCue4032=Item 17 Visible -InputSigType4032=Digital -InputCue4033=Item 18 Visible -InputSigType4033=Digital -InputCue4034=Item 19 Visible -InputSigType4034=Digital -InputCue4035=Item 20 Visible -InputSigType4035=Digital -InputCue4036=Item 21 Visible -InputSigType4036=Digital -InputCue4037=Item 22 Visible -InputSigType4037=Digital -InputCue4038=Item 23 Visible -InputSigType4038=Digital -InputCue4039=Item 24 Visible -InputSigType4039=Digital -InputCue4040=Item 25 Visible -InputSigType4040=Digital -InputCue4041=Item 26 Visible -InputSigType4041=Digital -InputCue4042=Item 27 Visible -InputSigType4042=Digital -InputCue4043=Item 28 Visible -InputSigType4043=Digital -InputCue4044=Item 29 Visible -InputSigType4044=Digital -InputCue4045=Item 30 Visible -InputSigType4045=Digital -InputCue4046=[~UNUSED2~] -InputSigType4046=Digital|Analog|Serial|String -InputCue6016=[~EndGroup~]Visible -InputSigType6016=Digital -OutputCue1=[~UNUSED3~] -OutputSigType1=Digital -OutputCue2=Is Moving -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Press -OutputSigType11=Digital -OutputCue12=Item 1 Pressed -OutputSigType12=Digital -OutputCue13=Item 2 Pressed -OutputSigType13=Digital -OutputCue14=Item 3 Pressed -OutputSigType14=Digital -OutputCue15=Item 4 Pressed -OutputSigType15=Digital -OutputCue16=Item 5 Pressed -OutputSigType16=Digital -OutputCue17=Item 6 Pressed -OutputSigType17=Digital -OutputCue18=Item 7 Pressed -OutputSigType18=Digital -OutputCue19=Item 8 Pressed -OutputSigType19=Digital -OutputCue20=Item 9 Pressed -OutputSigType20=Digital -OutputCue21=Item 10 Pressed -OutputSigType21=Digital -OutputCue22=Item 11 Pressed -OutputSigType22=Digital -OutputCue23=Item 12 Pressed -OutputSigType23=Digital -OutputCue24=Item 13 Pressed -OutputSigType24=Digital -OutputCue25=Item 14 Pressed -OutputSigType25=Digital -OutputCue26=Item 15 Pressed -OutputSigType26=Digital -OutputCue27=Item 16 Pressed -OutputSigType27=Digital -OutputCue28=Item 17 Pressed -OutputSigType28=Digital -OutputCue29=Item 18 Pressed -OutputSigType29=Digital -OutputCue30=Item 19 Pressed -OutputSigType30=Digital -OutputCue31=Item 20 Pressed -OutputSigType31=Digital -OutputCue32=Item 21 Pressed -OutputSigType32=Digital -OutputCue33=Item 22 Pressed -OutputSigType33=Digital -OutputCue34=Item 23 Pressed -OutputSigType34=Digital -OutputCue35=Item 24 Pressed -OutputSigType35=Digital -OutputCue36=Item 25 Pressed -OutputSigType36=Digital -OutputCue37=Item 26 Pressed -OutputSigType37=Digital -OutputCue38=Item 27 Pressed -OutputSigType38=Digital -OutputCue39=Item 28 Pressed -OutputSigType39=Digital -OutputCue40=Item 29 Pressed -OutputSigType40=Digital -OutputCue41=Item 30 Pressed -OutputSigType41=Digital -OutputCue42=[~UNUSED2~] -OutputSigType42=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Press -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Enable -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED3~] -OutputSigType2034=Digital -OutputCue2035=[~UNUSED3~] -OutputSigType2035=Digital -OutputCue2036=[~UNUSED3~] -OutputSigType2036=Digital -OutputCue2037=[~UNUSED3~] -OutputSigType2037=Digital -OutputCue2038=[~UNUSED3~] -OutputSigType2038=Digital -OutputCue2039=[~UNUSED3~] -OutputSigType2039=Digital -OutputCue2040=[~UNUSED3~] -OutputSigType2040=Digital -OutputCue2041=[~UNUSED3~] -OutputSigType2041=Digital -OutputCue2042=[~UNUSED3~] -OutputSigType2042=Digital -OutputCue2043=[~UNUSED3~] -OutputSigType2043=Digital -OutputCue2044=[~UNUSED2~] -OutputSigType2044=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Enable -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Visible -OutputSigType4015=Digital -OutputCue4016=[~UNUSED3~] -OutputSigType4016=Digital -OutputCue4017=[~UNUSED3~] -OutputSigType4017=Digital -OutputCue4018=[~UNUSED3~] -OutputSigType4018=Digital -OutputCue4019=[~UNUSED3~] -OutputSigType4019=Digital -OutputCue4020=[~UNUSED3~] -OutputSigType4020=Digital -OutputCue4021=[~UNUSED3~] -OutputSigType4021=Digital -OutputCue4022=[~UNUSED3~] -OutputSigType4022=Digital -OutputCue4023=[~UNUSED3~] -OutputSigType4023=Digital -OutputCue4024=[~UNUSED3~] -OutputSigType4024=Digital -OutputCue4025=[~UNUSED3~] -OutputSigType4025=Digital -OutputCue4026=[~UNUSED3~] -OutputSigType4026=Digital -OutputCue4027=[~UNUSED3~] -OutputSigType4027=Digital -OutputCue4028=[~UNUSED3~] -OutputSigType4028=Digital -OutputCue4029=[~UNUSED3~] -OutputSigType4029=Digital -OutputCue4030=[~UNUSED3~] -OutputSigType4030=Digital -OutputCue4031=[~UNUSED3~] -OutputSigType4031=Digital -OutputCue4032=[~UNUSED3~] -OutputSigType4032=Digital -OutputCue4033=[~UNUSED3~] -OutputSigType4033=Digital -OutputCue4034=[~UNUSED3~] -OutputSigType4034=Digital -OutputCue4035=[~UNUSED3~] -OutputSigType4035=Digital -OutputCue4036=[~UNUSED3~] -OutputSigType4036=Digital -OutputCue4037=[~UNUSED3~] -OutputSigType4037=Digital -OutputCue4038=[~UNUSED3~] -OutputSigType4038=Digital -OutputCue4039=[~UNUSED3~] -OutputSigType4039=Digital -OutputCue4040=[~UNUSED3~] -OutputSigType4040=Digital -OutputCue4041=[~UNUSED3~] -OutputSigType4041=Digital -OutputCue4042=[~UNUSED3~] -OutputSigType4042=Digital -OutputCue4043=[~UNUSED3~] -OutputSigType4043=Digital -OutputCue4044=[~UNUSED3~] -OutputSigType4044=Digital -OutputCue4045=[~UNUSED3~] -OutputSigType4045=Digital -OutputCue4046=[~UNUSED2~] -OutputSigType4046=Digital|Analog|Serial|String -OutputCue6016=[~EndGroup~]Visible -OutputSigType6016=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=[~UNUSED3~] -InputList2SigType2=Analog -InputList2Cue3=Scroll To Item -InputList2SigType3=Analog -InputList2Cue4=Set Number of Items -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]Item Icons -InputList2SigType11=Analog -InputList2Cue12=Set Item 1 Icon Analog -InputList2SigType12=Analog -InputList2Cue13=Set Item 2 Icon Analog -InputList2SigType13=Analog -InputList2Cue14=Set Item 3 Icon Analog -InputList2SigType14=Analog -InputList2Cue15=Set Item 4 Icon Analog -InputList2SigType15=Analog -InputList2Cue16=Set Item 5 Icon Analog -InputList2SigType16=Analog -InputList2Cue17=Set Item 6 Icon Analog -InputList2SigType17=Analog -InputList2Cue18=Set Item 7 Icon Analog -InputList2SigType18=Analog -InputList2Cue19=Set Item 8 Icon Analog -InputList2SigType19=Analog -InputList2Cue20=Set Item 9 Icon Analog -InputList2SigType20=Analog -InputList2Cue21=Set Item 10 Icon Analog -InputList2SigType21=Analog -InputList2Cue22=Set Item 11 Icon Analog -InputList2SigType22=Analog -InputList2Cue23=Set Item 12 Icon Analog -InputList2SigType23=Analog -InputList2Cue24=Set Item 13 Icon Analog -InputList2SigType24=Analog -InputList2Cue25=Set Item 14 Icon Analog -InputList2SigType25=Analog -InputList2Cue26=Set Item 15 Icon Analog -InputList2SigType26=Analog -InputList2Cue27=Set Item 16 Icon Analog -InputList2SigType27=Analog -InputList2Cue28=Set Item 17 Icon Analog -InputList2SigType28=Analog -InputList2Cue29=Set Item 18 Icon Analog -InputList2SigType29=Analog -InputList2Cue30=Set Item 19 Icon Analog -InputList2SigType30=Analog -InputList2Cue31=Set Item 20 Icon Analog -InputList2SigType31=Analog -InputList2Cue32=Set Item 21 Icon Analog -InputList2SigType32=Analog -InputList2Cue33=Set Item 22 Icon Analog -InputList2SigType33=Analog -InputList2Cue34=Set Item 23 Icon Analog -InputList2SigType34=Analog -InputList2Cue35=Set Item 24 Icon Analog -InputList2SigType35=Analog -InputList2Cue36=Set Item 25 Icon Analog -InputList2SigType36=Analog -InputList2Cue37=Set Item 26 Icon Analog -InputList2SigType37=Analog -InputList2Cue38=Set Item 27 Icon Analog -InputList2SigType38=Analog -InputList2Cue39=Set Item 28 Icon Analog -InputList2SigType39=Analog -InputList2Cue40=Set Item 29 Icon Analog -InputList2SigType40=Analog -InputList2Cue41=Set Item 30 Icon Analog -InputList2SigType41=Analog -InputList2Cue42=[~UNUSED2~] -InputList2SigType42=Digital|Analog|Serial|String -InputList2Cue2012=[~EndGroup~]Item Icons -InputList2SigType2012=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=Item Held -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED3~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]Item Icons -OutputList2SigType11=Analog -OutputList2Cue12=[~UNUSED3~] -OutputList2SigType12=Analog -OutputList2Cue13=[~UNUSED3~] -OutputList2SigType13=Analog -OutputList2Cue14=[~UNUSED3~] -OutputList2SigType14=Analog -OutputList2Cue15=[~UNUSED3~] -OutputList2SigType15=Analog -OutputList2Cue16=[~UNUSED3~] -OutputList2SigType16=Analog -OutputList2Cue17=[~UNUSED3~] -OutputList2SigType17=Analog -OutputList2Cue18=[~UNUSED3~] -OutputList2SigType18=Analog -OutputList2Cue19=[~UNUSED3~] -OutputList2SigType19=Analog -OutputList2Cue20=[~UNUSED3~] -OutputList2SigType20=Analog -OutputList2Cue21=[~UNUSED3~] -OutputList2SigType21=Analog -OutputList2Cue22=[~UNUSED3~] -OutputList2SigType22=Analog -OutputList2Cue23=[~UNUSED3~] -OutputList2SigType23=Analog -OutputList2Cue24=[~UNUSED3~] -OutputList2SigType24=Analog -OutputList2Cue25=[~UNUSED3~] -OutputList2SigType25=Analog -OutputList2Cue26=[~UNUSED3~] -OutputList2SigType26=Analog -OutputList2Cue27=[~UNUSED3~] -OutputList2SigType27=Analog -OutputList2Cue28=[~UNUSED3~] -OutputList2SigType28=Analog -OutputList2Cue29=[~UNUSED3~] -OutputList2SigType29=Analog -OutputList2Cue30=[~UNUSED3~] -OutputList2SigType30=Analog -OutputList2Cue31=[~UNUSED3~] -OutputList2SigType31=Analog -OutputList2Cue32=[~UNUSED3~] -OutputList2SigType32=Analog -OutputList2Cue33=[~UNUSED3~] -OutputList2SigType33=Analog -OutputList2Cue34=[~UNUSED3~] -OutputList2SigType34=Analog -OutputList2Cue35=[~UNUSED3~] -OutputList2SigType35=Analog -OutputList2Cue36=[~UNUSED3~] -OutputList2SigType36=Analog -OutputList2Cue37=[~UNUSED3~] -OutputList2SigType37=Analog -OutputList2Cue38=[~UNUSED3~] -OutputList2SigType38=Analog -OutputList2Cue39=[~UNUSED3~] -OutputList2SigType39=Analog -OutputList2Cue40=[~UNUSED3~] -OutputList2SigType40=Analog -OutputList2Cue41=[~UNUSED3~] -OutputList2SigType41=Analog -OutputList2Cue42=[~UNUSED2~] -OutputList2SigType42=Digital|Analog|Serial|String -OutputList2Cue2012=[~EndGroup~]Item Icons -OutputList2SigType2012=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]Item Texts -InputList3SigType11=Serial -InputList3Cue12=Set Item 1 Text -InputList3SigType12=Serial -InputList3Cue13=Set Item 2 Text -InputList3SigType13=Serial -InputList3Cue14=Set Item 3 Text -InputList3SigType14=Serial -InputList3Cue15=Set Item 4 Text -InputList3SigType15=Serial -InputList3Cue16=Set Item 5 Text -InputList3SigType16=Serial -InputList3Cue17=Set Item 6 Text -InputList3SigType17=Serial -InputList3Cue18=Set Item 7 Text -InputList3SigType18=Serial -InputList3Cue19=Set Item 8 Text -InputList3SigType19=Serial -InputList3Cue20=Set Item 9 Text -InputList3SigType20=Serial -InputList3Cue21=Set Item 10 Text -InputList3SigType21=Serial -InputList3Cue22=Set Item 11 Text -InputList3SigType22=Serial -InputList3Cue23=Set Item 12 Text -InputList3SigType23=Serial -InputList3Cue24=Set Item 13 Text -InputList3SigType24=Serial -InputList3Cue25=Set Item 14 Text -InputList3SigType25=Serial -InputList3Cue26=Set Item 15 Text -InputList3SigType26=Serial -InputList3Cue27=Set Item 16 Text -InputList3SigType27=Serial -InputList3Cue28=Set Item 17 Text -InputList3SigType28=Serial -InputList3Cue29=Set Item 18 Text -InputList3SigType29=Serial -InputList3Cue30=Set Item 19 Text -InputList3SigType30=Serial -InputList3Cue31=Set Item 20 Text -InputList3SigType31=Serial -InputList3Cue32=Set Item 21 Text -InputList3SigType32=Serial -InputList3Cue33=Set Item 22 Text -InputList3SigType33=Serial -InputList3Cue34=Set Item 23 Text -InputList3SigType34=Serial -InputList3Cue35=Set Item 24 Text -InputList3SigType35=Serial -InputList3Cue36=Set Item 25 Text -InputList3SigType36=Serial -InputList3Cue37=Set Item 26 Text -InputList3SigType37=Serial -InputList3Cue38=Set Item 27 Text -InputList3SigType38=Serial -InputList3Cue39=Set Item 28 Text -InputList3SigType39=Serial -InputList3Cue40=Set Item 29 Text -InputList3SigType40=Serial -InputList3Cue41=Set Item 30 Text -InputList3SigType41=Serial -InputList3Cue42=[~UNUSED2~] -InputList3SigType42=Digital|Analog|Serial|String -InputList3Cue2012=[~EndGroup~]Item Texts -InputList3SigType2012=Serial -InputList3Cue2013=[~BeginGroup~]Item Icons -InputList3SigType2013=Serial -InputList3Cue2014=Set Item 1 Icon Serial -InputList3SigType2014=Serial -InputList3Cue2015=Set Item 2 Icon Serial -InputList3SigType2015=Serial -InputList3Cue2016=Set Item 3 Icon Serial -InputList3SigType2016=Serial -InputList3Cue2017=Set Item 4 Icon Serial -InputList3SigType2017=Serial -InputList3Cue2018=Set Item 5 Icon Serial -InputList3SigType2018=Serial -InputList3Cue2019=Set Item 6 Icon Serial -InputList3SigType2019=Serial -InputList3Cue2020=Set Item 7 Icon Serial -InputList3SigType2020=Serial -InputList3Cue2021=Set Item 8 Icon Serial -InputList3SigType2021=Serial -InputList3Cue2022=Set Item 9 Icon Serial -InputList3SigType2022=Serial -InputList3Cue2023=Set Item 10 Icon Serial -InputList3SigType2023=Serial -InputList3Cue2024=Set Item 11 Icon Serial -InputList3SigType2024=Serial -InputList3Cue2025=Set Item 12 Icon Serial -InputList3SigType2025=Serial -InputList3Cue2026=Set Item 13 Icon Serial -InputList3SigType2026=Serial -InputList3Cue2027=Set Item 14 Icon Serial -InputList3SigType2027=Serial -InputList3Cue2028=Set Item 15 Icon Serial -InputList3SigType2028=Serial -InputList3Cue2029=Set Item 16 Icon Serial -InputList3SigType2029=Serial -InputList3Cue2030=Set Item 17 Icon Serial -InputList3SigType2030=Serial -InputList3Cue2031=Set Item 18 Icon Serial -InputList3SigType2031=Serial -InputList3Cue2032=Set Item 19 Icon Serial -InputList3SigType2032=Serial -InputList3Cue2033=Set Item 20 Icon Serial -InputList3SigType2033=Serial -InputList3Cue2034=Set Item 21 Icon Serial -InputList3SigType2034=Serial -InputList3Cue2035=Set Item 22 Icon Serial -InputList3SigType2035=Serial -InputList3Cue2036=Set Item 23 Icon Serial -InputList3SigType2036=Serial -InputList3Cue2037=Set Item 24 Icon Serial -InputList3SigType2037=Serial -InputList3Cue2038=Set Item 25 Icon Serial -InputList3SigType2038=Serial -InputList3Cue2039=Set Item 26 Icon Serial -InputList3SigType2039=Serial -InputList3Cue2040=Set Item 27 Icon Serial -InputList3SigType2040=Serial -InputList3Cue2041=Set Item 28 Icon Serial -InputList3SigType2041=Serial -InputList3Cue2042=Set Item 29 Icon Serial -InputList3SigType2042=Serial -InputList3Cue2043=Set Item 30 Icon Serial -InputList3SigType2043=Serial -InputList3Cue2044=[~UNUSED2~] -InputList3SigType2044=Digital|Analog|Serial|String -InputList3Cue4014=[~EndGroup~]Item Icons -InputList3SigType4014=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]Item Texts -OutputList3SigType11=Serial -OutputList3Cue12=[~UNUSED3~] -OutputList3SigType12=Serial -OutputList3Cue13=[~UNUSED3~] -OutputList3SigType13=Serial -OutputList3Cue14=[~UNUSED3~] -OutputList3SigType14=Serial -OutputList3Cue15=[~UNUSED3~] -OutputList3SigType15=Serial -OutputList3Cue16=[~UNUSED3~] -OutputList3SigType16=Serial -OutputList3Cue17=[~UNUSED3~] -OutputList3SigType17=Serial -OutputList3Cue18=[~UNUSED3~] -OutputList3SigType18=Serial -OutputList3Cue19=[~UNUSED3~] -OutputList3SigType19=Serial -OutputList3Cue20=[~UNUSED3~] -OutputList3SigType20=Serial -OutputList3Cue21=[~UNUSED3~] -OutputList3SigType21=Serial -OutputList3Cue22=[~UNUSED3~] -OutputList3SigType22=Serial -OutputList3Cue23=[~UNUSED3~] -OutputList3SigType23=Serial -OutputList3Cue24=[~UNUSED3~] -OutputList3SigType24=Serial -OutputList3Cue25=[~UNUSED3~] -OutputList3SigType25=Serial -OutputList3Cue26=[~UNUSED3~] -OutputList3SigType26=Serial -OutputList3Cue27=[~UNUSED3~] -OutputList3SigType27=Serial -OutputList3Cue28=[~UNUSED3~] -OutputList3SigType28=Serial -OutputList3Cue29=[~UNUSED3~] -OutputList3SigType29=Serial -OutputList3Cue30=[~UNUSED3~] -OutputList3SigType30=Serial -OutputList3Cue31=[~UNUSED3~] -OutputList3SigType31=Serial -OutputList3Cue32=[~UNUSED3~] -OutputList3SigType32=Serial -OutputList3Cue33=[~UNUSED3~] -OutputList3SigType33=Serial -OutputList3Cue34=[~UNUSED3~] -OutputList3SigType34=Serial -OutputList3Cue35=[~UNUSED3~] -OutputList3SigType35=Serial -OutputList3Cue36=[~UNUSED3~] -OutputList3SigType36=Serial -OutputList3Cue37=[~UNUSED3~] -OutputList3SigType37=Serial -OutputList3Cue38=[~UNUSED3~] -OutputList3SigType38=Serial -OutputList3Cue39=[~UNUSED3~] -OutputList3SigType39=Serial -OutputList3Cue40=[~UNUSED3~] -OutputList3SigType40=Serial -OutputList3Cue41=[~UNUSED3~] -OutputList3SigType41=Serial -OutputList3Cue42=[~UNUSED2~] -OutputList3SigType42=Digital|Analog|Serial|String -OutputList3Cue2012=[~EndGroup~]Item Texts -OutputList3SigType2012=Serial -OutputList3Cue2013=[~BeginGroup~]Item Icons -OutputList3SigType2013=Serial -OutputList3Cue2014=[~UNUSED3~] -OutputList3SigType2014=Serial -OutputList3Cue2015=[~UNUSED3~] -OutputList3SigType2015=Serial -OutputList3Cue2016=[~UNUSED3~] -OutputList3SigType2016=Serial -OutputList3Cue2017=[~UNUSED3~] -OutputList3SigType2017=Serial -OutputList3Cue2018=[~UNUSED3~] -OutputList3SigType2018=Serial -OutputList3Cue2019=[~UNUSED3~] -OutputList3SigType2019=Serial -OutputList3Cue2020=[~UNUSED3~] -OutputList3SigType2020=Serial -OutputList3Cue2021=[~UNUSED3~] -OutputList3SigType2021=Serial -OutputList3Cue2022=[~UNUSED3~] -OutputList3SigType2022=Serial -OutputList3Cue2023=[~UNUSED3~] -OutputList3SigType2023=Serial -OutputList3Cue2024=[~UNUSED3~] -OutputList3SigType2024=Serial -OutputList3Cue2025=[~UNUSED3~] -OutputList3SigType2025=Serial -OutputList3Cue2026=[~UNUSED3~] -OutputList3SigType2026=Serial -OutputList3Cue2027=[~UNUSED3~] -OutputList3SigType2027=Serial -OutputList3Cue2028=[~UNUSED3~] -OutputList3SigType2028=Serial -OutputList3Cue2029=[~UNUSED3~] -OutputList3SigType2029=Serial -OutputList3Cue2030=[~UNUSED3~] -OutputList3SigType2030=Serial -OutputList3Cue2031=[~UNUSED3~] -OutputList3SigType2031=Serial -OutputList3Cue2032=[~UNUSED3~] -OutputList3SigType2032=Serial -OutputList3Cue2033=[~UNUSED3~] -OutputList3SigType2033=Serial -OutputList3Cue2034=[~UNUSED3~] -OutputList3SigType2034=Serial -OutputList3Cue2035=[~UNUSED3~] -OutputList3SigType2035=Serial -OutputList3Cue2036=[~UNUSED3~] -OutputList3SigType2036=Serial -OutputList3Cue2037=[~UNUSED3~] -OutputList3SigType2037=Serial -OutputList3Cue2038=[~UNUSED3~] -OutputList3SigType2038=Serial -OutputList3Cue2039=[~UNUSED3~] -OutputList3SigType2039=Serial -OutputList3Cue2040=[~UNUSED3~] -OutputList3SigType2040=Serial -OutputList3Cue2041=[~UNUSED3~] -OutputList3SigType2041=Serial -OutputList3Cue2042=[~UNUSED3~] -OutputList3SigType2042=Serial -OutputList3Cue2043=[~UNUSED3~] -OutputList3SigType2043=Serial -OutputList3Cue2044=[~UNUSED2~] -OutputList3SigType2044=Digital|Analog|Serial|String -OutputList3Cue4014=[~EndGroup~]Item Icons -OutputList3SigType4014=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=19 -CedH=19 -SmartObjId=1203d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=19 -Tp=1 -HD=TRUE -DV=1203d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=19 -Name=PepperDash Essentials TSW-760_[D.VC] Recents_Dynamic Button List Vertical_2.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] diff --git a/PepperDashEssentials/PepperDashEssentials.csproj b/PepperDashEssentials/PepperDashEssentials.csproj deleted file mode 100644 index 66a20f72..00000000 --- a/PepperDashEssentials/PepperDashEssentials.csproj +++ /dev/null @@ -1,233 +0,0 @@ - - - Release - AnyCPU - 9.0.30729 - 2.0 - {1BED5BA9-88C4-4365-9362-6F4B128071D3} - Library - Properties - PepperDashEssentials - PepperDashEssentials - {0B4745B0-194B-4BB6-8E21-E9057CA92230};{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - WindowsCE - E2BECB1F-8C8C-41ba-B736-9BE7D946A398 - 5.0 - SmartDeviceProject1 - v3.5 - Windows CE - - - - - .allowedReferenceRelatedFileExtensions - true - full - false - bin\ - DEBUG;TRACE; - prompt - 4 - 512 - true - true - off - - - .allowedReferenceRelatedFileExtensions - none - true - bin\ - prompt - 4 - 512 - true - true - off - - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DeviceSupport.dll - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DM.dll - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.EthernetCommunications.dll - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Fusion.dll - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Remotes.dll - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll - - - - False - ..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpHelperInterface.dll - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpNewtonsoft.dll - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpPro.exe - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpReflectionInterface.dll - - - False - ..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpTimerEventInterface.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Always - - - Always - - - Always - - - Always - - - - Always - - - Always - - - Always - - - - - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} - PepperDash_Essentials_Core - - - {892B761C-E479-44CE-BD74-243E9214AF13} - Essentials Devices Common - - - {9199CE8A-0C9F-4952-8672-3EED798B284F} - PepperDash_Essentials_DM - - - - - - - - - rem S# Pro preparation will execute after these operations - - \ No newline at end of file diff --git a/PepperDashEssentials/PluginLoading/PluginLoading.cs b/PepperDashEssentials/PluginLoading/PluginLoading.cs deleted file mode 100644 index 405241a3..00000000 --- a/PepperDashEssentials/PluginLoading/PluginLoading.cs +++ /dev/null @@ -1,491 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharp.CrestronIO; -using Crestron.SimplSharp.Reflection; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Plugins; - -namespace PepperDash.Essentials -{ - /// - /// Deals with loading plugins at runtime - /// - public static class PluginLoader - { - /// - /// The complete list of loaded assemblies. Includes Essentials Framework assemblies and plugins - /// - public static List LoadedAssemblies { get; private set; } - - /// - /// The list of assemblies loaded from the plugins folder - /// - static List LoadedPluginFolderAssemblies; - - /// - /// The directory to look in for .cplz plugin packages - /// - static string _pluginDirectory = Global.FilePathPrefix + "plugins"; - - /// - /// The directory where plugins will be moved to and loaded from - /// - static string _loadedPluginsDirectoryPath = _pluginDirectory + Global.DirectorySeparator + "loadedAssemblies"; - - // The temp directory where .cplz archives will be unzipped to - static string _tempDirectory = _pluginDirectory + Global.DirectorySeparator + "temp"; - - static PluginLoader() - { - LoadedAssemblies = new List(); - LoadedPluginFolderAssemblies = new List(); - } - - /// - /// Retrieves all the loaded assemblies from the program directory - /// - public static void AddProgramAssemblies() - { - Debug.Console(2, "Getting Assemblies loaded with Essentials"); - // Get the loaded assembly filenames - var appDi = new DirectoryInfo(Global.ApplicationDirectoryPathPrefix); - var assemblyFiles = appDi.GetFiles("*.dll"); - - Debug.Console(2, "Found {0} Assemblies", assemblyFiles.Length); - - foreach (var fi in assemblyFiles) - { - string version = string.Empty; - Assembly assembly = null; - - switch (fi.Name) - { - case ("PepperDashEssentials.dll"): - { - version = Global.AssemblyVersion; - assembly = Assembly.GetExecutingAssembly(); - break; - } - case ("PepperDashEssentialsBase.dll"): - { - - break; - } - case ("PepperDash_Core.dll"): - { - version = PepperDash.Core.Debug.PepperDashCoreVersion; - break; - } - } - - LoadedAssemblies.Add(new LoadedAssembly(fi.Name, version, assembly)); - } - - if (Debug.Level > 1) - { - Debug.Console(2, "Loaded Assemblies:"); - - foreach (var assembly in LoadedAssemblies) - { - Debug.Console(2, "Assembly: {0}", assembly.Name); - } - } - } - - /// - /// Loads an assembly via Reflection and adds it to the list of loaded assemblies - /// - /// - static LoadedAssembly LoadAssembly(string filePath) - { - Debug.Console(2, "Attempting to load {0}", filePath); - var assembly = Assembly.LoadFrom(filePath); - if (assembly != null) - { - var assyVersion = GetAssemblyVersion(assembly); - - var loadedAssembly = new LoadedAssembly(assembly.GetName().Name, assyVersion, assembly); - LoadedAssemblies.Add(loadedAssembly); - Debug.Console(0, Debug.ErrorLogLevel.Notice, "Loaded assembly '{0}', version {1}", loadedAssembly.Name, loadedAssembly.Version); - return loadedAssembly; - } - else - { - Debug.Console(0, Debug.ErrorLogLevel.Notice, "Unable to load assembly: '{0}'", filePath); - } - - return null; - - } - - /// - /// Attempts to get the assembly informational version and if not possible gets the version - /// - /// - /// - static string GetAssemblyVersion(Assembly assembly) - { - var ver = assembly.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false); - if (ver != null && ver.Length > 0) - { - // Get the AssemblyInformationalVersion - AssemblyInformationalVersionAttribute verAttribute = ver[0] as AssemblyInformationalVersionAttribute; - return verAttribute.InformationalVersion; - } - else - { - // Get the AssemblyVersion - var version = assembly.GetName().Version; - var verStr = string.Format("{0}.{1}.{2}.{3}", version.Major, version.Minor, version.Build, version.Revision); - return verStr; - } - } - - /// - /// Checks if the filename matches an already loaded assembly file's name - /// - /// - /// True if file already matches loaded assembly file. - public static bool CheckIfAssemblyLoaded(string name) - { - Debug.Console(2, "Checking if assembly: {0} is loaded...", name); - var loadedAssembly = LoadedAssemblies.FirstOrDefault(s => s.Name.Equals(name)); - - if (loadedAssembly != null) - { - Debug.Console(2, "Assembly already loaded."); - return true; - } - else - { - Debug.Console(2, "Assembly not loaded."); - return false; - } - } - - /// - /// Used by console command to report the currently loaded assemblies and versions - /// - /// - public static void ReportAssemblyVersions(string command) - { - Debug.Console(0, "Loaded Assemblies:"); - foreach (var assembly in LoadedAssemblies) - { - Debug.Console(0, "{0} Version: {1}", assembly.Name, assembly.Version); - } - } - - /// - /// Moves any .dll assemblies not already loaded from the plugins folder to loadedPlugins folder - /// - static void MoveDllAssemblies() - { - Debug.Console(0, "Looking for .dll assemblies from plugins folder..."); - - var pluginDi = new DirectoryInfo(_pluginDirectory); - var pluginFiles = pluginDi.GetFiles("*.dll"); - - if (pluginFiles.Length > 0) - { - if (!Directory.Exists(_loadedPluginsDirectoryPath)) - { - Directory.CreateDirectory(_loadedPluginsDirectoryPath); - } - } - - foreach (var pluginFile in pluginFiles) - { - try - { - Debug.Console(0, "Found .dll: {0}", pluginFile.Name); - - if (!CheckIfAssemblyLoaded(pluginFile.Name)) - { - string filePath = string.Empty; - - filePath = _loadedPluginsDirectoryPath + Global.DirectorySeparator + pluginFile.Name; - - // Check if there is a previous file in the loadedPlugins directory and delete - if (File.Exists(filePath)) - { - Debug.Console(0, "Found existing file in loadedPlugins: {0} Deleting and moving new file to replace it", filePath); - File.Delete(filePath); - } - - // Move the file - File.Move(pluginFile.FullName, filePath); - Debug.Console(2, "Moved {0} to {1}", pluginFile.FullName, filePath); - } - else - { - Debug.Console(0, Debug.ErrorLogLevel.Notice, "Skipping assembly: {0}. There is already an assembly with that name loaded.", pluginFile.FullName); - } - } - catch (Exception e) - { - Debug.Console(2, "Error with plugin file {0} . Exception: {1}", pluginFile.FullName, e); - continue; //catching any load issues and continuing. There will be exceptions loading Crestron .dlls from the cplz Probably should do something different here - } - } - - Debug.Console(0, "Done with .dll assemblies"); - } - - /// - /// Unzips each .cplz archive into the temp directory and moves any unloaded files into loadedPlugins - /// - static void UnzipAndMoveCplzArchives() - { - Debug.Console(0, "Looking for .cplz archives from plugins folder..."); - var di = new DirectoryInfo(_pluginDirectory); - var zFiles = di.GetFiles("*.cplz"); - - if (zFiles.Length > 0) - { - if (!Directory.Exists(_loadedPluginsDirectoryPath)) - { - Directory.CreateDirectory(_loadedPluginsDirectoryPath); - } - } - - foreach (var zfi in zFiles) - { - Directory.CreateDirectory(_tempDirectory); - var tempDi = new DirectoryInfo(_tempDirectory); - - Debug.Console(0, "Found cplz: {0}. Unzipping into temp plugins directory", zfi.Name); - var result = CrestronZIP.Unzip(zfi.FullName, tempDi.FullName); - Debug.Console(0, "UnZip Result: {0}", result.ToString()); - - var tempFiles = tempDi.GetFiles("*.dll"); - foreach (var tempFile in tempFiles) - { - try - { - if (!CheckIfAssemblyLoaded(tempFile.Name)) - { - string filePath = string.Empty; - - filePath = _loadedPluginsDirectoryPath + Global.DirectorySeparator + tempFile.Name; - - // Check if there is a previous file in the loadedPlugins directory and delete - if (File.Exists(filePath)) - { - Debug.Console(0, "Found existing file in loadedPlugins: {0} Deleting and moving new file to replace it", filePath); - File.Delete(filePath); - } - - // Move the file - File.Move(tempFile.FullName, filePath); - Debug.Console(2, "Moved {0} to {1}", tempFile.FullName, filePath); - } - else - { - Debug.Console(0, Debug.ErrorLogLevel.Notice, "Skipping assembly: {0}. There is already an assembly with that name loaded.", tempFile.FullName); - } - } - catch (Exception e) - { - Debug.Console(2, "Assembly {0} is not a custom assembly. Exception: {1}", tempFile.FullName, e); - continue; //catching any load issues and continuing. There will be exceptions loading Crestron .dlls from the cplz Probably should do something different here - } - } - - // Delete the .cplz and the temp directory - Directory.Delete(_tempDirectory, true); - zfi.Delete(); - } - - Debug.Console(0, "Done with .cplz archives"); - } - - /// - /// Attempts to load the assemblies from the loadedPlugins folder - /// - static void LoadPluginAssemblies() - { - Debug.Console(0, "Loading assemblies from loadedPlugins folder..."); - var pluginDi = new DirectoryInfo(_loadedPluginsDirectoryPath); - var pluginFiles = pluginDi.GetFiles("*.dll"); - - Debug.Console(2, "Found {0} plugin assemblies to load", pluginFiles.Length); - - foreach (var pluginFile in pluginFiles) - { - var loadedAssembly = LoadAssembly(pluginFile.FullName); - - LoadedPluginFolderAssemblies.Add(loadedAssembly); - } - - Debug.Console(0, "All Plugins Loaded."); - } - - /// - /// Iterate the loaded assemblies and try to call the LoadPlugin method - /// - static void LoadCustomPluginTypes() - { - Debug.Console(0, "Loading Custom Plugin Types..."); - foreach (var loadedAssembly in LoadedPluginFolderAssemblies) - { - // iteratate this assembly's classes, looking for "LoadPlugin()" methods - try - { - var assy = loadedAssembly.Assembly; - var types = assy.GetTypes(); - foreach (var type in types) - { - try - { - if (typeof(IPluginDeviceFactory).IsAssignableFrom(type)) - { - var plugin = (IPluginDeviceFactory)Crestron.SimplSharp.Reflection.Activator.CreateInstance(type); - LoadCustomPlugin(plugin, loadedAssembly); - } - else - { - var methods = type.GetMethods(BindingFlags.Public | BindingFlags.Static); - var loadPlugin = methods.FirstOrDefault(m => m.Name.Equals("LoadPlugin")); - if (loadPlugin != null) - { - LoadCustomLegacyPlugin(type, loadPlugin, loadedAssembly); - } - } - } - catch (Exception e) - { - Debug.Console(2, "Load Plugin not found. {0} is not a plugin assembly. Exception: {1}", loadedAssembly.Name, e); - continue; - } - - } - } - catch (Exception e) - { - Debug.Console(2, "Error Loading Assembly: {0} Exception: (1) ", loadedAssembly.Name, e); - continue; - } - } - // plugin dll will be loaded. Any classes in plugin should have a static constructor - // that registers that class with the Core.DeviceFactory - Debug.Console(0, "Done Loading Custom Plugin Types."); - } - - /// - /// Loads a - /// - /// - static void LoadCustomPlugin(IPluginDeviceFactory plugin, LoadedAssembly loadedAssembly) - { - var passed = Global.IsRunningMinimumVersionOrHigher(plugin.MinimumEssentialsFrameworkVersion); - - if (!passed) - { - Debug.Console(0, Debug.ErrorLogLevel.Error, "Plugin indicates minimum Essentials version {0}. Dependency check failed. Skipping Plugin", plugin.MinimumEssentialsFrameworkVersion); - return; - } - else - { - Debug.Console(0, Debug.ErrorLogLevel.Notice, "Passed plugin passed dependency check (required version {0})", plugin.MinimumEssentialsFrameworkVersion); - } - - Debug.Console(0, Debug.ErrorLogLevel.Notice, "Loading plugin: {0}", loadedAssembly.Name); - plugin.LoadTypeFactories(); - } - - /// - /// Loads a a custom plugin via the legacy method - /// - /// - /// - static void LoadCustomLegacyPlugin(CType type, MethodInfo loadPlugin, LoadedAssembly loadedAssembly) - { - Debug.Console(2, "LoadPlugin method found in {0}", type.Name); - - var fields = type.GetFields(BindingFlags.Public | BindingFlags.Static); - - var minimumVersion = fields.FirstOrDefault(p => p.Name.Equals("MinimumEssentialsFrameworkVersion")); - if (minimumVersion != null) - { - Debug.Console(2, "MinimumEssentialsFrameworkVersion found"); - - var minimumVersionString = minimumVersion.GetValue(null) as string; - - if (!string.IsNullOrEmpty(minimumVersionString)) - { - var passed = Global.IsRunningMinimumVersionOrHigher(minimumVersionString); - - if (!passed) - { - Debug.Console(0, Debug.ErrorLogLevel.Error, "Plugin indicates minimum Essentials version {0}. Dependency check failed. Skipping Plugin", minimumVersionString); - return; - } - else - { - Debug.Console(0, Debug.ErrorLogLevel.Notice, "Passed plugin passed dependency check (required version {0})", minimumVersionString); - } - } - else - { - Debug.Console(0, Debug.ErrorLogLevel.Warning, "MinimumEssentialsFrameworkVersion found but not set. Loading plugin, but your mileage may vary."); - } - } - else - { - Debug.Console(0, Debug.ErrorLogLevel.Warning, "MinimumEssentialsFrameworkVersion not found. Loading plugin, but your mileage may vary."); - } - - Debug.Console(0, Debug.ErrorLogLevel.Notice, "Loading legacy plugin: {0}", loadedAssembly.Name); - loadPlugin.Invoke(null, null); - - } - - /// - /// Loads plugins - /// - public static void LoadPlugins() - { - if (Directory.Exists(_pluginDirectory)) - { - Debug.Console(0, Debug.ErrorLogLevel.Notice, "Plugins directory found, checking for plugins"); - - // Deal with any .dll files - MoveDllAssemblies(); - - // Deal with any .cplz files - UnzipAndMoveCplzArchives(); - - if(Directory.Exists(_loadedPluginsDirectoryPath)) { - // Load the assemblies from the loadedPlugins folder into the AppDomain - LoadPluginAssemblies(); - - // Load the types from any custom plugin assemblies - LoadCustomPluginTypes(); - } - } - } - } - - /// - /// Represents an assembly loaded at runtime and it's associated metadata - /// - public class LoadedAssembly - { - public string Name { get; private set; } - public string Version { get; private set; } - public Assembly Assembly { get; private set; } - - public LoadedAssembly(string name, string version, Assembly assembly) - { - Name = name; - Version = version; - Assembly = assembly; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Properties/AssemblyInfo.cs b/PepperDashEssentials/Properties/AssemblyInfo.cs deleted file mode 100644 index 36e6828b..00000000 --- a/PepperDashEssentials/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Reflection; -using Crestron.SimplSharp.Reflection; - -[assembly: System.Reflection.AssemblyTitle("PepperDashEssentials")] -[assembly: System.Reflection.AssemblyCompany("PepperDash Technology Corp")] -[assembly: System.Reflection.AssemblyProduct("PepperDashEssentials")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © PepperDash Technology Corp 2020")] -[assembly: System.Reflection.AssemblyVersion("0.0.0.*")] -[assembly: System.Reflection.AssemblyInformationalVersion("0.0.0-buildType-buildNumber")] -[assembly: Crestron.SimplSharp.Reflection.AssemblyInformationalVersion("0.0.0-buildType-buildNumber")] diff --git a/PepperDashEssentials/Properties/AssemblyInfo.cs.orig b/PepperDashEssentials/Properties/AssemblyInfo.cs.orig deleted file mode 100644 index 1ae0e5a2..00000000 --- a/PepperDashEssentials/Properties/AssemblyInfo.cs.orig +++ /dev/null @@ -1,12 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("PepperDashEssentials")] -[assembly: AssemblyCompany("PepperDash Technology Corp")] -[assembly: AssemblyProduct("PepperDashEssentials")] -[assembly: AssemblyCopyright("Copyright © PepperDash Technology Corp 2017")] -<<<<<<< HEAD -[assembly: AssemblyVersion("1.1.8.*")] -======= -[assembly: AssemblyVersion("1.3.0.*")] - ->>>>>>> feature/ecs-684 diff --git a/PepperDashEssentials/Room/Emergency/EsentialsRoomEmergencyContactClosure.cs b/PepperDashEssentials/Room/Emergency/EsentialsRoomEmergencyContactClosure.cs deleted file mode 100644 index c40ed496..00000000 --- a/PepperDashEssentials/Room/Emergency/EsentialsRoomEmergencyContactClosure.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Room.Config; - -namespace PepperDash.Essentials.Room -{ - - - - public class EssentialsRoomEmergencyContactClosure : EssentialsRoomEmergencyBase - { - IEssentialsRoom Room; - string Behavior; - bool TriggerOnClose; - - public EssentialsRoomEmergencyContactClosure(string key, EssentialsRoomEmergencyConfig config, IEssentialsRoom room) : - base(key) - { - Room = room; - var cs = Global.ControlSystem; - - if (config.Trigger.Type.Equals("contact", StringComparison.OrdinalIgnoreCase)) - { - var portNum = (uint)config.Trigger.Number; - if (portNum <= cs.NumberOfDigitalInputPorts) - { - cs.DigitalInputPorts[portNum].Register(); - cs.DigitalInputPorts[portNum].StateChange += EsentialsRoomEmergencyContactClosure_StateChange; - } - } - Behavior = config.Behavior; - TriggerOnClose = config.Trigger.TriggerOnClose; - } - - void EsentialsRoomEmergencyContactClosure_StateChange(DigitalInput digitalInput, DigitalInputEventArgs args) - { - if (args.State && TriggerOnClose || !args.State && !TriggerOnClose) - RunEmergencyBehavior(); - } - - /// - /// - /// - public void RunEmergencyBehavior() - { - if (Behavior.Equals("shutdown")) - Room.Shutdown(); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Room/Types/EssentialsCombinedHuddleVtc1Room.cs b/PepperDashEssentials/Room/Types/EssentialsCombinedHuddleVtc1Room.cs deleted file mode 100644 index cbe1b579..00000000 --- a/PepperDashEssentials/Room/Types/EssentialsCombinedHuddleVtc1Room.cs +++ /dev/null @@ -1,966 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using Newtonsoft.Json; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Room.Config; -using PepperDash.Essentials.Devices.Common.Codec; -using PepperDash.Essentials.Devices.Common.VideoCodec; -using PepperDash.Essentials.Devices.Common.AudioCodec; -using PepperDash.Essentials.Core.DeviceTypeInterfaces; - -namespace PepperDash.Essentials -{ - public class EssentialsCombinedHuddleVtc1Room : EssentialsRoomBase, IEssentialsHuddleVtc1Room - { - private bool _codecExternalSourceChange; - public event EventHandler CurrentVolumeDeviceChange; - public event SourceInfoChangeHandler CurrentSourceChange; - - - //************************ - // Call-related stuff - - public BoolFeedback InCallFeedback { get; private set; } - - ///// - ///// Make this more specific - ///// - //public List ActiveCalls { get; private set; } - - /// - /// States: 0 for on hook, 1 for video, 2 for audio, 3 for telekenesis - /// - public IntFeedback CallTypeFeedback { get; private set; } - - /// - /// - /// - public BoolFeedback PrivacyModeIsOnFeedback { get; private set; } - - /// - /// When something in the room is sharing with the far end or through other means - /// - public BoolFeedback IsSharingFeedback { get; private set; } - - //************************ - - protected override Func OnFeedbackFunc - { - get - { - return () => - { - - var displays = Displays.OfType().ToList(); - - var val = CurrentSourceInfo != null - && CurrentSourceInfo.Type == eSourceListItemType.Route - && displays.Count > 0; - //&& disp.PowerIsOnFeedback.BoolValue; - return val; - }; - } - } - /// - /// - /// - protected override Func IsWarmingFeedbackFunc - { - get - { - return () => Displays.OfType().Any((d) => d.IsWarmingUpFeedback.BoolValue); - } - } - /// - /// - /// - protected override Func IsCoolingFeedbackFunc - { - get - { - return () => Displays.OfType().Any((d) => d.IsCoolingDownFeedback.BoolValue); - } - } - - public EssentialsHuddleVtc1PropertiesConfig PropertiesConfig { get; private set; } - - private List Displays; - - public IRoutingSinkWithSwitching DefaultDisplay { get; private set; } - - public IBasicVolumeControls DefaultAudioDevice { get; private set; } - public IBasicVolumeControls DefaultVolumeControls { get; private set; } - - public VideoCodecBase VideoCodec { get; private set; } - - public AudioCodecBase AudioCodec { get; private set; } - - public bool ExcludeFromGlobalFunctions { get; set; } - - public string DefaultSourceItem { get; set; } - - public ushort DefaultVolume { get; set; } - - /// - /// If room is off, enables power on to last source. Default true - /// - public bool EnablePowerOnToLastSource { get; set; } - string LastSourceKey; - - /// - /// Sets the volume control device, and attaches/removes InUseTrackers with "audio" - /// tag to device. - /// - public IBasicVolumeControls CurrentVolumeControls - { - get { return _CurrentAudioDevice; } - set - { - if (value == _CurrentAudioDevice) return; - - var oldDev = _CurrentAudioDevice; - // derigister this room from the device, if it can - if (oldDev is IInUseTracking) - (oldDev as IInUseTracking).InUseTracker.RemoveUser(this, "audio"); - var handler = CurrentVolumeDeviceChange; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.WillChange)); - _CurrentAudioDevice = value; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.DidChange)); - // register this room with new device, if it can - if (_CurrentAudioDevice is IInUseTracking) - (_CurrentAudioDevice as IInUseTracking).InUseTracker.AddUser(this, "audio"); - } - } - IBasicVolumeControls _CurrentAudioDevice; - - /// - /// The SourceListItem last run - containing names and icons - /// - public SourceListItem CurrentSourceInfo - { - get { return _CurrentSourceInfo; } - set - { - if (value == _CurrentSourceInfo) return; - - var handler = CurrentSourceChange; - // remove from in-use tracker, if so equipped - if (_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control"); - - if (handler != null) - handler(_CurrentSourceInfo, ChangeType.WillChange); - - _CurrentSourceInfo = value; - - // add to in-use tracking - if (_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.AddUser(this, "control"); - if (handler != null) - handler(_CurrentSourceInfo, ChangeType.DidChange); - - var vc = VideoCodec as IHasExternalSourceSwitching; - if (vc != null && !_codecExternalSourceChange) - { - vc.SetSelectedSource(CurrentSourceInfoKey); - } - - _codecExternalSourceChange = false; - } - } - SourceListItem _CurrentSourceInfo; - - public string CurrentSourceInfoKey { get; set; } - - /// - /// "codecOsd" - /// - public string DefaultCodecRouteString { get { return "codecOsd"; } } - - /// - /// Temporary implementation. Returns the schedule-ready object or null if none. Fow now, - /// always returns the VideoCodec if it is capable - /// - public IHasScheduleAwareness ScheduleSource { get { return VideoCodec as IHasScheduleAwareness; } } - - CCriticalSection SourceSelectLock = new CCriticalSection(); - - public EssentialsCombinedHuddleVtc1Room(DeviceConfig config) - : base(config) - { - try - { - PropertiesConfig = JsonConvert.DeserializeObject - (config.Properties.ToString()); - - VideoCodec = DeviceManager.GetDeviceForKey(PropertiesConfig.VideoCodecKey) as - PepperDash.Essentials.Devices.Common.VideoCodec.VideoCodecBase; - - - if (VideoCodec == null) - throw new ArgumentNullException("codec cannot be null"); - - AudioCodec = DeviceManager.GetDeviceForKey(PropertiesConfig.AudioCodecKey) as - PepperDash.Essentials.Devices.Common.AudioCodec.AudioCodecBase; - if (AudioCodec == null) - Debug.Console(0, this, "No Audio Codec Found"); - - DefaultAudioDevice = DeviceManager.GetDeviceForKey(PropertiesConfig.DefaultAudioKey) as IBasicVolumeControls; - - Displays = new List(); - - Initialize(); - } - catch (Exception e) - { - Debug.Console(1, this, "Error building room: \n{0}", e); - } - } - - public override void Initialize() - { - try - { - //if (DefaultAudioDevice is IBasicVolumeControls) - // DefaultVolumeControls = DefaultAudioDevice as IBasicVolumeControls; - //else if (DefaultAudioDevice is IHasVolumeDevice) - // DefaultVolumeControls = (DefaultAudioDevice as IHasVolumeDevice).VolumeDevice; - //CurrentVolumeControls = DefaultVolumeControls; - - - //// Combines call feedback from both codecs if available - //InCallFeedback = new BoolFeedback(() => - //{ - // bool inAudioCall = false; - // bool inVideoCall = false; - - // if (AudioCodec != null) - // inAudioCall = AudioCodec.IsInCall; - - // if (VideoCodec != null) - // inVideoCall = VideoCodec.IsInCall; - - // if (inAudioCall || inVideoCall) - // return true; - // else - // return false; - //}); - - //SetupDisplays(); - - //// Get Microphone Privacy object, if any MUST HAPPEN AFTER setting InCallFeedback - //this.MicrophonePrivacy = EssentialsRoomConfigHelper.GetMicrophonePrivacy(PropertiesConfig, this); - - //Debug.Console(2, this, "Microphone Privacy Config evaluated."); - - //// Get emergency object, if any - //this.Emergency = EssentialsRoomConfigHelper.GetEmergency(PropertiesConfig, this); - - //Debug.Console(2, this, "Emergency Config evaluated."); - - - //VideoCodec.CallStatusChange += (o, a) => this.InCallFeedback.FireUpdate(); - //VideoCodec.IsReadyChange += (o, a) => { this.SetCodecExternalSources(); SetCodecBranding(); }; - - //if (AudioCodec != null) - // AudioCodec.CallStatusChange += (o, a) => this.InCallFeedback.FireUpdate(); - - //IsSharingFeedback = new BoolFeedback(() => VideoCodec.SharingContentIsOnFeedback.BoolValue); - //VideoCodec.SharingContentIsOnFeedback.OutputChange += (o, a) => this.IsSharingFeedback.FireUpdate(); - - //// link privacy to VC (for now?) - //PrivacyModeIsOnFeedback = new BoolFeedback(() => VideoCodec.PrivacyModeIsOnFeedback.BoolValue); - //VideoCodec.PrivacyModeIsOnFeedback.OutputChange += (o, a) => this.PrivacyModeIsOnFeedback.FireUpdate(); - - //CallTypeFeedback = new IntFeedback(() => 0); - - SetSourceListKey(); - - //EnablePowerOnToLastSource = true; - } - catch (Exception e) - { - Debug.Console(0, this, "Error Initializing Room: {0}", e); - } - } - - private void SetupDisplays() - { - //DefaultDisplay = DeviceManager.GetDeviceForKey(PropertiesConfig.DefaultDisplayKey) as IRoutingSinkWithSwitching; - - var destinationList = ConfigReader.ConfigObject.DestinationLists[PropertiesConfig.DestinationListKey]; - - Displays.Clear(); - - foreach (var destination in destinationList) - { - var dest = destination.Value.SinkDevice as IRoutingSinkWithSwitching; - - if (dest != null) - { - Displays.Add(dest); - } - - var display = dest as DisplayBase; - if (display != null) - { - // Link power, warming, cooling to display - var dispTwoWay = display as IHasPowerControlWithFeedback; - if (dispTwoWay != null) - { - dispTwoWay.PowerIsOnFeedback.OutputChange -= PowerIsOnFeedback_OutputChange; - dispTwoWay.PowerIsOnFeedback.OutputChange += PowerIsOnFeedback_OutputChange; - - if (dispTwoWay.PowerIsOnFeedback.BoolValue) - { - SetDefaultLevels(); - } - } - - display.IsWarmingUpFeedback.OutputChange -= IsWarmingUpFeedback_OutputChange; - display.IsWarmingUpFeedback.OutputChange += IsWarmingUpFeedback_OutputChange; - - display.IsCoolingDownFeedback.OutputChange -= IsCoolingDownFeedback_OutputChange; - display.IsCoolingDownFeedback.OutputChange += IsCoolingDownFeedback_OutputChange; - - } - } - } - - void IsCoolingDownFeedback_OutputChange(object sender, FeedbackEventArgs e) - { - IsCoolingDownFeedback.FireUpdate(); - } - - void IsWarmingUpFeedback_OutputChange(object sender, FeedbackEventArgs e) - { - IsWarmingUpFeedback.FireUpdate(); - if (!IsWarmingUpFeedback.BoolValue) - (CurrentVolumeControls as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - } - - void PowerIsOnFeedback_OutputChange(object sender, FeedbackEventArgs e) - { - var dispTwoWay = sender as IHasPowerControlWithFeedback; - - if (dispTwoWay != null && dispTwoWay.PowerIsOnFeedback.BoolValue != OnFeedback.BoolValue) - { - //if (!dispTwoWay.PowerIsOnFeedback.BoolValue) - // CurrentSourceInfo = null; - OnFeedback.FireUpdate(); - } - } - - - - - - private void SetSourceListKey() - { - if (!string.IsNullOrEmpty(PropertiesConfig.SourceListKey)) - { - SetSourceListKey(PropertiesConfig.SourceListKey); - } - else - { - SetSourceListKey(Key); - } - - SetUpVideoCodec(); - } - - protected override void CustomSetConfig(DeviceConfig config) - { - var newPropertiesConfig = JsonConvert.DeserializeObject(config.Properties.ToString()); - - if (newPropertiesConfig != null) - PropertiesConfig = newPropertiesConfig; - - ConfigWriter.UpdateRoomConfig(config); - } - - public override bool Deactivate() - { - // Stop listining to this event when room deactivated - VideoCodec.IsReadyChange -= VideoCodec_IsReadyChange; - - // Clear occupancy - RoomOccupancy = null; - - Debug.Console(0, this, "Room '{0}' Deactivated", Name); - - return base.Deactivate(); - } - - public override bool CustomActivate() - { - try - { - if (DefaultAudioDevice is IBasicVolumeControls) - DefaultVolumeControls = DefaultAudioDevice as IBasicVolumeControls; - else if (DefaultAudioDevice is IHasVolumeDevice) - DefaultVolumeControls = (DefaultAudioDevice as IHasVolumeDevice).VolumeDevice; - CurrentVolumeControls = DefaultVolumeControls; - - - // Combines call feedback from both codecs if available - InCallFeedback = new BoolFeedback(() => - { - bool inAudioCall = false; - bool inVideoCall = false; - - if (AudioCodec != null) - inAudioCall = AudioCodec.IsInCall; - - if (VideoCodec != null) - inVideoCall = VideoCodec.IsInCall; - - if (inAudioCall || inVideoCall) - return true; - else - return false; - }); - - SetupDisplays(); - - // Get Microphone Privacy object, if any MUST HAPPEN AFTER setting InCallFeedback - this.MicrophonePrivacy = EssentialsRoomConfigHelper.GetMicrophonePrivacy(PropertiesConfig, this); - - Debug.Console(2, this, "Microphone Privacy Config evaluated."); - - // Get emergency object, if any - this.Emergency = EssentialsRoomConfigHelper.GetEmergency(PropertiesConfig, this); - - Debug.Console(2, this, "Emergency Config evaluated."); - - if (AudioCodec != null) - { - AudioCodec.CallStatusChange -= AudioCodec_CallStatusChange; - AudioCodec.CallStatusChange += AudioCodec_CallStatusChange; - } - - VideoCodec.CallStatusChange -= VideoCodec_CallStatusChange; - VideoCodec.CallStatusChange += VideoCodec_CallStatusChange; - - VideoCodec.IsReadyChange -= VideoCodec_IsReadyChange; - VideoCodec.IsReadyChange += VideoCodec_IsReadyChange; - - VideoCodec.SharingContentIsOnFeedback.OutputChange -= SharingContentIsOnFeedback_OutputChange; - VideoCodec.SharingContentIsOnFeedback.OutputChange += SharingContentIsOnFeedback_OutputChange; - - - IsSharingFeedback = new BoolFeedback(() => VideoCodec.SharingContentIsOnFeedback.BoolValue); - - // link privacy to VC (for now?) - PrivacyModeIsOnFeedback = new BoolFeedback(() => VideoCodec.PrivacyModeIsOnFeedback.BoolValue); - - VideoCodec.PrivacyModeIsOnFeedback.OutputChange -= PrivacyModeIsOnFeedback_OutputChange; - VideoCodec.PrivacyModeIsOnFeedback.OutputChange += PrivacyModeIsOnFeedback_OutputChange; - - CallTypeFeedback = new IntFeedback(() => 0); - - SetSourceListKey(); - - EnablePowerOnToLastSource = true; - - - // Add Occupancy object from config - if (PropertiesConfig.Occupancy != null) - { - Debug.Console(0, this, Debug.ErrorLogLevel.Notice, "Setting Occupancy Provider for room"); - this.SetRoomOccupancy(DeviceManager.GetDeviceForKey(PropertiesConfig.Occupancy.DeviceKey) as - IOccupancyStatusProvider, PropertiesConfig.Occupancy.TimeoutMinutes); - } - - this.LogoUrlLightBkgnd = PropertiesConfig.LogoLight.GetLogoUrlLight(); - this.LogoUrlDarkBkgnd = PropertiesConfig.LogoDark.GetLogoUrlDark(); - - this.DefaultSourceItem = PropertiesConfig.DefaultSourceItem; - this.DefaultVolume = (ushort)(PropertiesConfig.Volumes.Master.Level * 65535 / 100); - - } - catch (Exception e) - { - Debug.Console(0, this, "Error Activiating Room: {0}", e); - } - - - Debug.Console(0, this, "Room '{0}' Activated", Name); - return base.CustomActivate(); - } - - void AudioCodec_CallStatusChange(object sender, CodecCallStatusItemChangeEventArgs e) - { - InCallFeedback.FireUpdate(); - } - - void PrivacyModeIsOnFeedback_OutputChange(object sender, FeedbackEventArgs e) - { - PrivacyModeIsOnFeedback.FireUpdate(); - } - - void VideoCodec_IsReadyChange(object sender, EventArgs e) - { - SetUpVideoCodec(); - } - - void SetUpVideoCodec() - { - SetCodecExternalSources(); - SetCodecBranding(); - } - - void VideoCodec_CallStatusChange(object sender, CodecCallStatusItemChangeEventArgs e) - { - InCallFeedback.FireUpdate(); - } - - void SharingContentIsOnFeedback_OutputChange(object sender, FeedbackEventArgs e) - { - IsSharingFeedback.FireUpdate(); - } - - - - /// - /// - /// - protected override void EndShutdown() - { - VideoCodec.EndAllCalls(); - - SetDefaultLevels(); - - RunDefaultPresentRoute(); - - CrestronEnvironment.Sleep(1000); - - Debug.Console(0, this, Debug.ErrorLogLevel.Notice, "Shutting down room"); - - RunRouteAction("roomOff"); - VideoCodec.StopSharing(); - VideoCodec.StandbyActivate(); - } - - /// - /// Routes the default source item, if any. Returns true when default route exists - /// - public override bool RunDefaultPresentRoute() - { - if (DefaultSourceItem != null) - RunRouteAction(DefaultSourceItem); - - return DefaultSourceItem != null; - } - - /// - /// Sets up the room when started into call mode without presenting a source - /// - /// - public bool RunDefaultCallRoute() - { - RunRouteAction(DefaultCodecRouteString); - return true; - } - - public void RunRouteActionCodec(string routeKey, string sourceListKey) - { - _codecExternalSourceChange = true; - RunRouteAction(routeKey, sourceListKey); - } - - /// - /// - /// - /// - public void RunRouteAction(string routeKey) - { - RunRouteAction(routeKey, new Action(() => { })); - } - - /// - /// - /// - /// - /// - /// - public void RunRouteAction(string routeKey, string sourceListKey) - { - if (string.IsNullOrEmpty(sourceListKey)) - { - Debug.Console(1, this, "No sourceListKey present. RunRouteAction assumes default source list."); - RunRouteAction(routeKey, new Action(() => { })); - } - else - { - Debug.Console(1, this, "sourceListKey present but not yet implemented"); - throw new NotImplementedException(); - } - } - - /// - /// - /// - /// - /// - /// - public void RunRouteAction(string routeKey, string sourceListKey, Action successCallback) - { - if (string.IsNullOrEmpty(sourceListKey)) - { - RunRouteAction(routeKey, successCallback); - } - else - throw new NotImplementedException(); - } - - - /// - /// Gets a source from config list SourceListKey and dynamically build and executes the - /// route or commands - /// - /// - public void RunRouteAction(string routeKey, Action successCallback) - { - // Run this on a separate thread - new CTimer(o => - { - // try to prevent multiple simultaneous selections - SourceSelectLock.TryEnter(); - - try - { - - Debug.Console(0, this, Debug.ErrorLogLevel.Notice, "Run route action '{0}'", routeKey); - var dict = ConfigReader.ConfigObject.GetSourceListForKey(SourceListKey); - if (dict == null) - { - Debug.Console(1, this, "WARNING: Config source list '{0}' not found", SourceListKey); - return; - } - - // Try to get the list item by it's string key - if (!dict.ContainsKey(routeKey)) - { - Debug.Console(1, this, "WARNING: No item '{0}' found on config list '{1}'", - routeKey, SourceListKey); - return; - } - - // End usage timer on last source - if (!string.IsNullOrEmpty(LastSourceKey)) - { - var usageLastSource = dict[LastSourceKey].SourceDevice as IUsageTracking; - if (usageLastSource != null && usageLastSource.UsageTracker != null) - { - try - { - // There MAY have been failures in here. Protect - usageLastSource.UsageTracker.EndDeviceUsage(); - } - catch (Exception e) - { - Debug.Console(1, this, "*#* EXCEPTION in end usage tracking:\r{0}", e); - } - } - } - - // Let's run it - var item = dict[routeKey]; - if (routeKey.ToLower() != "roomoff") - { - - LastSourceKey = routeKey; - } - else - CurrentSourceInfoKey = null; - - // hand off the individual routes to this helper - foreach (var route in item.RouteList) - DoRouteItem(route); - - // Start usage timer on routed source - var usageNewSource = item.SourceDevice as IUsageTracking; - if (usageNewSource != null && usageNewSource.UsageTracker != null) // Have to make sure there is a usage tracker! - { - (item.SourceDevice as IUsageTracking).UsageTracker.StartDeviceUsage(); - } - - // See if this can be moved into common, base-class method ------------- - - - // Set volume control, using default if non provided - IBasicVolumeControls volDev = null; - // Handle special cases for volume control - if (string.IsNullOrEmpty(item.VolumeControlKey) - || item.VolumeControlKey.Equals("$defaultAudio", StringComparison.OrdinalIgnoreCase)) - volDev = DefaultVolumeControls; - //else if (item.VolumeControlKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - // volDev = DefaultDisplay as IBasicVolumeControls; - // Or a specific device, probably rarely used. - else - { - var dev = DeviceManager.GetDeviceForKey(item.VolumeControlKey); - if (dev is IBasicVolumeControls) - volDev = dev as IBasicVolumeControls; - else if (dev is IHasVolumeDevice) - volDev = (dev as IHasVolumeDevice).VolumeDevice; - } - - if (volDev != CurrentVolumeControls) - { - // zero the volume on the device we are leaving. - // Set the volume to default on device we are entering - if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback) - { - var vd = CurrentVolumeControls as IBasicVolumeWithFeedback; - SavedVolumeLevels[vd] = (uint)vd.VolumeLevelFeedback.IntValue; - vd.SetVolume(0); - } - - CurrentVolumeControls = volDev; - if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback) - { - var vd = CurrentVolumeControls as IBasicVolumeWithFeedback; - ushort vol = (SavedVolumeLevels.ContainsKey(vd) ? (ushort)SavedVolumeLevels[vd] : DefaultVolume); - vd.SetVolume(vol); - } - } - // ----------------------------------------------------------------------- - - - - // store the name and UI info for routes - if (item.SourceKey == "$off") - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = null; - } - else if (item.SourceKey != null) - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = item; - } - - OnFeedback.FireUpdate(); - - if (OnFeedback.BoolValue) - { - if (VideoCodec.UsageTracker.InUseTracker.InUseFeedback.BoolValue) - { - Debug.Console(1, this, "Video Codec in use, deactivating standby on codec"); - VideoCodec.StandbyDeactivate(); - } - - if (VideoCodec.StandbyIsOnFeedback.BoolValue) - { - VideoCodec.StandbyDeactivate(); - } - else - { - Debug.Console(1, this, "Video codec not in standby. No need to wake."); - } - } - else - { - Debug.Console(1, this, "Room OnFeedback state: {0}", OnFeedback.BoolValue); - } - - // report back when done - if (successCallback != null) - successCallback(); - } - catch (Exception e) - { - Debug.Console(1, this, "ERROR in routing: {0}", e); - } - - SourceSelectLock.Leave(); - }, 0); // end of CTimer - } - - /// - /// - /// - /// - void DoRouteItem(SourceRouteListItem route) - { - // if there is a $defaultAll on route, run two separate - if (route.DestinationKey.Equals("$defaultAll", StringComparison.OrdinalIgnoreCase)) - { - foreach (var display in Displays) - { - var tempVideo = new SourceRouteListItem - { - DestinationKey = display.Key, - SourceKey = route.SourceKey, - Type = eRoutingSignalType.Video - }; - DoRoute(tempVideo); - } - } - else - DoRoute(route); - } - - /// - /// - /// - /// - /// - bool DoRoute(SourceRouteListItem route) - { - IRoutingSink dest = null; - - if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase)) - dest = DefaultAudioDevice as IRoutingSink; - //else if (route.DestinationKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - // dest = DefaultDisplay; - else - dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSink; - - if (dest == null) - { - Debug.Console(1, this, "Cannot route, unknown destination '{0}'", route.DestinationKey); - return false; - } - - if (route.SourceKey.Equals("$off", StringComparison.OrdinalIgnoreCase)) - { - dest.ReleaseRoute(); - if (dest is IHasPowerControl) - (dest as IHasPowerControl).PowerOff(); - - } - else - { - var source = DeviceManager.GetDeviceForKey(route.SourceKey) as IRoutingOutputs; - if (source == null) - { - Debug.Console(1, this, "Cannot route unknown source '{0}' to {1}", route.SourceKey, route.DestinationKey); - return false; - } - dest.ReleaseAndMakeRoute(source, route.Type); - } - return true; - } - - public override void RoomVacatedForTimeoutPeriod(object o) - { - //Implement this - } - - /// - /// Does what it says - /// - public override void SetDefaultLevels() - { - Debug.Console(1, this, "Restoring default levels"); - var vc = CurrentVolumeControls as IBasicVolumeWithFeedback; - if (vc != null) - vc.SetVolume(DefaultVolume); - } - /// - /// Will power the room on with the last-used source - /// - public override void PowerOnToDefaultOrLastSource() - { - if (!EnablePowerOnToLastSource || LastSourceKey == null) - return; - RunRouteAction(LastSourceKey); - } - - /// - /// Runs "roomOff" action on all rooms not set to ExcludeFromGlobalFunctions - /// - public static void AllRoomsOff() - { - var allRooms = DeviceManager.AllDevices.Where(d => - d is IEssentialsRoom && !(d as IEssentialsHuddleSpaceRoom).ExcludeFromGlobalFunctions); - foreach (var room in allRooms) - (room as IEssentialsHuddleSpaceRoom).RunRouteAction("roomOff"); - } - - - /// - /// Setup the external sources for the Cisco Touch 10 devices that support IHasExternalSourceSwitch - /// - private void SetCodecExternalSources() - { - var videoCodecWithExternalSwitching = VideoCodec as IHasExternalSourceSwitching; - - if (videoCodecWithExternalSwitching == null || !videoCodecWithExternalSwitching.ExternalSourceListEnabled) - { - return; - } - - try - { - // Get the tie line that the external switcher is connected to - string codecInputConnectorName = ConfigReader.ConfigObject.TieLines.SingleOrDefault( - x => x.DestinationKey == VideoCodec.Key && x.DestinationPort == videoCodecWithExternalSwitching.ExternalSourceInputPort).DestinationPort; - - videoCodecWithExternalSwitching.ClearExternalSources(); - videoCodecWithExternalSwitching.RunRouteAction = RunRouteActionCodec; - var srcList = ConfigReader.ConfigObject.SourceLists.SingleOrDefault(x => x.Key == SourceListKey).Value.OrderBy(kv => kv.Value.Order); ; - - foreach (var kvp in srcList) - { - var srcConfig = kvp.Value; - - if (kvp.Key != DefaultCodecRouteString && kvp.Key != "roomOff") - { - videoCodecWithExternalSwitching.AddExternalSource(codecInputConnectorName, kvp.Key, srcConfig.PreferredName, PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.eExternalSourceType.desktop); - videoCodecWithExternalSwitching.SetExternalSourceState(kvp.Key, PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.eExternalSourceMode.Ready); - } - } - - Debug.Console(1, this, "Successfully set up codec external sources for room: {0}", Name); - } - catch (Exception e) - { - Debug.Console(2, this, "Error setting codec external sources: {0}", e); - } - } - - private void SetCodecBranding() - { - var vcWithBranding = VideoCodec as IHasBranding; - - if (vcWithBranding == null) return; - - Debug.Console(1, this, "Setting Codec Branding"); - vcWithBranding.InitializeBranding(Key); - } - - #region IPrivacy Members - - - public void PrivacyModeOff() - { - VideoCodec.PrivacyModeOff(); - } - - public void PrivacyModeOn() - { - VideoCodec.PrivacyModeOn(); - } - - public void PrivacyModeToggle() - { - VideoCodec.PrivacyModeToggle(); - } - - #endregion - - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Room/Types/EssentialsDualDisplayRoom.cs b/PepperDashEssentials/Room/Types/EssentialsDualDisplayRoom.cs deleted file mode 100644 index d3812feb..00000000 --- a/PepperDashEssentials/Room/Types/EssentialsDualDisplayRoom.cs +++ /dev/null @@ -1,673 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using Newtonsoft.Json; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Devices; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Room.Config; -using PepperDash.Essentials.Devices.Common.Codec; -using PepperDash.Essentials.Devices.Common.VideoCodec; -using PepperDash.Essentials.Devices.Common.AudioCodec; - -namespace PepperDash.Essentials -{ - public class EssentialsDualDisplayRoom : EssentialsNDisplayRoomBase, IHasCurrentVolumeControls, - IRunRouteAction, IPrivacy, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec, IHasInCallFeedback - { - public event EventHandler CurrentVolumeDeviceChange; - - public EssentialsDualDisplayRoomPropertiesConfig PropertiesConfig { get; private set; } - - //************************ - // Call-related stuff - - public BoolFeedback InCallFeedback { get; private set; } - - /// - /// States: 0 for on hook, 1 for video, 2 for audio, 3 for telekenesis - /// - public IntFeedback CallTypeFeedback { get; private set; } - - /// - /// - /// - public BoolFeedback PrivacyModeIsOnFeedback { get; private set; } - - /// - /// When something in the room is sharing with the far end or through other means - /// - public BoolFeedback IsSharingFeedback { get; private set; } - - public IRoutingSinkWithSwitching LeftDisplay { get; private set; } - public IRoutingSinkWithSwitching RightDisplay { get; private set; } - - - protected override Func OnFeedbackFunc - { - get - { - return () => - { - var leftDisp = LeftDisplay as DisplayBase; - var rightDisp = RightDisplay as DisplayBase; - var val = leftDisp != null && leftDisp.CurrentSourceInfo != null - && leftDisp.CurrentSourceInfo.Type == eSourceListItemType.Route - && rightDisp != null && rightDisp.CurrentSourceInfo != null - && rightDisp.CurrentSourceInfo.Type == eSourceListItemType.Route; - return val; - }; - } - } - - /// - /// - /// - protected override Func IsWarmingFeedbackFunc - { - get - { - return () => - { - var leftDisp = LeftDisplay as DisplayBase; - var rightDisp = RightDisplay as DisplayBase; - if (leftDisp != null && RightDisplay != null) - return leftDisp.IsWarmingUpFeedback.BoolValue || rightDisp.IsWarmingUpFeedback.BoolValue; - else - return false; - }; - } - } - - /// - /// - /// - protected override Func IsCoolingFeedbackFunc - { - get - { - return () => - { - var leftDisp = LeftDisplay as DisplayBase; - var rightDisp = RightDisplay as DisplayBase; - if (leftDisp != null && RightDisplay != null) - return leftDisp.IsCoolingDownFeedback.BoolValue || rightDisp.IsCoolingDownFeedback.BoolValue; - else - return false; - }; - } - } - - public IBasicVolumeControls DefaultAudioDevice { get; private set; } - public IBasicVolumeControls DefaultVolumeControls { get; private set; } - - public VideoCodecBase VideoCodec { get; private set; } - - public AudioCodecBase AudioCodec { get; private set; } - - public bool ExcludeFromGlobalFunctions { get; set; } - - public string DefaultSourceItem { get; set; } - - public ushort DefaultVolume { get; set; } - - /// - /// If room is off, enables power on to last source. Default true - /// - public bool EnablePowerOnToLastSource { get; set; } - string LastSourceKey; - - /// - /// Sets the volume control device, and attaches/removes InUseTrackers with "audio" - /// tag to device. - /// - public IBasicVolumeControls CurrentVolumeControls - { - get { return _CurrentAudioDevice; } - set - { - if (value == _CurrentAudioDevice) return; - - var oldDev = _CurrentAudioDevice; - // derigister this room from the device, if it can - if (oldDev is IInUseTracking) - (oldDev as IInUseTracking).InUseTracker.RemoveUser(this, "audio"); - var handler = CurrentVolumeDeviceChange; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.WillChange)); - _CurrentAudioDevice = value; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.DidChange)); - // register this room with new device, if it can - if (_CurrentAudioDevice is IInUseTracking) - (_CurrentAudioDevice as IInUseTracking).InUseTracker.AddUser(this, "audio"); - } - } - IBasicVolumeControls _CurrentAudioDevice; - - /// - /// "codecOsd" - /// - public string DefaultCodecRouteString { get { return "codecOsd"; } } - - /// - /// Temporary implementation. Returns the schedule-ready object or null if none. Fow now, - /// always returns the VideoCodec if it is capable - /// - public IHasScheduleAwareness ScheduleSource { get { return VideoCodec as IHasScheduleAwareness; } } - - CCriticalSection SourceSelectLock = new CCriticalSection(); - - public EssentialsDualDisplayRoom(DeviceConfig config) - : base(config) - { - try - { - PropertiesConfig = JsonConvert.DeserializeObject - (config.Properties.ToString()); - - var leftDisp = PropertiesConfig.Displays[eSourceListItemDestinationTypes.leftDisplay]; - if (leftDisp != null) - { - if (!string.IsNullOrEmpty(leftDisp.Key)) - { - LeftDisplay = DeviceManager.GetDeviceForKey(leftDisp.Key) as IRoutingSinkWithSwitching; - Displays.Add(eSourceListItemDestinationTypes.leftDisplay, LeftDisplay); - } - else - Debug.Console(0, this, "Unable to get LeftDisplay for Room"); - } - - var rightDisp = PropertiesConfig.Displays[eSourceListItemDestinationTypes.rightDisplay]; - if (rightDisp != null) - { - if (!string.IsNullOrEmpty(rightDisp.Key)) - { - LeftDisplay = DeviceManager.GetDeviceForKey(rightDisp.Key) as IRoutingSinkWithSwitching; - Displays.Add(eSourceListItemDestinationTypes.rightDisplay, RightDisplay); - } - else - Debug.Console(0, this, "Unable to get LeftDisplay for Room"); - } - - VideoCodec = DeviceManager.GetDeviceForKey(PropertiesConfig.VideoCodecKey) as - PepperDash.Essentials.Devices.Common.VideoCodec.VideoCodecBase; - if (VideoCodec == null) - throw new ArgumentNullException("codec cannot be null"); - - AudioCodec = DeviceManager.GetDeviceForKey(PropertiesConfig.AudioCodecKey) as - PepperDash.Essentials.Devices.Common.AudioCodec.AudioCodecBase; - if (AudioCodec == null) - Debug.Console(0, this, "No Audio Codec Found"); - - DefaultAudioDevice = DeviceManager.GetDeviceForKey(PropertiesConfig.DefaultAudioKey) as IBasicVolumeControls; - - InitializeRoom(); - } - catch (Exception e) - { - Debug.Console(1, this, "Error building room \n{0}", e); - } - } - - void InitializeRoom() - { - if (DefaultAudioDevice is IBasicVolumeControls) - DefaultVolumeControls = DefaultAudioDevice as IBasicVolumeControls; - else if (DefaultAudioDevice is IHasVolumeDevice) - DefaultVolumeControls = (DefaultAudioDevice as IHasVolumeDevice).VolumeDevice; - CurrentVolumeControls = DefaultVolumeControls; - - - var leftDisp = LeftDisplay as DisplayBase; - if (leftDisp != null) - InitializeDisplay(leftDisp); - - var rightDisp = RightDisplay as DisplayBase; - if (rightDisp != null) - InitializeDisplay(rightDisp); - - // Get Microphone Privacy object, if any - this.MicrophonePrivacy = EssentialsRoomConfigHelper.GetMicrophonePrivacy(PropertiesConfig, this); - - Debug.Console(2, this, "Microphone Privacy Config evaluated."); - - // Get emergency object, if any - this.Emergency = EssentialsRoomConfigHelper.GetEmergency(PropertiesConfig, this); - - Debug.Console(2, this, "Emergency Config evaluated."); - - // Combines call feedback from both codecs if available - InCallFeedback = new BoolFeedback(() => - { - bool inAudioCall = false; - bool inVideoCall = false; - - if (AudioCodec != null) - inAudioCall = AudioCodec.IsInCall; - - if (VideoCodec != null) - inVideoCall = VideoCodec.IsInCall; - - if (inAudioCall || inVideoCall) - return true; - else - return false; - }); - - VideoCodec.CallStatusChange += (o, a) => this.InCallFeedback.FireUpdate(); - - if (AudioCodec != null) - AudioCodec.CallStatusChange += (o, a) => this.InCallFeedback.FireUpdate(); - - IsSharingFeedback = new BoolFeedback(() => VideoCodec.SharingContentIsOnFeedback.BoolValue); - VideoCodec.SharingContentIsOnFeedback.OutputChange += (o, a) => this.IsSharingFeedback.FireUpdate(); - - // link privacy to VC (for now?) - PrivacyModeIsOnFeedback = new BoolFeedback(() => VideoCodec.PrivacyModeIsOnFeedback.BoolValue); - VideoCodec.PrivacyModeIsOnFeedback.OutputChange += (o, a) => this.PrivacyModeIsOnFeedback.FireUpdate(); - - CallTypeFeedback = new IntFeedback(() => 0); - - SetSourceListKey(); - EnablePowerOnToLastSource = true; - } - - private void SetSourceListKey() - { - if (!string.IsNullOrEmpty(PropertiesConfig.SourceListKey)) - { - SetSourceListKey(PropertiesConfig.SourceListKey); - } - else - { - SetSourceListKey(Key); - } - - } - - void InitializeDisplay(DisplayBase disp) - { - if (disp != null) - { - // Link power, warming, cooling to display - var dispTwoWay = disp as IHasPowerControlWithFeedback; - if (dispTwoWay != null) - { - dispTwoWay.PowerIsOnFeedback.OutputChange += (o, a) => - { - if (dispTwoWay.PowerIsOnFeedback.BoolValue != OnFeedback.BoolValue) - { - if (!dispTwoWay.PowerIsOnFeedback.BoolValue) - disp.CurrentSourceInfo = null; - OnFeedback.FireUpdate(); - } - if (dispTwoWay.PowerIsOnFeedback.BoolValue) - { - SetDefaultLevels(); - } - }; - } - - disp.IsWarmingUpFeedback.OutputChange += (o, a) => - { - IsWarmingUpFeedback.FireUpdate(); - if (!IsWarmingUpFeedback.BoolValue) - (CurrentVolumeControls as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - }; - disp.IsCoolingDownFeedback.OutputChange += (o, a) => - { - IsCoolingDownFeedback.FireUpdate(); - }; - } - } - - protected override void CustomSetConfig(DeviceConfig config) - { - var newPropertiesConfig = JsonConvert.DeserializeObject(config.Properties.ToString()); - - if (newPropertiesConfig != null) - PropertiesConfig = newPropertiesConfig; - - ConfigWriter.UpdateRoomConfig(config); - } - - public override bool CustomActivate() - { - // Add Occupancy object from config - if (PropertiesConfig.Occupancy != null) - this.SetRoomOccupancy(DeviceManager.GetDeviceForKey(PropertiesConfig.Occupancy.DeviceKey) as - IOccupancyStatusProvider, PropertiesConfig.Occupancy.TimeoutMinutes); - - this.LogoUrlLightBkgnd = PropertiesConfig.LogoLight.GetLogoUrlLight(); - this.LogoUrlDarkBkgnd = PropertiesConfig.LogoDark.GetLogoUrlDark(); - this.DefaultSourceItem = PropertiesConfig.DefaultSourceItem; - this.DefaultVolume = (ushort)(PropertiesConfig.Volumes.Master.Level * 65535 / 100); - - return base.CustomActivate(); - } - - /// - /// - /// - protected override void EndShutdown() - { - VideoCodec.EndAllCalls(); - - SetDefaultLevels(); - - RunDefaultPresentRoute(); - - CrestronEnvironment.Sleep(1000); - - RunRouteAction("roomOff", SourceListKey); - } - - /// - /// Routes the default source item, if any. Returns true when default route exists - /// - public override bool RunDefaultPresentRoute() - { - if (DefaultSourceItem != null) - RunRouteAction(DefaultSourceItem, SourceListKey); - - return DefaultSourceItem != null; - } - - /// - /// Sets up the room when started into call mode without presenting a source - /// - /// - public bool RunDefaultCallRoute() - { - RunRouteAction(DefaultCodecRouteString, SourceListKey); - return true; - } - - /// - /// - /// - /// - public void RunRouteAction(string routeKey, string sourceListKey) - { - RunRouteAction(routeKey, sourceListKey, null); - } - - /// - /// Gets a source from config list SourceListKey and dynamically build and executes the - /// route or commands - /// - /// - public void RunRouteAction(string routeKey, string sourceListKey, Action successCallback) - { - // Run this on a separate thread - new CTimer(o => - { - // try to prevent multiple simultaneous selections - SourceSelectLock.TryEnter(); - - try - { - - Debug.Console(1, this, "Run route action '{0}'", routeKey); - var dict = ConfigReader.ConfigObject.GetSourceListForKey(sourceListKey); - if (dict == null) - { - Debug.Console(1, this, "WARNING: Config source list '{0}' not found", sourceListKey); - return; - } - - // Try to get the list item by it's string key - if (!dict.ContainsKey(routeKey)) - { - Debug.Console(1, this, "WARNING: No item '{0}' found on config list '{1}'", - routeKey, SourceListKey); - return; - } - - // End usage timer on last source - if (!string.IsNullOrEmpty(LastSourceKey)) - { - var usageLastSource = dict[LastSourceKey].SourceDevice as IUsageTracking; - if (usageLastSource != null && usageLastSource.UsageTracker != null) - { - try - { - // There MAY have been failures in here. Protect - usageLastSource.UsageTracker.EndDeviceUsage(); - } - catch (Exception e) - { - Debug.Console(1, this, "*#* EXCEPTION in end usage tracking:\r{0}", e); - } - } - } - - // Let's run it - var item = dict[routeKey]; - if (routeKey.ToLower() != "roomoff") - { - - LastSourceKey = routeKey; - } - //else - // CurrentSourceInfoKey = null; - - // hand off the individual routes to this helper - foreach (var route in item.RouteList) - DoRouteItem(route, item, routeKey); - - // Start usage timer on routed source - var usageNewSource = item.SourceDevice as IUsageTracking; - if (usageNewSource != null && usageNewSource.UsageTracker != null) // Have to make sure there is a usage tracker! - { - (item.SourceDevice as IUsageTracking).UsageTracker.StartDeviceUsage(); - } - - // See if this can be moved into common, base-class method ------------- - - - // Set volume control, using default if non provided - IBasicVolumeControls volDev = null; - // Handle special cases for volume control - if (string.IsNullOrEmpty(item.VolumeControlKey) - || item.VolumeControlKey.Equals("$defaultAudio", StringComparison.OrdinalIgnoreCase)) - volDev = DefaultVolumeControls; - - // Or a specific device, probably rarely used. - else - { - var dev = DeviceManager.GetDeviceForKey(item.VolumeControlKey); - if (dev is IBasicVolumeControls) - volDev = dev as IBasicVolumeControls; - else if (dev is IHasVolumeDevice) - volDev = (dev as IHasVolumeDevice).VolumeDevice; - } - - if (volDev != CurrentVolumeControls) - { - // zero the volume on the device we are leaving. - // Set the volume to default on device we are entering - if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback) - { - var vd = CurrentVolumeControls as IBasicVolumeWithFeedback; - SavedVolumeLevels[vd] = (uint)vd.VolumeLevelFeedback.IntValue; - vd.SetVolume(0); - } - - CurrentVolumeControls = volDev; - if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback) - { - var vd = CurrentVolumeControls as IBasicVolumeWithFeedback; - ushort vol = (SavedVolumeLevels.ContainsKey(vd) ? (ushort)SavedVolumeLevels[vd] : DefaultVolume); - vd.SetVolume(vol); - } - } - // ----------------------------------------------------------------------- - - - - // store the name and UI info for routes - if (item.SourceKey == "$off") - { - LeftDisplay.CurrentSourceInfoKey = routeKey; - LeftDisplay.CurrentSourceInfo = null; - RightDisplay.CurrentSourceInfoKey = routeKey; - RightDisplay.CurrentSourceInfo = null; - } - //else if (item.SourceKey != null) - //{ - // if(item.RouteList - // CurrentSourceInfoKey = routeKey; - // CurrentSourceInfo = item; - //} - - OnFeedback.FireUpdate(); - - // report back when done - if (successCallback != null) - successCallback(); - } - catch (Exception e) - { - Debug.Console(1, this, "ERROR in routing: {0}", e); - } - - SourceSelectLock.Leave(); - }, 0); // end of CTimer - } - - - /// - /// - /// - /// - void DoRouteItem(SourceRouteListItem route, SourceListItem sourceItem, string sourceItemKey) - { - // if there is a $defaultAll on route, run two separate - if (route.DestinationKey.Equals("$defaultAll", StringComparison.OrdinalIgnoreCase)) - { - // Going to assume a single-path route for now - var tempVideo = new SourceRouteListItem - { - DestinationKey = "$defaultDisplay", - SourceKey = route.SourceKey, - Type = eRoutingSignalType.Video - }; - DoRoute(tempVideo, sourceItem, sourceItemKey); - } - else - DoRoute(route, sourceItem, sourceItemKey); - } - - /// - /// - /// - /// - /// - bool DoRoute(SourceRouteListItem route, SourceListItem sourceItem, string sourceItemKey) - { - IRoutingSink dest = null; - - if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase)) - dest = DefaultAudioDevice as IRoutingSinkNoSwitching; - else if (route.DestinationKey.Equals(LeftDisplay.Key, StringComparison.OrdinalIgnoreCase)) - dest = LeftDisplay; - else if (route.DestinationKey.Equals(RightDisplay.Key, StringComparison.OrdinalIgnoreCase)) - dest = RightDisplay; - else - dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSinkNoSwitching; - - if (dest == null) - { - Debug.Console(1, this, "Cannot route, unknown destination '{0}'", route.DestinationKey); - return false; - } - - if (route.SourceKey.Equals("$off", StringComparison.OrdinalIgnoreCase)) - { - dest.ReleaseRoute(); - - - - if (dest is IHasPowerControl) - (dest as IHasPowerControl).PowerOff(); - } - else - { - var source = DeviceManager.GetDeviceForKey(route.SourceKey) as IRoutingOutputs; - if (source == null) - { - Debug.Console(1, this, "Cannot route unknown source '{0}' to {1}", route.SourceKey, route.DestinationKey); - return false; - } - dest.ReleaseAndMakeRoute(source, route.Type); - - dest.CurrentSourceInfoKey = sourceItemKey; - dest.CurrentSourceInfo = sourceItem; - } - return true; - } - - public override void RoomVacatedForTimeoutPeriod(object o) - { - //Implement this - } - - /// - /// Does what it says - /// - public override void SetDefaultLevels() - { - Debug.Console(1, this, "Restoring default levels"); - var vc = CurrentVolumeControls as IBasicVolumeWithFeedback; - if (vc != null) - vc.SetVolume(DefaultVolume); - } - /// - /// Will power the room on with the last-used source - /// - public override void PowerOnToDefaultOrLastSource() - { - if (!EnablePowerOnToLastSource || LastSourceKey == null) - return; - RunRouteAction(LastSourceKey, SourceListKey); - } - - /// - /// Runs "roomOff" action on all rooms not set to ExcludeFromGlobalFunctions - /// - public static void AllRoomsOff() - { - var allRooms = DeviceManager.AllDevices.Where(d => - d is IEssentialsHuddleSpaceRoom && !(d as IEssentialsHuddleSpaceRoom).ExcludeFromGlobalFunctions); - foreach (var room in allRooms) - (room as IEssentialsHuddleSpaceRoom).RunRouteAction("roomOff", (room as IEssentialsHuddleSpaceRoom).SourceListKey); - } - - #region IPrivacy Members - - - public void PrivacyModeOff() - { - VideoCodec.PrivacyModeOff(); - } - - public void PrivacyModeOn() - { - VideoCodec.PrivacyModeOn(); - } - - public void PrivacyModeToggle() - { - VideoCodec.PrivacyModeToggle(); - } - - #endregion - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Room/Types/EssentialsHuddleSpaceRoom.cs b/PepperDashEssentials/Room/Types/EssentialsHuddleSpaceRoom.cs deleted file mode 100644 index 5dbe7600..00000000 --- a/PepperDashEssentials/Room/Types/EssentialsHuddleSpaceRoom.cs +++ /dev/null @@ -1,564 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using Newtonsoft.Json; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Room.Config; - -namespace PepperDash.Essentials -{ - public class EssentialsHuddleSpaceRoom : EssentialsRoomBase, IEssentialsHuddleSpaceRoom - { - public event EventHandler CurrentVolumeDeviceChange; - public event SourceInfoChangeHandler CurrentSourceChange; - - protected override Func OnFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - var val = CurrentSourceInfo != null - && CurrentSourceInfo.Type == eSourceListItemType.Route - && disp != null; - //&& disp.PowerIsOnFeedback.BoolValue; - return val; - }; - } - } - /// - /// - /// - protected override Func IsWarmingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsWarmingUpFeedback.BoolValue; - else - return false; - }; - } - } - /// - /// - /// - protected override Func IsCoolingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsCoolingDownFeedback.BoolValue; - else - return false; - }; - } - } - - public EssentialsHuddleRoomPropertiesConfig PropertiesConfig { get; private set; } - - public IRoutingSinkWithSwitching DefaultDisplay { get; private set; } - public IRoutingSink DefaultAudioDevice { get; private set; } - public IBasicVolumeControls DefaultVolumeControls { get; private set; } - - public bool ExcludeFromGlobalFunctions { get; set; } - - public string DefaultSourceItem { get; set; } - - public ushort DefaultVolume { get; set; } - - /// - /// If room is off, enables power on to last source. Default true - /// - public bool EnablePowerOnToLastSource { get; set; } - string LastSourceKey; - - /// - /// - /// - public IBasicVolumeControls CurrentVolumeControls - { - get { return _CurrentAudioDevice; } - set - { - if (value == _CurrentAudioDevice) return; - - var oldDev = _CurrentAudioDevice; - // derigister this room from the device, if it can - if (oldDev is IInUseTracking) - (oldDev as IInUseTracking).InUseTracker.RemoveUser(this, "audio"); - var handler = CurrentVolumeDeviceChange; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.WillChange)); - _CurrentAudioDevice = value; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.DidChange)); - // register this room with new device, if it can - if (_CurrentAudioDevice is IInUseTracking) - (_CurrentAudioDevice as IInUseTracking).InUseTracker.AddUser(this, "audio"); - } - } - IBasicVolumeControls _CurrentAudioDevice; - - /// - /// The SourceListItem last run - containing names and icons - /// - public SourceListItem CurrentSourceInfo - { - get { return _CurrentSourceInfo; } - set - { - if (value == _CurrentSourceInfo) return; - - var handler = CurrentSourceChange; - // remove from in-use tracker, if so equipped - if(_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control"); - - if (handler != null) - handler(_CurrentSourceInfo, ChangeType.WillChange); - - _CurrentSourceInfo = value; - - // add to in-use tracking - if (_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.AddUser(this, "control"); - if (handler != null) - handler( _CurrentSourceInfo, ChangeType.DidChange); - } - } - SourceListItem _CurrentSourceInfo; - - public string CurrentSourceInfoKey { get; set; } - - public EssentialsHuddleSpaceRoom(DeviceConfig config) - : base(config) - { - try - { - PropertiesConfig = JsonConvert.DeserializeObject - (config.Properties.ToString()); - DefaultDisplay = DeviceManager.GetDeviceForKey(PropertiesConfig.DefaultDisplayKey) as IRoutingSinkWithSwitching; - - - DefaultAudioDevice = DeviceManager.GetDeviceForKey(PropertiesConfig.DefaultAudioKey) as IRoutingSinkWithSwitching; - - InitializeRoom(); - } - catch (Exception e) - { - Debug.Console(1, this, "Error building room: \n{0}", e); - } - } - - void InitializeRoom() - { - if (DefaultAudioDevice is IBasicVolumeControls) - DefaultVolumeControls = DefaultAudioDevice as IBasicVolumeControls; - else if (DefaultAudioDevice is IHasVolumeDevice) - DefaultVolumeControls = (DefaultAudioDevice as IHasVolumeDevice).VolumeDevice; - CurrentVolumeControls = DefaultVolumeControls; - - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - { - // Link power, warming, cooling to display - var dispTwoWay = disp as IHasPowerControlWithFeedback; - if (dispTwoWay != null) - { - dispTwoWay.PowerIsOnFeedback.OutputChange += (o, a) => - { - if (dispTwoWay.PowerIsOnFeedback.BoolValue != OnFeedback.BoolValue) - { - if (!dispTwoWay.PowerIsOnFeedback.BoolValue) - CurrentSourceInfo = null; - OnFeedback.FireUpdate(); - } - }; - } - - disp.IsWarmingUpFeedback.OutputChange += (o, a) => - { - IsWarmingUpFeedback.FireUpdate(); - if (!IsWarmingUpFeedback.BoolValue) - (DefaultDisplay as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - }; - disp.IsCoolingDownFeedback.OutputChange += (o, a) => - { - IsCoolingDownFeedback.FireUpdate(); - }; - } - - SetupEnvironmentalControlDevices(); - - SetSourceListKey(); - - EnablePowerOnToLastSource = true; - } - - private void SetupEnvironmentalControlDevices() - { - if (PropertiesConfig.Environment != null) - { - if (PropertiesConfig.Environment.Enabled) - { - foreach (var d in PropertiesConfig.Environment.DeviceKeys) - { - var envDevice = DeviceManager.GetDeviceForKey(d) as EssentialsDevice; - EnvironmentalControlDevices.Add(envDevice); - } - } - } - } - - private void SetSourceListKey() - { - if (!string.IsNullOrEmpty(PropertiesConfig.SourceListKey)) - { - SetSourceListKey(PropertiesConfig.SourceListKey); - } - else - { - SetSourceListKey(Key); - } - - } - - protected override void CustomSetConfig(DeviceConfig config) - { - var newPropertiesConfig = JsonConvert.DeserializeObject(config.Properties.ToString()); - - if (newPropertiesConfig != null) - PropertiesConfig = newPropertiesConfig; - - ConfigWriter.UpdateRoomConfig(config); - } - - /// - /// - /// - protected override void EndShutdown() - { - SetDefaultLevels(); - - RunDefaultPresentRoute(); - - CrestronEnvironment.Sleep(1000); - - Debug.Console(0, this, Debug.ErrorLogLevel.Notice, "Shutting down room"); - - RunRouteAction("roomOff"); - } - - /// - /// Routes the default source item, if any - /// - public override bool RunDefaultPresentRoute() - { - if (DefaultSourceItem == null) - { - Debug.Console(0, this, "Unable to run default present route, DefaultSourceItem is null."); - return false; - } - - RunRouteAction(DefaultSourceItem); - return true; - } - - public override bool CustomActivate() - { - // Add Occupancy object from config - if (PropertiesConfig.Occupancy != null) - this.SetRoomOccupancy(DeviceManager.GetDeviceForKey(PropertiesConfig.Occupancy.DeviceKey) as - IOccupancyStatusProvider, PropertiesConfig.Occupancy.TimeoutMinutes); - - this.LogoUrlLightBkgnd = PropertiesConfig.LogoLight.GetLogoUrlLight(); - this.LogoUrlDarkBkgnd = PropertiesConfig.LogoDark.GetLogoUrlDark(); - this.DefaultSourceItem = PropertiesConfig.DefaultSourceItem; - this.DefaultVolume = (ushort)(PropertiesConfig.Volumes.Master.Level * 65535 / 100); - - return base.CustomActivate(); - } - - /// - /// - /// - /// - public void RunRouteAction(string routeKey) - { - RunRouteAction(routeKey, new Action(() => { })); - } - - /// - /// - /// - /// - /// - /// - public void RunRouteAction(string routeKey, string sourceListKey) - { - RunRouteAction(routeKey, new Action(() => { })); - } - - /// - /// - /// - /// - /// - /// - public void RunRouteAction(string routeKey, string sourceListKey, Action successCallback) - { - if (string.IsNullOrEmpty(sourceListKey)) - { - RunRouteAction(routeKey, successCallback); - } - else - throw new NotImplementedException(); - } - - /// - /// Gets a source from config list SourceListKey and dynamically build and executes the - /// route or commands - /// - /// - public void RunRouteAction(string routeKey, Action successCallback) - { - // Run this on a separate thread - new CTimer(o => - { - Debug.Console(0, this, Debug.ErrorLogLevel.Notice, "Run route action '{0}'", routeKey); - var dict = ConfigReader.ConfigObject.GetSourceListForKey(SourceListKey); - if(dict == null) - { - Debug.Console(1, this, "WARNING: Config source list '{0}' not found", SourceListKey); - return; - } - - // Try to get the list item by it's string key - if (!dict.ContainsKey(routeKey)) - { - Debug.Console(1, this, "WARNING: No item '{0}' found on config list '{1}'", - routeKey, SourceListKey); - return; - } - - var item = dict[routeKey]; - //Debug.Console(2, this, "Action {0} has {1} steps", - // item.SourceKey, item.RouteList.Count); - - // End usage timer on last source - if (!string.IsNullOrEmpty(LastSourceKey)) - { - var lastSource = dict[LastSourceKey].SourceDevice; - - try - { - if (lastSource != null && lastSource is IUsageTracking) - (lastSource as IUsageTracking).UsageTracker.EndDeviceUsage(); - } - catch (Exception e) - { - Debug.Console(1, this, "*#* EXCEPTION in end usage tracking (257):\r{0}", e); - } - } - - // Let's run it - if (routeKey.ToLower() != "roomoff") - { - LastSourceKey = routeKey; - } - else - { - CurrentSourceInfoKey = null; - } - - foreach (var route in item.RouteList) - { - // if there is a $defaultAll on route, run two separate - if (route.DestinationKey.Equals("$defaultAll", StringComparison.OrdinalIgnoreCase)) - { - // Going to assume a single-path route for now - var tempVideo = new SourceRouteListItem - { - DestinationKey = "$defaultDisplay", - SourceKey = route.SourceKey, - Type = eRoutingSignalType.Video - }; - DoRoute(tempVideo); - - //var tempAudio = new SourceRouteListItem - //{ - // DestinationKey = "$defaultAudio", - // SourceKey = route.SourceKey, - // Type = eRoutingSignalType.Audio - //}; - //DoRoute(tempAudio); - //continue; -- not sure why this was here - } - else - DoRoute(route); - } - - // Start usage timer on routed source - if (item.SourceDevice is IUsageTracking) - { - (item.SourceDevice as IUsageTracking).UsageTracker.StartDeviceUsage(); - } - - - - - // Set volume control, using default if non provided - IBasicVolumeControls volDev = null; - // Handle special cases for volume control - if (string.IsNullOrEmpty(item.VolumeControlKey) - || item.VolumeControlKey.Equals("$defaultAudio", StringComparison.OrdinalIgnoreCase)) - volDev = DefaultVolumeControls; - else if (item.VolumeControlKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - volDev = DefaultDisplay as IBasicVolumeControls; - // Or a specific device, probably rarely used. - else - { - var dev = DeviceManager.GetDeviceForKey(item.VolumeControlKey); - if (dev is IBasicVolumeControls) - volDev = dev as IBasicVolumeControls; - else if (dev is IHasVolumeDevice) - volDev = (dev as IHasVolumeDevice).VolumeDevice; - } - - if (volDev != CurrentVolumeControls) - { - // zero the volume on the device we are leaving. - // Set the volume to default on device we are entering - if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback) - { - var vd = CurrentVolumeControls as IBasicVolumeWithFeedback; - SavedVolumeLevels[vd] = (uint)vd.VolumeLevelFeedback.IntValue; - vd.SetVolume(0); - } - CurrentVolumeControls = volDev; - if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback) - { - var vd = CurrentVolumeControls as IBasicVolumeWithFeedback; - ushort vol = (SavedVolumeLevels.ContainsKey(vd) ? (ushort)SavedVolumeLevels[vd] : DefaultVolume); - vd.SetVolume(vol); - } - } - - - - // store the name and UI info for routes - if (item.SourceKey == "$off") - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = null; - } - else if (item.SourceKey != null) - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = item; - } - // And finally, set the "control". This will trigger event - //CurrentControlDevice = DeviceManager.GetDeviceForKey(item.SourceKey) as Device; - - OnFeedback.FireUpdate(); - - // report back when done - if (successCallback != null) - successCallback(); - - }, 0); // end of CTimer - } - - /// - /// Will power the room on with the last-used source - /// - public override void PowerOnToDefaultOrLastSource() - { - if (!EnablePowerOnToLastSource || LastSourceKey == null) - return; - RunRouteAction(LastSourceKey); - } - - /// - /// Does what it says - /// - public override void SetDefaultLevels() - { - Debug.Console(1, this, "Restoring default levels"); - var vc = CurrentVolumeControls as IBasicVolumeWithFeedback; - if (vc != null) - vc.SetVolume(DefaultVolume); - } - - /// - /// - /// - /// - /// - bool DoRoute(SourceRouteListItem route) - { - IRoutingSink dest = null; - - if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase)) - dest = DefaultAudioDevice; - else if (route.DestinationKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - dest = DefaultDisplay; - else - dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSink; - - if (dest == null) - { - Debug.Console(1, this, "Cannot route, unknown destination '{0}'", route.DestinationKey); - return false; - } - - if (route.SourceKey.Equals("$off", StringComparison.OrdinalIgnoreCase)) - { - dest.ReleaseRoute(); - if (dest is IHasPowerControl) - (dest as IHasPowerControl).PowerOff(); - } - else - { - var source = DeviceManager.GetDeviceForKey(route.SourceKey) as IRoutingOutputs; - if (source == null) - { - Debug.Console(1, this, "Cannot route unknown source '{0}' to {1}", route.SourceKey, route.DestinationKey); - return false; - } - dest.ReleaseAndMakeRoute(source, route.Type); - } - return true; - } - - public override void RoomVacatedForTimeoutPeriod(object o) - { - //Implement this - } - - /// - /// Runs "roomOff" action on all rooms not set to ExcludeFromGlobalFunctions - /// - public static void AllRoomsOff() - { - var allRooms = DeviceManager.AllDevices.Where(d => - d is EssentialsHuddleSpaceRoom && !(d as EssentialsHuddleSpaceRoom).ExcludeFromGlobalFunctions); - foreach (var room in allRooms) - (room as EssentialsHuddleSpaceRoom).RunRouteAction("roomOff"); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Room/Types/EssentialsHuddleSpaceRoom.cs.orig b/PepperDashEssentials/Room/Types/EssentialsHuddleSpaceRoom.cs.orig deleted file mode 100644 index 7c4e6c5d..00000000 --- a/PepperDashEssentials/Room/Types/EssentialsHuddleSpaceRoom.cs.orig +++ /dev/null @@ -1,850 +0,0 @@ -<<<<<<< HEAD -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Room.Config; - -namespace PepperDash.Essentials -{ - public class EssentialsHuddleSpaceRoom : EssentialsRoomBase, IHasCurrentSourceInfoChange - { - public event EventHandler CurrentVolumeDeviceChange; - public event SourceInfoChangeHandler CurrentSingleSourceChange; - - protected override Func OnFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - var val = CurrentSourceInfo != null - && CurrentSourceInfo.Type == eSourceListItemType.Route - && disp != null - && disp.PowerIsOnFeedback.BoolValue; - return val; - }; - } - } - /// - /// - /// - protected override Func IsWarmingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsWarmingUpFeedback.BoolValue; - else - return false; - }; - } - } - /// - /// - /// - protected override Func IsCoolingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsCoolingDownFeedback.BoolValue; - else - return false; - }; - } - } - - public EssentialsRoomPropertiesConfig Config { get; private set; } - - public IRoutingSinkWithSwitching DefaultDisplay { get; private set; } - public IRoutingSinkNoSwitching DefaultAudioDevice { get; private set; } - public IBasicVolumeControls DefaultVolumeControls { get; private set; } - - public bool ExcludeFromGlobalFunctions { get; set; } - - /// - /// The config name of the source list - /// - public string SourceListKey { get; set; } - - public string DefaultSourceItem { get; set; } - - public ushort DefaultVolume { get; set; } - - /// - /// If room is off, enables power on to last source. Default true - /// - public bool EnablePowerOnToLastSource { get; set; } - string LastSourceKey; - - /// - /// - /// - public IBasicVolumeControls CurrentVolumeControls - { - get { return _CurrentAudioDevice; } - set - { - if (value == _CurrentAudioDevice) return; - - var oldDev = _CurrentAudioDevice; - // derigister this room from the device, if it can - if (oldDev is IInUseTracking) - (oldDev as IInUseTracking).InUseTracker.RemoveUser(this, "audio"); - var handler = CurrentVolumeDeviceChange; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.WillChange)); - _CurrentAudioDevice = value; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.DidChange)); - // register this room with new device, if it can - if (_CurrentAudioDevice is IInUseTracking) - (_CurrentAudioDevice as IInUseTracking).InUseTracker.AddUser(this, "audio"); - } - } - IBasicVolumeControls _CurrentAudioDevice; - - /// - /// The SourceListItem last run - containing names and icons - /// - public SourceListItem CurrentSourceInfo - { - get { return _CurrentSourceInfo; } - private set - { - if (value == _CurrentSourceInfo) return; - - var handler = CurrentSingleSourceChange; - // remove from in-use tracker, if so equipped - if(_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control"); - - if (handler != null) - handler(this, _CurrentSourceInfo, ChangeType.WillChange); - - _CurrentSourceInfo = value; - - // add to in-use tracking - if (_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.AddUser(this, "control"); - if (handler != null) - handler(this, _CurrentSourceInfo, ChangeType.DidChange); - } - } - SourceListItem _CurrentSourceInfo; - - public string CurrentSourceInfoKey { get; private set; } - - /// - /// - /// - /// - /// - public EssentialsHuddleSpaceRoom(string key, string name, IRoutingSinkWithSwitching defaultDisplay, - IRoutingSinkNoSwitching defaultAudio, EssentialsRoomPropertiesConfig config) - : base(key, name) - { - Config = config; - DefaultDisplay = defaultDisplay; - DefaultAudioDevice = defaultAudio; - if (defaultAudio is IBasicVolumeControls) - DefaultVolumeControls = defaultAudio as IBasicVolumeControls; - else if (defaultAudio is IHasVolumeDevice) - DefaultVolumeControls = (defaultAudio as IHasVolumeDevice).VolumeDevice; - CurrentVolumeControls = DefaultVolumeControls; - - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - { - // Link power, warming, cooling to display - disp.PowerIsOnFeedback.OutputChange += (o, a) => - { - if (disp.PowerIsOnFeedback.BoolValue != OnFeedback.BoolValue) - { - if (!disp.PowerIsOnFeedback.BoolValue) - CurrentSourceInfo = null; - OnFeedback.FireUpdate(); - } - }; - - disp.IsWarmingUpFeedback.OutputChange += (o, a) => - { - IsWarmingUpFeedback.FireUpdate(); - if (!IsWarmingUpFeedback.BoolValue) - (DefaultDisplay as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - }; - disp.IsCoolingDownFeedback.OutputChange += (o, a) => - { - IsCoolingDownFeedback.FireUpdate(); - if (IsCoolingDownFeedback.BoolValue) - (DefaultDisplay as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - }; - } - - SourceListKey = "default"; - EnablePowerOnToLastSource = true; - } - - - /// - /// - /// - public override void Shutdown() - { - RunRouteAction("roomOff"); - } - - /// - /// Routes the default source item, if any - /// - public void RunDefaultRoute() - { - if (DefaultSourceItem != null) - RunRouteAction(DefaultSourceItem); - } - - /// - /// - /// - /// - public void RunRouteAction(string routeKey) - { - RunRouteAction(routeKey, null); - } - - /// - /// Gets a source from config list SourceListKey and dynamically build and executes the - /// route or commands - /// - /// - public void RunRouteAction(string routeKey, Action successCallback) - { - // Run this on a separate thread - new CTimer(o => - { - Debug.Console(1, this, "Run route action '{0}'", routeKey); - var dict = ConfigReader.ConfigObject.GetSourceListForKey(SourceListKey); - if(dict == null) - { - Debug.Console(1, this, "WARNING: Config source list '{0}' not found", SourceListKey); - return; - } - - // Try to get the list item by it's string key - if (!dict.ContainsKey(routeKey)) - { - Debug.Console(1, this, "WARNING: No item '{0}' found on config list '{1}'", - routeKey, SourceListKey); - return; - } - - var item = dict[routeKey]; - //Debug.Console(2, this, "Action {0} has {1} steps", - // item.SourceKey, item.RouteList.Count); - - // End usage timer on last source - if (!string.IsNullOrEmpty(LastSourceKey)) - { - var lastSource = dict[LastSourceKey].SourceDevice; - - try - { - if (lastSource != null && lastSource is IUsageTracking) - (lastSource as IUsageTracking).UsageTracker.EndDeviceUsage(); - } - catch (Exception e) - { - Debug.Console(1, this, "*#* EXCEPTION in end usage tracking (257):\r{0}", e); - } - } - - // Let's run it - if (routeKey.ToLower() != "roomoff") - { - LastSourceKey = routeKey; - } - else - { - CurrentSourceInfoKey = null; - } - - foreach (var route in item.RouteList) - { - // if there is a $defaultAll on route, run two separate - if (route.DestinationKey.Equals("$defaultAll", StringComparison.OrdinalIgnoreCase)) - { - // Going to assume a single-path route for now - var tempVideo = new SourceRouteListItem - { - DestinationKey = "$defaultDisplay", - SourceKey = route.SourceKey, - Type = eRoutingSignalType.Video - }; - DoRoute(tempVideo); - - //var tempAudio = new SourceRouteListItem - //{ - // DestinationKey = "$defaultAudio", - // SourceKey = route.SourceKey, - // Type = eRoutingSignalType.Audio - //}; - //DoRoute(tempAudio); - //continue; -- not sure why this was here - } - else - DoRoute(route); - } - - // Start usage timer on routed source - if (item.SourceDevice is IUsageTracking) - { - (item.SourceDevice as IUsageTracking).UsageTracker.StartDeviceUsage(); - } - - - // Set volume control on room, using default if non provided - IBasicVolumeControls volDev = null; - // Handle special cases for volume control - if (string.IsNullOrEmpty(item.VolumeControlKey) - || item.VolumeControlKey.Equals("$defaultAudio", StringComparison.OrdinalIgnoreCase)) - volDev = DefaultVolumeControls; - else if (item.VolumeControlKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - volDev = DefaultDisplay as IBasicVolumeControls; - // Or a specific device, probably rarely used. - else - { - var dev = DeviceManager.GetDeviceForKey(item.VolumeControlKey); - if (dev is IBasicVolumeControls) - volDev = dev as IBasicVolumeControls; - else if (dev is IHasVolumeDevice) - volDev = (dev as IHasVolumeDevice).VolumeDevice; - } - CurrentVolumeControls = volDev; - - // store the name and UI info for routes - if (item.SourceKey == "$off") - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = null; - } - else if (item.SourceKey != null) - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = item; - } - // And finally, set the "control". This will trigger event - //CurrentControlDevice = DeviceManager.GetDeviceForKey(item.SourceKey) as Device; - - OnFeedback.FireUpdate(); - - // report back when done - if (successCallback != null) - successCallback(); - - }, 0); // end of CTimer - } - - /// - /// Will power the room on with the last-used source - /// - public void PowerOnToDefaultOrLastSource() - { - if (!EnablePowerOnToLastSource || LastSourceKey == null) - return; - RunRouteAction(LastSourceKey); - } - - /// - /// Does what it says - /// - public override void SetDefaultLevels() - { - Debug.Console(0, this, "SetDefaultLevels not implemented"); - } - - /// - /// - /// - /// - /// - bool DoRoute(SourceRouteListItem route) - { - IRoutingSinkNoSwitching dest = null; - - if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase)) - dest = DefaultAudioDevice; - else if (route.DestinationKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - dest = DefaultDisplay; - else - dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSinkNoSwitching; - - if (dest == null) - { - Debug.Console(1, this, "Cannot route, unknown destination '{0}'", route.DestinationKey); - return false; - } - - if (route.SourceKey.Equals("$off", StringComparison.OrdinalIgnoreCase)) - { - dest.ReleaseRoute(); - if (dest is IPower) - (dest as IPower).PowerOff(); - } - else - { - var source = DeviceManager.GetDeviceForKey(route.SourceKey) as IRoutingOutputs; - if (source == null) - { - Debug.Console(1, this, "Cannot route unknown source '{0}' to {1}", route.SourceKey, route.DestinationKey); - return false; - } - dest.ReleaseAndMakeRoute(source, route.Type); - } - return true; -======= -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Room.Config; - -namespace PepperDash.Essentials -{ - public class EssentialsHuddleSpaceRoom : EssentialsRoomBase, IHasCurrentSourceInfoChange - { - public event EventHandler CurrentVolumeDeviceChange; - public event SourceInfoChangeHandler CurrentSingleSourceChange; - - protected override Func OnFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - var val = CurrentSourceInfo != null - && CurrentSourceInfo.Type == eSourceListItemType.Route - && disp != null - && disp.PowerIsOnFeedback.BoolValue; - return val; - }; - } - } - /// - /// - /// - protected override Func IsWarmingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsWarmingUpFeedback.BoolValue; - else - return false; - }; - } - } - /// - /// - /// - protected override Func IsCoolingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsCoolingDownFeedback.BoolValue; - else - return false; - }; - } - } - - public EssentialsRoomPropertiesConfig Config { get; private set; } - - public IRoutingSinkWithSwitching DefaultDisplay { get; private set; } - public IRoutingSinkNoSwitching DefaultAudioDevice { get; private set; } - public IBasicVolumeControls DefaultVolumeControls { get; private set; } - - public bool ExcludeFromGlobalFunctions { get; set; } - - /// - /// The config name of the source list - /// - public string SourceListKey { get; set; } - - public string DefaultSourceItem { get; set; } - - public ushort DefaultVolume { get; set; } - - /// - /// If room is off, enables power on to last source. Default true - /// - public bool EnablePowerOnToLastSource { get; set; } - string LastSourceKey; - - /// - /// - /// - public IBasicVolumeControls CurrentVolumeControls - { - get { return _CurrentAudioDevice; } - set - { - if (value == _CurrentAudioDevice) return; - - var oldDev = _CurrentAudioDevice; - // derigister this room from the device, if it can - if (oldDev is IInUseTracking) - (oldDev as IInUseTracking).InUseTracker.RemoveUser(this, "audio"); - var handler = CurrentVolumeDeviceChange; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.WillChange)); - _CurrentAudioDevice = value; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.DidChange)); - // register this room with new device, if it can - if (_CurrentAudioDevice is IInUseTracking) - (_CurrentAudioDevice as IInUseTracking).InUseTracker.AddUser(this, "audio"); - } - } - IBasicVolumeControls _CurrentAudioDevice; - - /// - /// The SourceListItem last run - containing names and icons - /// - public SourceListItem CurrentSourceInfo - { - get { return _CurrentSourceInfo; } - private set - { - if (value == _CurrentSourceInfo) return; - - var handler = CurrentSingleSourceChange; - // remove from in-use tracker, if so equipped - if(_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control"); - - if (handler != null) - handler(this, _CurrentSourceInfo, ChangeType.WillChange); - - _CurrentSourceInfo = value; - - // add to in-use tracking - if (_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.AddUser(this, "control"); - if (handler != null) - handler(this, _CurrentSourceInfo, ChangeType.DidChange); - } - } - SourceListItem _CurrentSourceInfo; - - public string CurrentSourceInfoKey { get; private set; } - - /// - /// - /// - /// - /// - public EssentialsHuddleSpaceRoom(string key, string name, IRoutingSinkWithSwitching defaultDisplay, - IRoutingSinkNoSwitching defaultAudio, EssentialsRoomPropertiesConfig config) - : base(key, name) - { - Config = config; - DefaultDisplay = defaultDisplay; - DefaultAudioDevice = defaultAudio; - if (defaultAudio is IBasicVolumeControls) - DefaultVolumeControls = defaultAudio as IBasicVolumeControls; - else if (defaultAudio is IHasVolumeDevice) - DefaultVolumeControls = (defaultAudio as IHasVolumeDevice).VolumeDevice; - CurrentVolumeControls = DefaultVolumeControls; - - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - { - // Link power, warming, cooling to display - disp.PowerIsOnFeedback.OutputChange += (o, a) => - { - if (disp.PowerIsOnFeedback.BoolValue != OnFeedback.BoolValue) - { - if (!disp.PowerIsOnFeedback.BoolValue) - CurrentSourceInfo = null; - OnFeedback.FireUpdate(); - } - }; - - disp.IsWarmingUpFeedback.OutputChange += (o, a) => - { - IsWarmingUpFeedback.FireUpdate(); - if (!IsWarmingUpFeedback.BoolValue) - (DefaultDisplay as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - }; - disp.IsCoolingDownFeedback.OutputChange += (o, a) => - { - IsCoolingDownFeedback.FireUpdate(); - if (IsCoolingDownFeedback.BoolValue) - (DefaultDisplay as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - }; - } - - SourceListKey = "default"; - EnablePowerOnToLastSource = true; - } - - - /// - /// - /// - protected override void EndShutdown() - { - RunRouteAction("roomOff"); - } - - /// - /// Routes the default source item, if any - /// - public void RunDefaultRoute() - { - if (DefaultSourceItem != null) - RunRouteAction(DefaultSourceItem); - } - - /// - /// - /// - /// - public void RunRouteAction(string routeKey) - { - RunRouteAction(routeKey, null); - } - - /// - /// Gets a source from config list SourceListKey and dynamically build and executes the - /// route or commands - /// - /// - public void RunRouteAction(string routeKey, Action successCallback) - { - // Run this on a separate thread - new CTimer(o => - { - Debug.Console(1, this, "Run route action '{0}'", routeKey); - var dict = ConfigReader.ConfigObject.GetSourceListForKey(SourceListKey); - if(dict == null) - { - Debug.Console(1, this, "WARNING: Config source list '{0}' not found", SourceListKey); - return; - } - - // Try to get the list item by it's string key - if (!dict.ContainsKey(routeKey)) - { - Debug.Console(1, this, "WARNING: No item '{0}' found on config list '{1}'", - routeKey, SourceListKey); - return; - } - - var item = dict[routeKey]; - //Debug.Console(2, this, "Action {0} has {1} steps", - // item.SourceKey, item.RouteList.Count); - - // End usage timer on last source - if (!string.IsNullOrEmpty(LastSourceKey)) - { - var lastSource = dict[LastSourceKey].SourceDevice; - - try - { - if (lastSource != null && lastSource is IUsageTracking) - (lastSource as IUsageTracking).UsageTracker.EndDeviceUsage(); - } - catch (Exception e) - { - Debug.Console(1, this, "*#* EXCEPTION in end usage tracking (257):\r{0}", e); - } - } - - // Let's run it - if (routeKey.ToLower() != "roomoff") - { - LastSourceKey = routeKey; - } - else - { - CurrentSourceInfoKey = null; - } - - foreach (var route in item.RouteList) - { - // if there is a $defaultAll on route, run two separate - if (route.DestinationKey.Equals("$defaultAll", StringComparison.OrdinalIgnoreCase)) - { - // Going to assume a single-path route for now - var tempVideo = new SourceRouteListItem - { - DestinationKey = "$defaultDisplay", - SourceKey = route.SourceKey, - Type = eRoutingSignalType.Video - }; - DoRoute(tempVideo); - - //var tempAudio = new SourceRouteListItem - //{ - // DestinationKey = "$defaultAudio", - // SourceKey = route.SourceKey, - // Type = eRoutingSignalType.Audio - //}; - //DoRoute(tempAudio); - //continue; -- not sure why this was here - } - else - DoRoute(route); - } - - // Start usage timer on routed source - if (item.SourceDevice is IUsageTracking) - { - (item.SourceDevice as IUsageTracking).UsageTracker.StartDeviceUsage(); - } - - - // Set volume control on room, using default if non provided - IBasicVolumeControls volDev = null; - // Handle special cases for volume control - if (string.IsNullOrEmpty(item.VolumeControlKey) - || item.VolumeControlKey.Equals("$defaultAudio", StringComparison.OrdinalIgnoreCase)) - volDev = DefaultVolumeControls; - else if (item.VolumeControlKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - volDev = DefaultDisplay as IBasicVolumeControls; - // Or a specific device, probably rarely used. - else - { - var dev = DeviceManager.GetDeviceForKey(item.VolumeControlKey); - if (dev is IBasicVolumeControls) - volDev = dev as IBasicVolumeControls; - else if (dev is IHasVolumeDevice) - volDev = (dev as IHasVolumeDevice).VolumeDevice; - } - CurrentVolumeControls = volDev; - - // store the name and UI info for routes - if (item.SourceKey == "$off") - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = null; - } - else if (item.SourceKey != null) - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = item; - } - // And finally, set the "control". This will trigger event - //CurrentControlDevice = DeviceManager.GetDeviceForKey(item.SourceKey) as Device; - - OnFeedback.FireUpdate(); - - // report back when done - if (successCallback != null) - successCallback(); - - }, 0); // end of CTimer - } - - /// - /// Will power the room on with the last-used source - /// - public void PowerOnToDefaultOrLastSource() - { - if (!EnablePowerOnToLastSource || LastSourceKey == null) - return; - RunRouteAction(LastSourceKey); - } - - /// - /// Does what it says - /// - public override void SetDefaultLevels() - { - Debug.Console(0, this, "SetDefaultLevels not implemented"); - } - - /// - /// - /// - /// - /// - bool DoRoute(SourceRouteListItem route) - { - IRoutingSinkNoSwitching dest = null; - - if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase)) - dest = DefaultAudioDevice; - else if (route.DestinationKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - dest = DefaultDisplay; - else - dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSinkNoSwitching; - - if (dest == null) - { - Debug.Console(1, this, "Cannot route, unknown destination '{0}'", route.DestinationKey); - return false; - } - - if (route.SourceKey.Equals("$off", StringComparison.OrdinalIgnoreCase)) - { - dest.ReleaseRoute(); - if (dest is IPower) - (dest as IPower).PowerOff(); - } - else - { - var source = DeviceManager.GetDeviceForKey(route.SourceKey) as IRoutingOutputs; - if (source == null) - { - Debug.Console(1, this, "Cannot route unknown source '{0}' to {1}", route.SourceKey, route.DestinationKey); - return false; - } - dest.ReleaseAndMakeRoute(source, route.Type); - } - return true; ->>>>>>> origin/feature/ecs-342 - } - - public override void RoomVacatedForTimeoutPeriod(object o) - { - //Implement this - } - - /// - /// Runs "roomOff" action on all rooms not set to ExcludeFromGlobalFunctions - /// - public static void AllRoomsOff() - { - var allRooms = DeviceManager.AllDevices.Where(d => - d is EssentialsHuddleSpaceRoom && !(d as EssentialsHuddleSpaceRoom).ExcludeFromGlobalFunctions); - foreach (var room in allRooms) - (room as EssentialsHuddleSpaceRoom).RunRouteAction("roomOff"); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs b/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs deleted file mode 100644 index 2aae2f75..00000000 --- a/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs +++ /dev/null @@ -1,946 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using Newtonsoft.Json; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Room.Config; -using PepperDash.Essentials.Devices.Common.Codec; -using PepperDash.Essentials.Devices.Common.VideoCodec; -using PepperDash.Essentials.Devices.Common.AudioCodec; -using PepperDash.Essentials.Core.DeviceTypeInterfaces; - -namespace PepperDash.Essentials -{ - public class EssentialsHuddleVtc1Room : EssentialsRoomBase, IEssentialsHuddleVtc1Room - { - private IEssentialsRoomCombiner _roomCombiner; - - private bool _codecExternalSourceChange; - public event EventHandler CurrentVolumeDeviceChange; - public event SourceInfoChangeHandler CurrentSourceChange; - - - //************************ - // Call-related stuff - - public BoolFeedback InCallFeedback { get; private set; } - - ///// - ///// Make this more specific - ///// - //public List ActiveCalls { get; private set; } - - /// - /// States: 0 for on hook, 1 for video, 2 for audio, 3 for telekenesis - /// - public IntFeedback CallTypeFeedback { get; private set; } - - /// - /// - /// - public BoolFeedback PrivacyModeIsOnFeedback { get; private set; } - - /// - /// When something in the room is sharing with the far end or through other means - /// - public BoolFeedback IsSharingFeedback { get; private set; } - - //************************ - - protected override Func OnFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - var val = CurrentSourceInfo != null - && CurrentSourceInfo.Type == eSourceListItemType.Route - && disp != null; - //&& disp.PowerIsOnFeedback.BoolValue; - return val; - }; - } - } - /// - /// - /// - protected override Func IsWarmingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsWarmingUpFeedback.BoolValue; - else - return false; - }; - } - } - /// - /// - /// - protected override Func IsCoolingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsCoolingDownFeedback.BoolValue; - else - return false; - }; - } - } - - public EssentialsHuddleVtc1PropertiesConfig PropertiesConfig { get; private set; } - - public IRoutingSinkWithSwitching DefaultDisplay { get; private set; } - public IBasicVolumeControls DefaultAudioDevice { get; private set; } - public IBasicVolumeControls DefaultVolumeControls { get; private set; } - - public VideoCodecBase VideoCodec { get; private set; } - - public AudioCodecBase AudioCodec { get; private set; } - - public bool ExcludeFromGlobalFunctions { get; set; } - - public string DefaultSourceItem { get; set; } - - public ushort DefaultVolume { get; set; } - - /// - /// If room is off, enables power on to last source. Default true - /// - public bool EnablePowerOnToLastSource { get; set; } - string LastSourceKey; - - /// - /// Sets the volume control device, and attaches/removes InUseTrackers with "audio" - /// tag to device. - /// - public IBasicVolumeControls CurrentVolumeControls - { - get { return _CurrentAudioDevice; } - set - { - if (value == _CurrentAudioDevice) return; - - var oldDev = _CurrentAudioDevice; - // derigister this room from the device, if it can - if (oldDev is IInUseTracking) - (oldDev as IInUseTracking).InUseTracker.RemoveUser(this, "audio"); - var handler = CurrentVolumeDeviceChange; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.WillChange)); - _CurrentAudioDevice = value; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.DidChange)); - // register this room with new device, if it can - if (_CurrentAudioDevice is IInUseTracking) - (_CurrentAudioDevice as IInUseTracking).InUseTracker.AddUser(this, "audio"); - } - } - IBasicVolumeControls _CurrentAudioDevice; - - /// - /// The SourceListItem last run - containing names and icons - /// - public SourceListItem CurrentSourceInfo - { - get { return _CurrentSourceInfo; } - set - { - if (value == _CurrentSourceInfo) return; - - var handler = CurrentSourceChange; - // remove from in-use tracker, if so equipped - if(_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control"); - - if (handler != null) - handler(_CurrentSourceInfo, ChangeType.WillChange); - - _CurrentSourceInfo = value; - - // add to in-use tracking - if (_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.AddUser(this, "control"); - if (handler != null) - handler(_CurrentSourceInfo, ChangeType.DidChange); - - var vc = VideoCodec as IHasExternalSourceSwitching; - if (vc != null && !_codecExternalSourceChange) - { - vc.SetSelectedSource(CurrentSourceInfoKey); - } - - _codecExternalSourceChange = false; - } - } - SourceListItem _CurrentSourceInfo; - - public string CurrentSourceInfoKey { get; set; } - - /// - /// "codecOsd" - /// - public string DefaultCodecRouteString { get { return "codecOsd"; } } - - /// - /// Temporary implementation. Returns the schedule-ready object or null if none. Fow now, - /// always returns the VideoCodec if it is capable - /// - public IHasScheduleAwareness ScheduleSource { get { return VideoCodec as IHasScheduleAwareness; } } - - CCriticalSection SourceSelectLock = new CCriticalSection(); - - public EssentialsHuddleVtc1Room(DeviceConfig config) - : base(config) - { - try - { - PropertiesConfig = JsonConvert.DeserializeObject - (config.Properties.ToString()); - DefaultDisplay = DeviceManager.GetDeviceForKey((PropertiesConfig as EssentialsHuddleVtc1PropertiesConfig).DefaultDisplayKey) as IRoutingSinkWithSwitching; - - VideoCodec = DeviceManager.GetDeviceForKey(PropertiesConfig.VideoCodecKey) as - PepperDash.Essentials.Devices.Common.VideoCodec.VideoCodecBase; - - - if (VideoCodec == null) - { - Debug.Console(0, Debug.ErrorLogLevel.Error, "No Video Codec set. Please check 'videoCodecKey' property in room config"); - throw new ArgumentNullException("VideoCodec cannot be null"); - } - - AudioCodec = DeviceManager.GetDeviceForKey(PropertiesConfig.AudioCodecKey) as - PepperDash.Essentials.Devices.Common.AudioCodec.AudioCodecBase; - if (AudioCodec == null) - Debug.Console(0, this, "No Audio Codec Found"); - - DefaultAudioDevice = DeviceManager.GetDeviceForKey(PropertiesConfig.DefaultAudioKey) as IBasicVolumeControls; - if (DefaultAudioDevice == null) - { - Debug.Console(0, Debug.ErrorLogLevel.Error, "No Default Audio Device set. Please check 'defaultAudioKey' property in room config"); - throw new ArgumentNullException("DefaultAudioDevice cannot be null"); - } - - Initialize(); - } - catch (Exception e) - { - Debug.Console(1, this, "Error building room: \n{0}", e); - } - } - - - private void SetupEnvironmentalControlDevices() - { - if (PropertiesConfig.Environment != null) - { - if (PropertiesConfig.Environment.Enabled) - { - EnvironmentalControlDevices.Clear(); - - foreach (var d in PropertiesConfig.Environment.DeviceKeys) - { - var envDevice = DeviceManager.GetDeviceForKey(d) as EssentialsDevice; - EnvironmentalControlDevices.Add(envDevice); - } - } - } - } - - - private void SetSourceListKey() - { - if (!string.IsNullOrEmpty(PropertiesConfig.SourceListKey)) - { - SetSourceListKey(PropertiesConfig.SourceListKey); - } - else - { - SetSourceListKey(Key); - } - - SetUpVideoCodec(); - } - - protected override void CustomSetConfig(DeviceConfig config) - { - var newPropertiesConfig = JsonConvert.DeserializeObject(config.Properties.ToString()); - - if (newPropertiesConfig != null) - PropertiesConfig = newPropertiesConfig; - - ConfigWriter.UpdateRoomConfig(config); - } - - public override bool Deactivate() - { - - // Stop listining to this event when room deactivated - VideoCodec.IsReadyChange -= VideoCodec_IsReadyChange; - - // Clear occupancy - RoomOccupancy = null; - - Debug.Console(0, this, "Room '{0}' Deactivated", Name); - - return base.Deactivate(); - } - - public override bool CustomActivate() - { - try - { - if (DefaultAudioDevice is IBasicVolumeControls) - DefaultVolumeControls = DefaultAudioDevice as IBasicVolumeControls; - else if (DefaultAudioDevice is IHasVolumeDevice) - DefaultVolumeControls = (DefaultAudioDevice as IHasVolumeDevice).VolumeDevice; - CurrentVolumeControls = DefaultVolumeControls; - - - // Combines call feedback from both codecs if available - InCallFeedback = new BoolFeedback(() => - { - bool inAudioCall = false; - bool inVideoCall = false; - - if (AudioCodec != null) - inAudioCall = AudioCodec.IsInCall; - - if (VideoCodec != null) - inVideoCall = VideoCodec.IsInCall; - - if (inAudioCall || inVideoCall) - return true; - else - return false; - }); - - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - { - // Link power, warming, cooling to display - var dispTwoWay = disp as IHasPowerControlWithFeedback; - if (dispTwoWay != null) - { - dispTwoWay.PowerIsOnFeedback.OutputChange -= PowerIsOnFeedback_OutputChange; - dispTwoWay.PowerIsOnFeedback.OutputChange += PowerIsOnFeedback_OutputChange; - } - - disp.IsWarmingUpFeedback.OutputChange -= IsWarmingUpFeedback_OutputChange; - disp.IsWarmingUpFeedback.OutputChange += IsWarmingUpFeedback_OutputChange; - - disp.IsCoolingDownFeedback.OutputChange -= IsCoolingDownFeedback_OutputChange; - disp.IsCoolingDownFeedback.OutputChange += IsCoolingDownFeedback_OutputChange; - } - - - - // Get Microphone Privacy object, if any MUST HAPPEN AFTER setting InCallFeedback - this.MicrophonePrivacy = EssentialsRoomConfigHelper.GetMicrophonePrivacy(PropertiesConfig, this); - - Debug.Console(2, this, "Microphone Privacy Config evaluated."); - - // Get emergency object, if any - this.Emergency = EssentialsRoomConfigHelper.GetEmergency(PropertiesConfig, this); - - Debug.Console(2, this, "Emergency Config evaluated."); - - if (AudioCodec != null) - { - AudioCodec.CallStatusChange -= AudioCodec_CallStatusChange; - AudioCodec.CallStatusChange += AudioCodec_CallStatusChange; - } - - VideoCodec.CallStatusChange -= VideoCodec_CallStatusChange; - VideoCodec.CallStatusChange += VideoCodec_CallStatusChange; - - VideoCodec.IsReadyChange -= VideoCodec_IsReadyChange; - VideoCodec.IsReadyChange += VideoCodec_IsReadyChange; - - VideoCodec.SharingContentIsOnFeedback.OutputChange -= SharingContentIsOnFeedback_OutputChange; - VideoCodec.SharingContentIsOnFeedback.OutputChange += SharingContentIsOnFeedback_OutputChange; - - - IsSharingFeedback = new BoolFeedback(() => VideoCodec.SharingContentIsOnFeedback.BoolValue); - - // link privacy to VC (for now?) - PrivacyModeIsOnFeedback = new BoolFeedback(() => VideoCodec.PrivacyModeIsOnFeedback.BoolValue); - - VideoCodec.PrivacyModeIsOnFeedback.OutputChange -= PrivacyModeIsOnFeedback_OutputChange; - VideoCodec.PrivacyModeIsOnFeedback.OutputChange += PrivacyModeIsOnFeedback_OutputChange; - - CallTypeFeedback = new IntFeedback(() => 0); - - SetupEnvironmentalControlDevices(); - - SetSourceListKey(); - - EnablePowerOnToLastSource = true; - - - // Add Occupancy object from config - if (PropertiesConfig.Occupancy != null) - { - Debug.Console(0, this, Debug.ErrorLogLevel.Notice, "Setting Occupancy Provider for room"); - this.SetRoomOccupancy(DeviceManager.GetDeviceForKey(PropertiesConfig.Occupancy.DeviceKey) as - IOccupancyStatusProvider, PropertiesConfig.Occupancy.TimeoutMinutes); - } - - this.LogoUrlLightBkgnd = PropertiesConfig.LogoLight.GetLogoUrlLight(); - this.LogoUrlDarkBkgnd = PropertiesConfig.LogoDark.GetLogoUrlDark(); - - this.DefaultSourceItem = PropertiesConfig.DefaultSourceItem; - this.DefaultVolume = (ushort)(PropertiesConfig.Volumes.Master.Level * 65535 / 100); - } - catch (Exception e) - { - Debug.Console(0, this, "Error Activiating Room: {0}", e); - } - - Debug.Console(0, this, "Room '{0}' Activated", Name); - return base.CustomActivate(); - } - - void PrivacyModeIsOnFeedback_OutputChange(object sender, FeedbackEventArgs e) - { - PrivacyModeIsOnFeedback.FireUpdate(); - } - - void SharingContentIsOnFeedback_OutputChange(object sender, FeedbackEventArgs e) - { - IsSharingFeedback.FireUpdate(); - } - - void AudioCodec_CallStatusChange(object sender, CodecCallStatusItemChangeEventArgs e) - { - InCallFeedback.FireUpdate(); - } - - void VideoCodec_IsReadyChange(object sender, EventArgs e) - { - SetUpVideoCodec(); - } - - void SetUpVideoCodec() - { - SetCodecExternalSources(); - SetCodecBranding(); - } - - void VideoCodec_CallStatusChange(object sender, CodecCallStatusItemChangeEventArgs e) - { - InCallFeedback.FireUpdate(); - } - - void IsCoolingDownFeedback_OutputChange(object sender, FeedbackEventArgs e) - { - IsCoolingDownFeedback.FireUpdate(); - } - - void IsWarmingUpFeedback_OutputChange(object sender, FeedbackEventArgs e) - { - IsWarmingUpFeedback.FireUpdate(); - if (!IsWarmingUpFeedback.BoolValue) - (CurrentVolumeControls as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - - } - - void PowerIsOnFeedback_OutputChange(object sender, FeedbackEventArgs e) - { - var dispTwoWay = DefaultDisplay as IHasPowerControlWithFeedback; - - if (dispTwoWay.PowerIsOnFeedback.BoolValue != OnFeedback.BoolValue) - { - if (!dispTwoWay.PowerIsOnFeedback.BoolValue) - CurrentSourceInfo = null; - OnFeedback.FireUpdate(); - } - if (dispTwoWay.PowerIsOnFeedback.BoolValue) - { - SetDefaultLevels(); - } - - } - - - - /// - /// - /// - protected override void EndShutdown() - { - VideoCodec.EndAllCalls(); - - SetDefaultLevels(); - - RunDefaultPresentRoute(); - - CrestronEnvironment.Sleep(1000); - - Debug.Console(0, this, Debug.ErrorLogLevel.Notice, "Shutting down room"); - - RunRouteAction("roomOff"); - VideoCodec.StopSharing(); - VideoCodec.StandbyActivate(); - } - - /// - /// Routes the default source item, if any. Returns true when default route exists - /// - public override bool RunDefaultPresentRoute() - { - if (DefaultSourceItem != null) - RunRouteAction(DefaultSourceItem); - - return DefaultSourceItem != null; - } - - /// - /// Sets up the room when started into call mode without presenting a source - /// - /// - public bool RunDefaultCallRoute() - { - Debug.Console(2, this, "RunDefaultCallRoute() Currently Sharing Content: {0}", VideoCodec.SharingContentIsOnFeedback.BoolValue); - - if (VideoCodec.SharingContentIsOnFeedback.BoolValue) - { - Debug.Console(2, this, "Currently sharing content. Ignoring request to run default call route."); - return false; - } - - RunRouteAction(DefaultCodecRouteString); - return true; - } - - public void RunRouteActionCodec(string routeKey, string sourceListKey) - { - _codecExternalSourceChange = true; - RunRouteAction(routeKey, sourceListKey); - } - - /// - /// - /// - /// - public void RunRouteAction(string routeKey) - { - RunRouteAction(routeKey, new Action(() => { })); - } - - /// - /// - /// - /// - /// - /// - public void RunRouteAction(string routeKey, string sourceListKey) - { - if (string.IsNullOrEmpty(sourceListKey)) - { - Debug.Console(1, this, "No sourceListKey present. RunRouteAction assumes default source list."); - RunRouteAction(routeKey, new Action(() => { })); - } - else - { - Debug.Console(1, this, "sourceListKey present but not yet implemented"); - - RunRouteAction(routeKey, new Action(() => { })); - } - } - - /// - /// - /// - /// - /// - /// - public void RunRouteAction(string routeKey, string sourceListKey, Action successCallback) - { - if (string.IsNullOrEmpty(sourceListKey)) - { - RunRouteAction(routeKey, successCallback); - } - else - { - Debug.Console(1, this, "sourceListKey present but not yet implemented"); - - RunRouteAction(routeKey, successCallback); - } - } - - /// - /// Gets a source from config list SourceListKey and dynamically build and executes the - /// route or commands - /// - /// - public void RunRouteAction(string routeKey, Action successCallback) - { - // Run this on a separate thread - new CTimer(o => - { - // try to prevent multiple simultaneous selections - SourceSelectLock.TryEnter(); - - try - { - - Debug.Console(0, this, Debug.ErrorLogLevel.Notice, "Run route action '{0}'", routeKey); - var dict = ConfigReader.ConfigObject.GetSourceListForKey(SourceListKey); - if (dict == null) - { - Debug.Console(1, this, "WARNING: Config source list '{0}' not found", SourceListKey); - return; - } - - // Try to get the list item by it's string key - if (!dict.ContainsKey(routeKey)) - { - Debug.Console(1, this, "WARNING: No item '{0}' found on config list '{1}'", - routeKey, SourceListKey); - return; - } - - // End usage timer on last source - if (!string.IsNullOrEmpty(LastSourceKey)) - { - var usageLastSource = dict[LastSourceKey].SourceDevice as IUsageTracking; - if (usageLastSource != null && usageLastSource.UsageTracker != null) - { - try - { - // There MAY have been failures in here. Protect - usageLastSource.UsageTracker.EndDeviceUsage(); - } - catch (Exception e) - { - Debug.Console(1, this, "*#* EXCEPTION in end usage tracking:\r{0}", e); - } - } - } - - // Let's run it - var item = dict[routeKey]; - if (routeKey.ToLower() != "roomoff") - { - - LastSourceKey = routeKey; - } - else - CurrentSourceInfoKey = null; - - // hand off the individual routes to this helper - foreach (var route in item.RouteList) - DoRouteItem(route); - - // Start usage timer on routed source - var usageNewSource = item.SourceDevice as IUsageTracking; - if (usageNewSource != null && usageNewSource.UsageTracker != null) // Have to make sure there is a usage tracker! - { - (item.SourceDevice as IUsageTracking).UsageTracker.StartDeviceUsage(); - } - - // See if this can be moved into common, base-class method ------------- - - - // Set volume control, using default if non provided - IBasicVolumeControls volDev = null; - // Handle special cases for volume control - if (string.IsNullOrEmpty(item.VolumeControlKey) - || item.VolumeControlKey.Equals("$defaultAudio", StringComparison.OrdinalIgnoreCase)) - volDev = DefaultVolumeControls; - else if (item.VolumeControlKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - volDev = DefaultDisplay as IBasicVolumeControls; - // Or a specific device, probably rarely used. - else - { - var dev = DeviceManager.GetDeviceForKey(item.VolumeControlKey); - if (dev is IBasicVolumeControls) - volDev = dev as IBasicVolumeControls; - else if (dev is IHasVolumeDevice) - volDev = (dev as IHasVolumeDevice).VolumeDevice; - } - - if (volDev != CurrentVolumeControls) - { - // zero the volume on the device we are leaving. - // Set the volume to default on device we are entering - if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback) - { - var vd = CurrentVolumeControls as IBasicVolumeWithFeedback; - SavedVolumeLevels[vd] = (uint)vd.VolumeLevelFeedback.IntValue; - vd.SetVolume(0); - } - - CurrentVolumeControls = volDev; - if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback) - { - var vd = CurrentVolumeControls as IBasicVolumeWithFeedback; - ushort vol = (SavedVolumeLevels.ContainsKey(vd) ? (ushort)SavedVolumeLevels[vd] : DefaultVolume); - vd.SetVolume(vol); - } - } - // ----------------------------------------------------------------------- - - - - // store the name and UI info for routes - if (item.SourceKey == "$off") - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = null; - } - else if (item.SourceKey != null) - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = item; - } - - OnFeedback.FireUpdate(); - - if (OnFeedback.BoolValue) - { - if (VideoCodec.UsageTracker.InUseTracker.InUseFeedback.BoolValue) - { - Debug.Console(1, this, "Video Codec in use, deactivating standby on codec"); - VideoCodec.StandbyDeactivate(); - } - - if (VideoCodec.StandbyIsOnFeedback.BoolValue) - { - VideoCodec.StandbyDeactivate(); - } - else - { - Debug.Console(1, this, "Video codec not in standby. No need to wake."); - } - } - else - { - Debug.Console(1, this, "Room OnFeedback state: {0}", OnFeedback.BoolValue); - } - - // report back when done - if (successCallback != null) - successCallback(); - } - catch (Exception e) - { - Debug.Console(1, this, "ERROR in routing: {0}", e); - } - - SourceSelectLock.Leave(); - }, 0); // end of CTimer - } - - /// - /// - /// - /// - void DoRouteItem(SourceRouteListItem route) - { - // if there is a $defaultAll on route, run two separate - if (route.DestinationKey.Equals("$defaultAll", StringComparison.OrdinalIgnoreCase)) - { - // Going to assume a single-path route for now - var tempVideo = new SourceRouteListItem - { - DestinationKey = "$defaultDisplay", - SourceKey = route.SourceKey, - Type = eRoutingSignalType.Video - }; - DoRoute(tempVideo); - } - else - DoRoute(route); - } - - /// - /// - /// - /// - /// - bool DoRoute(SourceRouteListItem route) - { - IRoutingSink dest = null; - - if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase)) - dest = DefaultAudioDevice as IRoutingSink; - else if (route.DestinationKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - dest = DefaultDisplay; - else - dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSink; - - - if (dest == null) - { - Debug.Console(1, this, "Cannot route, unknown destination '{0}'", route.DestinationKey); - return false; - } - - if (route.SourceKey.Equals("$off", StringComparison.OrdinalIgnoreCase)) - { - dest.ReleaseRoute(); - if (dest is IHasPowerControl) - (dest as IHasPowerControl).PowerOff(); - - } - else - { - var source = DeviceManager.GetDeviceForKey(route.SourceKey) as IRoutingOutputs; - if (source == null) - { - Debug.Console(1, this, "Cannot route unknown source '{0}' to {1}", route.SourceKey, route.DestinationKey); - return false; - } - dest.ReleaseAndMakeRoute(source, route.Type); - } - return true; - } - - public override void RoomVacatedForTimeoutPeriod(object o) - { - //Implement this - } - - protected override bool AllowVacancyTimerToStart() - { - bool allowVideo = true; - bool allowAudio = true; - - if (VideoCodec != null) - { - Debug.Console(2,this, Debug.ErrorLogLevel.Notice, "Room {0} {1} in a video call", Key, VideoCodec.IsInCall ? "is" : "is not"); - allowVideo = !VideoCodec.IsInCall; - } - - if (AudioCodec != null) - { - Debug.Console(2,this, Debug.ErrorLogLevel.Notice, "Room {0} {1} in an audio call", Key, AudioCodec.IsInCall ? "is" : "is not"); - allowAudio = !AudioCodec.IsInCall; - } - - Debug.Console(2, this, "Room {0} allowing vacancy timer to start: {1}", Key, allowVideo && allowAudio); - - return allowVideo && allowAudio; - } - - /// - /// Does what it says - /// - public override void SetDefaultLevels() - { - Debug.Console(1, this, "Restoring default levels"); - var vc = CurrentVolumeControls as IBasicVolumeWithFeedback; - if (vc != null) - vc.SetVolume(DefaultVolume); - } - /// - /// Will power the room on with the last-used source - /// - public override void PowerOnToDefaultOrLastSource() - { - if (!EnablePowerOnToLastSource || LastSourceKey == null) - return; - RunRouteAction(LastSourceKey); - } - - /// - /// Runs "roomOff" action on all rooms not set to ExcludeFromGlobalFunctions - /// - public static void AllRoomsOff() - { - var allRooms = DeviceManager.AllDevices.Where(d => - d is IEssentialsRoom && !(d as IEssentialsHuddleSpaceRoom).ExcludeFromGlobalFunctions); - foreach (var room in allRooms) - (room as IEssentialsHuddleSpaceRoom).RunRouteAction("roomOff"); - } - - - /// - /// Setup the external sources for the Cisco Touch 10 devices that support IHasExternalSourceSwitch - /// - private void SetCodecExternalSources() - { - var videoCodecWithExternalSwitching = VideoCodec as IHasExternalSourceSwitching; - - if (videoCodecWithExternalSwitching == null || !videoCodecWithExternalSwitching.ExternalSourceListEnabled) - { - return; - } - - try - { - // Get the tie line that the external switcher is connected to - string codecInputConnectorName = ConfigReader.ConfigObject.TieLines.SingleOrDefault( - x => x.DestinationKey == VideoCodec.Key && x.DestinationPort == videoCodecWithExternalSwitching.ExternalSourceInputPort).DestinationPort; - - videoCodecWithExternalSwitching.ClearExternalSources(); - videoCodecWithExternalSwitching.RunRouteAction = RunRouteActionCodec; - var srcList = ConfigReader.ConfigObject.SourceLists.SingleOrDefault(x => x.Key == SourceListKey).Value.OrderBy(kv => kv.Value.Order); ; - - foreach (var kvp in srcList) - { - var srcConfig = kvp.Value; - - if (kvp.Key != DefaultCodecRouteString && kvp.Key != "roomOff") - { - videoCodecWithExternalSwitching.AddExternalSource(codecInputConnectorName, kvp.Key, srcConfig.PreferredName, PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.eExternalSourceType.desktop); - videoCodecWithExternalSwitching.SetExternalSourceState(kvp.Key, PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.eExternalSourceMode.Ready); - } - } - Debug.Console(1, this, "Successfully set up codec external sources for room: {0}", Name); - - } - catch (Exception e) - { - Debug.Console(2, this, "Error setting codec external sources: {0}", e); - } - } - - private void SetCodecBranding() - { - var vcWithBranding = VideoCodec as IHasBranding; - - if (vcWithBranding == null) return; - - Debug.Console(1, this, "Setting Codec Branding"); - vcWithBranding.InitializeBranding(Key); - } - - #region IPrivacy Members - - - public void PrivacyModeOff() - { - VideoCodec.PrivacyModeOff(); - } - - public void PrivacyModeOn() - { - VideoCodec.PrivacyModeOn(); - } - - public void PrivacyModeToggle() - { - VideoCodec.PrivacyModeToggle(); - } - - #endregion - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs.orig b/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs.orig deleted file mode 100644 index f1b4b983..00000000 --- a/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs.orig +++ /dev/null @@ -1,967 +0,0 @@ -<<<<<<< HEAD -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Room.Config; -using PepperDash.Essentials.Devices.Common.Codec; -using PepperDash.Essentials.Devices.Common.VideoCodec; - -namespace PepperDash.Essentials -{ - public class EssentialsHuddleVtc1Room : EssentialsRoomBase, IHasCurrentSourceInfoChange, IPrivacy - { - public event EventHandler CurrentVolumeDeviceChange; - public event SourceInfoChangeHandler CurrentSingleSourceChange; - - - //************************ - // Call-related stuff - - public BoolFeedback InCallFeedback { get; private set; } - - /// - /// Make this more specific - /// - public List ActiveCalls { get; private set; } - - /// - /// States: 0 for on hook, 1 for video, 2 for audio, 3 for telekenesis - /// - public IntFeedback CallTypeFeedback { get; private set; } - - /// - /// - /// - public BoolFeedback PrivacyModeIsOnFeedback { get; private set; } - - /// - /// When something in the room is sharing with the far end or through other means - /// - public BoolFeedback IsSharingFeedback { get; private set; } - - //************************ - - - protected override Func OnFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - var val = CurrentSourceInfo != null - && CurrentSourceInfo.Type == eSourceListItemType.Route - && disp != null - && disp.PowerIsOnFeedback.BoolValue; - return val; - }; - } - } - /// - /// - /// - protected override Func IsWarmingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsWarmingUpFeedback.BoolValue; - else - return false; - }; - } - } - /// - /// - /// - protected override Func IsCoolingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsCoolingDownFeedback.BoolValue; - else - return false; - }; - } - } - - public EssentialsHuddleVtc1PropertiesConfig Config { get; private set; } - - public IRoutingSinkWithSwitching DefaultDisplay { get; private set; } - public IBasicVolumeControls DefaultAudioDevice { get; private set; } - public IBasicVolumeControls DefaultVolumeControls { get; private set; } - - public VideoCodecBase VideoCodec { get; private set; } - - public bool ExcludeFromGlobalFunctions { get; set; } - - /// - /// The config name of the source list - /// - public string SourceListKey { get; set; } - - public string DefaultSourceItem { get; set; } - - public ushort DefaultVolume { get; set; } - - /// - /// If room is off, enables power on to last source. Default true - /// - public bool EnablePowerOnToLastSource { get; set; } - string LastSourceKey; - - /// - /// - /// - public IBasicVolumeControls CurrentVolumeControls - { - get { return _CurrentAudioDevice; } - set - { - if (value == _CurrentAudioDevice) return; - - var oldDev = _CurrentAudioDevice; - // derigister this room from the device, if it can - if (oldDev is IInUseTracking) - (oldDev as IInUseTracking).InUseTracker.RemoveUser(this, "audio"); - var handler = CurrentVolumeDeviceChange; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.WillChange)); - _CurrentAudioDevice = value; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.DidChange)); - // register this room with new device, if it can - if (_CurrentAudioDevice is IInUseTracking) - (_CurrentAudioDevice as IInUseTracking).InUseTracker.AddUser(this, "audio"); - } - } - IBasicVolumeControls _CurrentAudioDevice; - - /// - /// The SourceListItem last run - containing names and icons - /// - public SourceListItem CurrentSourceInfo - { - get { return _CurrentSourceInfo; } - private set - { - if (value == _CurrentSourceInfo) return; - - var handler = CurrentSingleSourceChange; - // remove from in-use tracker, if so equipped - if(_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control"); - - if (handler != null) - handler(this, _CurrentSourceInfo, ChangeType.WillChange); - - _CurrentSourceInfo = value; - - // add to in-use tracking - if (_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.AddUser(this, "control"); - if (handler != null) - handler(this, _CurrentSourceInfo, ChangeType.DidChange); - } - } - SourceListItem _CurrentSourceInfo; - - public string CurrentSourceInfoKey { get; private set; } - - /// - /// "codecOsd" - /// - public string DefaultCodecRouteString { get { return "codecOsd"; } } - - /// - /// Temporary implementation. Returns the schedule-ready object or null if none. Fow now, - /// always returns the VideoCodec if it is capable - /// - public IHasScheduleAwareness ScheduleSource { get { return VideoCodec as IHasScheduleAwareness; } } - - /// - /// - /// - /// - /// - public EssentialsHuddleVtc1Room(string key, string name, IRoutingSinkWithSwitching defaultDisplay, - IBasicVolumeControls defaultAudio, VideoCodecBase codec, EssentialsHuddleVtc1PropertiesConfig config) - : base(key, name) - { - if (codec == null) - throw new ArgumentNullException("codec cannot be null"); - Config = config; - DefaultDisplay = defaultDisplay; - VideoCodec = codec; - DefaultAudioDevice = defaultAudio; - - if (defaultAudio is IBasicVolumeControls) - DefaultVolumeControls = defaultAudio as IBasicVolumeControls; - else if (defaultAudio is IHasVolumeDevice) - DefaultVolumeControls = (defaultAudio as IHasVolumeDevice).VolumeDevice; - CurrentVolumeControls = DefaultVolumeControls; - - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - { - // Link power, warming, cooling to display - disp.PowerIsOnFeedback.OutputChange += (o, a) => - { - if (disp.PowerIsOnFeedback.BoolValue != OnFeedback.BoolValue) - { - if (!disp.PowerIsOnFeedback.BoolValue) - CurrentSourceInfo = null; - OnFeedback.FireUpdate(); - } - if (disp.PowerIsOnFeedback.BoolValue) - { - SetDefaultLevels(); - } - }; - - disp.IsWarmingUpFeedback.OutputChange += (o, a) => - { - IsWarmingUpFeedback.FireUpdate(); - if (!IsWarmingUpFeedback.BoolValue) - (DefaultDisplay as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - }; - disp.IsCoolingDownFeedback.OutputChange += (o, a) => - { - IsCoolingDownFeedback.FireUpdate(); - if (IsCoolingDownFeedback.BoolValue) - (DefaultDisplay as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - }; - } - - InCallFeedback = new BoolFeedback(() => VideoCodec.IsInCall); - IsSharingFeedback = new BoolFeedback(() => VideoCodec.SharingSourceFeedback.StringValue != null); - - // link privacy to VC (for now?) - PrivacyModeIsOnFeedback = new BoolFeedback(() => VideoCodec.PrivacyModeIsOnFeedback.BoolValue); - VideoCodec.PrivacyModeIsOnFeedback.OutputChange += (o, a) => this.PrivacyModeIsOnFeedback.FireUpdate(); - - CallTypeFeedback = new IntFeedback(() => 0); - - SourceListKey = "default"; - EnablePowerOnToLastSource = true; - } - - - /// - /// - /// - public override void Shutdown() - { - RunRouteAction("roomOff"); - VideoCodec.EndAllCalls(); - } - - /// - /// Routes the default source item, if any. Returns true when default route exists - /// - public bool RunDefaultPresentRoute() - { - if (DefaultSourceItem != null) - RunRouteAction(DefaultSourceItem); - return DefaultSourceItem != null; - } - - /// - /// Sets up the room when started into call mode without presenting a source - /// - /// - public bool RunDefaultCallRoute() - { - RunRouteAction(DefaultCodecRouteString); - return true; - } - - /// - /// - /// - /// - public void RunRouteAction(string routeKey) - { - RunRouteAction(routeKey, null); - } - - /// - /// Gets a source from config list SourceListKey and dynamically build and executes the - /// route or commands - /// - /// - public void RunRouteAction(string routeKey, Action successCallback) - { - // Run this on a separate thread - new CTimer(o => - { - try - { - - Debug.Console(1, this, "Run route action '{0}'", routeKey); - var dict = ConfigReader.ConfigObject.GetSourceListForKey(SourceListKey); - if (dict == null) - { - Debug.Console(1, this, "WARNING: Config source list '{0}' not found", SourceListKey); - return; - } - - // Try to get the list item by it's string key - if (!dict.ContainsKey(routeKey)) - { - Debug.Console(1, this, "WARNING: No item '{0}' found on config list '{1}'", - routeKey, SourceListKey); - return; - } - - // End usage timer on last source - if (!string.IsNullOrEmpty(LastSourceKey)) - { - var usageLastSource = dict[LastSourceKey].SourceDevice as IUsageTracking; - if (usageLastSource != null && usageLastSource.UsageTracker != null) - { - try - { - // There MAY have been failures in here. Protect - usageLastSource.UsageTracker.EndDeviceUsage(); - } - catch (Exception e) - { - } - } - } - - // Let's run it - var item = dict[routeKey]; - if (routeKey.ToLower() != "roomoff") - { - - LastSourceKey = routeKey; - } - else - CurrentSourceInfoKey = null; - - // hand off the individual routes to this helper - foreach (var route in item.RouteList) - DoRouteItem(route); - - // Start usage timer on routed source - var usageNewSource = item.SourceDevice as IUsageTracking; - if (usageNewSource != null && usageNewSource.UsageTracker != null) // Have to make sure there is a usage tracker! - { - (item.SourceDevice as IUsageTracking).UsageTracker.StartDeviceUsage(); - } - - // store the name and UI info for routes - if (item.SourceKey == "$off") - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = null; - } - else if (item.SourceKey != null) - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = item; - } - - OnFeedback.FireUpdate(); - - // report back when done - if (successCallback != null) - successCallback(); - } - catch (Exception e) - { - Debug.Console(1, this, "ERROR in routing: {0}", e); - } - - }, 0); // end of CTimer - } - - /// - /// - /// - /// - void DoRouteItem(SourceRouteListItem route) - { - // if there is a $defaultAll on route, run two separate - if (route.DestinationKey.Equals("$defaultAll", StringComparison.OrdinalIgnoreCase)) - { - // Going to assume a single-path route for now - var tempVideo = new SourceRouteListItem - { - DestinationKey = "$defaultDisplay", - SourceKey = route.SourceKey, - Type = eRoutingSignalType.Video - }; - DoRoute(tempVideo); - } - else - DoRoute(route); - } - - /// - /// - /// - /// - /// - bool DoRoute(SourceRouteListItem route) - { - IRoutingSinkNoSwitching dest = null; - - if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase)) - dest = DefaultAudioDevice as IRoutingSinkNoSwitching; - else if (route.DestinationKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - dest = DefaultDisplay; - else - dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSinkNoSwitching; - - if (dest == null) - { - Debug.Console(1, this, "Cannot route, unknown destination '{0}'", route.DestinationKey); - return false; - } - - if (route.SourceKey.Equals("$off", StringComparison.OrdinalIgnoreCase)) - { - dest.ReleaseRoute(); - if (dest is IPower) - (dest as IPower).PowerOff(); - } - else - { - var source = DeviceManager.GetDeviceForKey(route.SourceKey) as IRoutingOutputs; - if (source == null) - { - Debug.Console(1, this, "Cannot route unknown source '{0}' to {1}", route.SourceKey, route.DestinationKey); - return false; - } - dest.ReleaseAndMakeRoute(source, route.Type); - } - return true; -======= -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Room.Config; -using PepperDash.Essentials.Devices.Common.Codec; -using PepperDash.Essentials.Devices.Common.VideoCodec; - -namespace PepperDash.Essentials -{ - public class EssentialsHuddleVtc1Room : EssentialsRoomBase, IHasCurrentSourceInfoChange, IPrivacy - { - public event EventHandler CurrentVolumeDeviceChange; - public event SourceInfoChangeHandler CurrentSingleSourceChange; - - - //************************ - // Call-related stuff - - public BoolFeedback InCallFeedback { get; private set; } - - /// - /// Make this more specific - /// - public List ActiveCalls { get; private set; } - - /// - /// States: 0 for on hook, 1 for video, 2 for audio, 3 for telekenesis - /// - public IntFeedback CallTypeFeedback { get; private set; } - - /// - /// - /// - public BoolFeedback PrivacyModeIsOnFeedback { get; private set; } - - /// - /// When something in the room is sharing with the far end or through other means - /// - public BoolFeedback IsSharingFeedback { get; private set; } - - //************************ - - - protected override Func OnFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - var val = CurrentSourceInfo != null - && CurrentSourceInfo.Type == eSourceListItemType.Route - && disp != null - && disp.PowerIsOnFeedback.BoolValue; - return val; - }; - } - } - /// - /// - /// - protected override Func IsWarmingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsWarmingUpFeedback.BoolValue; - else - return false; - }; - } - } - /// - /// - /// - protected override Func IsCoolingFeedbackFunc - { - get - { - return () => - { - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - return disp.IsCoolingDownFeedback.BoolValue; - else - return false; - }; - } - } - - public EssentialsHuddleVtc1PropertiesConfig Config { get; private set; } - - public IRoutingSinkWithSwitching DefaultDisplay { get; private set; } - public IBasicVolumeControls DefaultAudioDevice { get; private set; } - public IBasicVolumeControls DefaultVolumeControls { get; private set; } - - public VideoCodecBase VideoCodec { get; private set; } - - public bool ExcludeFromGlobalFunctions { get; set; } - - /// - /// The config name of the source list - /// - public string SourceListKey { get; set; } - - public string DefaultSourceItem { get; set; } - - public ushort DefaultVolume { get; set; } - - /// - /// If room is off, enables power on to last source. Default true - /// - public bool EnablePowerOnToLastSource { get; set; } - string LastSourceKey; - - /// - /// - /// - public IBasicVolumeControls CurrentVolumeControls - { - get { return _CurrentAudioDevice; } - set - { - if (value == _CurrentAudioDevice) return; - - var oldDev = _CurrentAudioDevice; - // derigister this room from the device, if it can - if (oldDev is IInUseTracking) - (oldDev as IInUseTracking).InUseTracker.RemoveUser(this, "audio"); - var handler = CurrentVolumeDeviceChange; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.WillChange)); - _CurrentAudioDevice = value; - if (handler != null) - CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.DidChange)); - // register this room with new device, if it can - if (_CurrentAudioDevice is IInUseTracking) - (_CurrentAudioDevice as IInUseTracking).InUseTracker.AddUser(this, "audio"); - } - } - IBasicVolumeControls _CurrentAudioDevice; - - /// - /// The SourceListItem last run - containing names and icons - /// - public SourceListItem CurrentSourceInfo - { - get { return _CurrentSourceInfo; } - private set - { - if (value == _CurrentSourceInfo) return; - - var handler = CurrentSingleSourceChange; - // remove from in-use tracker, if so equipped - if(_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control"); - - if (handler != null) - handler(this, _CurrentSourceInfo, ChangeType.WillChange); - - _CurrentSourceInfo = value; - - // add to in-use tracking - if (_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking) - (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.AddUser(this, "control"); - if (handler != null) - handler(this, _CurrentSourceInfo, ChangeType.DidChange); - } - } - SourceListItem _CurrentSourceInfo; - - public string CurrentSourceInfoKey { get; private set; } - - /// - /// "codecOsd" - /// - public string DefaultCodecRouteString { get { return "codecOsd"; } } - - /// - /// Temporary implementation. Returns the schedule-ready object or null if none. Fow now, - /// always returns the VideoCodec if it is capable - /// - public IHasScheduleAwareness ScheduleSource { get { return VideoCodec as IHasScheduleAwareness; } } - - /// - /// - /// - /// - /// - public EssentialsHuddleVtc1Room(string key, string name, IRoutingSinkWithSwitching defaultDisplay, - IBasicVolumeControls defaultAudio, VideoCodecBase codec, EssentialsHuddleVtc1PropertiesConfig config) - : base(key, name) - { - if (codec == null) - throw new ArgumentNullException("codec cannot be null"); - Config = config; - DefaultDisplay = defaultDisplay; - VideoCodec = codec; - DefaultAudioDevice = defaultAudio; - - if (defaultAudio is IBasicVolumeControls) - DefaultVolumeControls = defaultAudio as IBasicVolumeControls; - else if (defaultAudio is IHasVolumeDevice) - DefaultVolumeControls = (defaultAudio as IHasVolumeDevice).VolumeDevice; - CurrentVolumeControls = DefaultVolumeControls; - - var disp = DefaultDisplay as DisplayBase; - if (disp != null) - { - // Link power, warming, cooling to display - disp.PowerIsOnFeedback.OutputChange += (o, a) => - { - if (disp.PowerIsOnFeedback.BoolValue != OnFeedback.BoolValue) - { - if (!disp.PowerIsOnFeedback.BoolValue) - CurrentSourceInfo = null; - OnFeedback.FireUpdate(); - } - if (disp.PowerIsOnFeedback.BoolValue) - { - SetDefaultLevels(); - } - }; - - disp.IsWarmingUpFeedback.OutputChange += (o, a) => - { - IsWarmingUpFeedback.FireUpdate(); - if (!IsWarmingUpFeedback.BoolValue) - (DefaultDisplay as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - }; - disp.IsCoolingDownFeedback.OutputChange += (o, a) => - { - IsCoolingDownFeedback.FireUpdate(); - if (IsCoolingDownFeedback.BoolValue) - (DefaultDisplay as IBasicVolumeWithFeedback).SetVolume(DefaultVolume); - }; - } - - InCallFeedback = new BoolFeedback(() => VideoCodec.IsInCall); - IsSharingFeedback = new BoolFeedback(() => VideoCodec.SharingSourceFeedback.StringValue != null); - - // link privacy to VC (for now?) - PrivacyModeIsOnFeedback = new BoolFeedback(() => VideoCodec.PrivacyModeIsOnFeedback.BoolValue); - VideoCodec.PrivacyModeIsOnFeedback.OutputChange += (o, a) => this.PrivacyModeIsOnFeedback.FireUpdate(); - - CallTypeFeedback = new IntFeedback(() => 0); - - SourceListKey = "default"; - EnablePowerOnToLastSource = true; - } - - - /// - /// - /// - protected override void EndShutdown() - { - RunRouteAction("roomOff"); - VideoCodec.EndAllCalls(); - } - - /// - /// Routes the default source item, if any. Returns true when default route exists - /// - public bool RunDefaultPresentRoute() - { - if (DefaultSourceItem != null) - RunRouteAction(DefaultSourceItem); - return DefaultSourceItem != null; - } - - /// - /// Sets up the room when started into call mode without presenting a source - /// - /// - public bool RunDefaultCallRoute() - { - RunRouteAction(DefaultCodecRouteString); - return true; - } - - /// - /// - /// - /// - public void RunRouteAction(string routeKey) - { - RunRouteAction(routeKey, null); - } - - /// - /// Gets a source from config list SourceListKey and dynamically build and executes the - /// route or commands - /// - /// - public void RunRouteAction(string routeKey, Action successCallback) - { - // Run this on a separate thread - new CTimer(o => - { - try - { - - Debug.Console(1, this, "Run route action '{0}'", routeKey); - var dict = ConfigReader.ConfigObject.GetSourceListForKey(SourceListKey); - if (dict == null) - { - Debug.Console(1, this, "WARNING: Config source list '{0}' not found", SourceListKey); - return; - } - - // Try to get the list item by it's string key - if (!dict.ContainsKey(routeKey)) - { - Debug.Console(1, this, "WARNING: No item '{0}' found on config list '{1}'", - routeKey, SourceListKey); - return; - } - - // End usage timer on last source - if (!string.IsNullOrEmpty(LastSourceKey)) - { - var usageLastSource = dict[LastSourceKey].SourceDevice as IUsageTracking; - if (usageLastSource != null && usageLastSource.UsageTracker != null) - { - try - { - // There MAY have been failures in here. Protect - usageLastSource.UsageTracker.EndDeviceUsage(); - } - catch (Exception e) - { - Debug.Console(1, this, "*#* EXCEPTION in end usage tracking:\r{0}", e); - } - } - } - - // Let's run it - var item = dict[routeKey]; - if (routeKey.ToLower() != "roomoff") - { - - LastSourceKey = routeKey; - } - else - CurrentSourceInfoKey = null; - - // hand off the individual routes to this helper - foreach (var route in item.RouteList) - DoRouteItem(route); - - // Start usage timer on routed source - var usageNewSource = item.SourceDevice as IUsageTracking; - if (usageNewSource != null && usageNewSource.UsageTracker != null) // Have to make sure there is a usage tracker! - { - (item.SourceDevice as IUsageTracking).UsageTracker.StartDeviceUsage(); - } - - // store the name and UI info for routes - if (item.SourceKey == "$off") - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = null; - } - else if (item.SourceKey != null) - { - CurrentSourceInfoKey = routeKey; - CurrentSourceInfo = item; - } - - OnFeedback.FireUpdate(); - - // report back when done - if (successCallback != null) - successCallback(); - } - catch (Exception e) - { - Debug.Console(1, this, "ERROR in routing: {0}", e); - } - - }, 0); // end of CTimer - } - - /// - /// - /// - /// - void DoRouteItem(SourceRouteListItem route) - { - // if there is a $defaultAll on route, run two separate - if (route.DestinationKey.Equals("$defaultAll", StringComparison.OrdinalIgnoreCase)) - { - // Going to assume a single-path route for now - var tempVideo = new SourceRouteListItem - { - DestinationKey = "$defaultDisplay", - SourceKey = route.SourceKey, - Type = eRoutingSignalType.Video - }; - DoRoute(tempVideo); - } - else - DoRoute(route); - } - - /// - /// - /// - /// - /// - bool DoRoute(SourceRouteListItem route) - { - IRoutingSinkNoSwitching dest = null; - - if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase)) - dest = DefaultAudioDevice as IRoutingSinkNoSwitching; - else if (route.DestinationKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase)) - dest = DefaultDisplay; - else - dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSinkNoSwitching; - - if (dest == null) - { - Debug.Console(1, this, "Cannot route, unknown destination '{0}'", route.DestinationKey); - return false; - } - - if (route.SourceKey.Equals("$off", StringComparison.OrdinalIgnoreCase)) - { - dest.ReleaseRoute(); - if (dest is IPower) - (dest as IPower).PowerOff(); - } - else - { - var source = DeviceManager.GetDeviceForKey(route.SourceKey) as IRoutingOutputs; - if (source == null) - { - Debug.Console(1, this, "Cannot route unknown source '{0}' to {1}", route.SourceKey, route.DestinationKey); - return false; - } - dest.ReleaseAndMakeRoute(source, route.Type); - } - return true; ->>>>>>> origin/feature/ecs-342 - } - - public override void RoomVacatedForTimeoutPeriod(object o) - { - //Implement this - } - - /// - /// Does what it says - /// - public override void SetDefaultLevels() - { - Debug.Console(1, this, "Restoring default levels"); - var vc = CurrentVolumeControls as IBasicVolumeWithFeedback; - if (vc != null) - vc.SetVolume(DefaultVolume); - } - /// - /// Will power the room on with the last-used source - /// - public void PowerOnToDefaultOrLastSource() - { - if (!EnablePowerOnToLastSource || LastSourceKey == null) - return; - RunRouteAction(LastSourceKey); - } - - /// - /// Runs "roomOff" action on all rooms not set to ExcludeFromGlobalFunctions - /// - public static void AllRoomsOff() - { - var allRooms = DeviceManager.AllDevices.Where(d => - d is EssentialsHuddleSpaceRoom && !(d as EssentialsHuddleSpaceRoom).ExcludeFromGlobalFunctions); - foreach (var room in allRooms) - (room as EssentialsHuddleSpaceRoom).RunRouteAction("roomOff"); - } - - #region IPrivacy Members - - - public void PrivacyModeOff() - { - VideoCodec.PrivacyModeOff(); - } - - public void PrivacyModeOn() - { - VideoCodec.PrivacyModeOn(); - } - - public void PrivacyModeToggle() - { - VideoCodec.PrivacyModeToggle(); - } - - #endregion - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Room/Types/EssentialsNDisplayRoomBase.cs b/PepperDashEssentials/Room/Types/EssentialsNDisplayRoomBase.cs deleted file mode 100644 index 85f52c9f..00000000 --- a/PepperDashEssentials/Room/Types/EssentialsNDisplayRoomBase.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using Newtonsoft.Json; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Devices; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Room.Config; - -namespace PepperDash.Essentials -{ - /// - /// Base class for rooms with more than a single display - /// - public abstract class EssentialsNDisplayRoomBase : EssentialsRoomBase, IHasMultipleDisplays - { - //public event SourceInfoChangeHandler CurrentSingleSourceChange; - - public Dictionary Displays { get; protected set;} - - public EssentialsNDisplayRoomBase(DeviceConfig config) - : base (config) - { - Displays = new Dictionary(); - - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Room/Types/EssentialsTechRoom.cs b/PepperDashEssentials/Room/Types/EssentialsTechRoom.cs deleted file mode 100644 index 65cc52fa..00000000 --- a/PepperDashEssentials/Room/Types/EssentialsTechRoom.cs +++ /dev/null @@ -1,517 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Crestron.SimplSharp; -using Crestron.SimplSharp.Scheduler; -using Crestron.SimplSharpPro.DeviceSupport; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Bridges; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.DeviceTypeInterfaces; -using PepperDash.Essentials.Core.Presets; -using PepperDash.Essentials.Devices.Common; -using PepperDash.Essentials.Room.Config; - -namespace PepperDash.Essentials -{ - public class EssentialsTechRoom : EssentialsRoomBase, ITvPresetsProvider, IBridgeAdvanced, IRunDirectRouteAction - { - public EssentialsTechRoomConfig PropertiesConfig { get; private set; } - private readonly Dictionary _displays; - - private readonly DevicePresetsModel _tunerPresets; - private readonly Dictionary _tuners; - - private Dictionary _currentPresets; - private ScheduledEventGroup _roomScheduledEventGroup; - - /// - /// - /// - protected override Func IsWarmingFeedbackFunc - { - get - { - return () => - { - return _displays.All(kv => kv.Value.IsWarmingUpFeedback.BoolValue); - }; - } - } - /// - /// - /// - protected override Func IsCoolingFeedbackFunc - { - get - { - return () => - { - return _displays.All(kv => kv.Value.IsCoolingDownFeedback.BoolValue); - }; - } - } - - public EssentialsTechRoom(DeviceConfig config) : base(config) - { - PropertiesConfig = config.Properties.ToObject(); - - _tunerPresets = new DevicePresetsModel(String.Format("{0}-presets", config.Key), PropertiesConfig.PresetsFileName); - - _tunerPresets.SetFileName(PropertiesConfig.PresetsFileName); - - _tunerPresets.PresetRecalled += TunerPresetsOnPresetRecalled; - - _tuners = GetDevices(PropertiesConfig.Tuners); - _displays = GetDevices(PropertiesConfig.Displays); - - RoomPowerIsOnFeedback = new BoolFeedback(() => RoomPowerIsOn); - - SetUpTunerPresetsFeedback(); - - SubscribeToDisplayFeedbacks(); - - CreateOrUpdateScheduledEvents(); - } - - public Dictionary CurrentPresetsFeedbacks { get; private set; } - - public Dictionary Tuners - { - get { return _tuners; } - } - - public Dictionary Displays - { - get { return _displays; } - } - - public BoolFeedback RoomPowerIsOnFeedback { get; private set; } - - public bool RoomPowerIsOn - { - get { return _displays.All(kv => kv.Value.PowerIsOnFeedback.BoolValue); } - } - - #region ITvPresetsProvider Members - - public DevicePresetsModel TvPresets - { - get { return _tunerPresets; } - } - - #endregion - - private void TunerPresetsOnPresetRecalled(ISetTopBoxNumericKeypad device, string channel) - { - //Debug.Console(2, this, "TunerPresetsOnPresetRecalled"); - - if (!_currentPresets.ContainsKey(device.Key)) - { - return; - } - - //Debug.Console(2, this, "Tuner Key: {0} Channel: {1}", device.Key, channel); - - _currentPresets[device.Key] = channel; - - if (CurrentPresetsFeedbacks.ContainsKey(device.Key)) - { - CurrentPresetsFeedbacks[device.Key].FireUpdate(); - } - } - - private void SetUpTunerPresetsFeedback() - { - _currentPresets = new Dictionary(); - CurrentPresetsFeedbacks = new Dictionary(); - - foreach (var setTopBox in _tuners) - { - var tuner = setTopBox.Value; - _currentPresets.Add(tuner.Key, String.Empty); - CurrentPresetsFeedbacks.Add(tuner.Key, new StringFeedback(() => _currentPresets[tuner.Key])); - } - } - - private void SubscribeToDisplayFeedbacks() - { - foreach (var display in _displays) - { - display.Value.PowerIsOnFeedback.OutputChange += - (sender, args) => - { - RoomPowerIsOnFeedback.InvokeFireUpdate(); - IsWarmingUpFeedback.InvokeFireUpdate(); - IsCoolingDownFeedback.InvokeFireUpdate(); - }; - } - } - - private void CreateOrUpdateScheduledEvents() - { - var eventsConfig = PropertiesConfig.ScheduledEvents; - - GetOrCreateScheduleGroup(); - - foreach (var eventConfig in eventsConfig) - { - CreateOrUpdateSingleEvent(eventConfig); - } - - _roomScheduledEventGroup.UserGroupCallBack += HandleScheduledEvent; - } - - private void GetOrCreateScheduleGroup() - { - if (_roomScheduledEventGroup == null) - { - _roomScheduledEventGroup = Scheduler.GetEventGroup(Key) ?? new ScheduledEventGroup(Key); - - Scheduler.AddEventGroup(_roomScheduledEventGroup); - } - - _roomScheduledEventGroup.RetrieveAllEvents(); - } - - private void CreateOrUpdateSingleEvent(ScheduledEventConfig scheduledEvent) - { - if (!_roomScheduledEventGroup.ScheduledEvents.ContainsKey(scheduledEvent.Key)) - { - SchedulerUtilities.CreateEventFromConfig(scheduledEvent, _roomScheduledEventGroup, HandleScheduledEvent); - return; - } - - var roomEvent = _roomScheduledEventGroup.ScheduledEvents[scheduledEvent.Key]; - - //if (SchedulerUtilities.CheckEventTimeForMatch(roomEvent, DateTime.Parse(scheduledEvent.Time)) && - // SchedulerUtilities.CheckEventRecurrenceForMatch(roomEvent, scheduledEvent.Days)) - //{ - // Debug.Console(1, this, "Existing event matches new event properties. Nothing to update"); - // return; - //} - - Debug.Console(1, this, - "Existing event does not match new config properties. Deleting existing event '{0}' and creating new event from configuration", - roomEvent.Name); - - _roomScheduledEventGroup.DeleteEvent(roomEvent); - - SchedulerUtilities.CreateEventFromConfig(scheduledEvent, _roomScheduledEventGroup, HandleScheduledEvent); - } - - public void AddOrUpdateScheduledEvent(ScheduledEventConfig scheduledEvent) - { - //update config based on key of scheduleEvent - GetOrCreateScheduleGroup(); - var existingEventIndex = PropertiesConfig.ScheduledEvents.FindIndex((e) => e.Key == scheduledEvent.Key); - - if (existingEventIndex < 0) - { - PropertiesConfig.ScheduledEvents.Add(scheduledEvent); - } - else - { - PropertiesConfig.ScheduledEvents[existingEventIndex] = scheduledEvent; - } - - //create or update event based on config - CreateOrUpdateSingleEvent(scheduledEvent); - //save config - Config.Properties = JToken.FromObject(PropertiesConfig); - - CustomSetConfig(Config); - //Fire Event - OnScheduledEventUpdate(); - } - - public List GetScheduledEvents() - { - return PropertiesConfig.ScheduledEvents ?? new List(); - } - - private void OnScheduledEventUpdate() - { - var handler = ScheduledEventsChanged; - - if (handler == null) - { - return; - } - - handler(this, new ScheduledEventEventArgs {ScheduledEvents = PropertiesConfig.ScheduledEvents}); - } - - public event EventHandler ScheduledEventsChanged; - - private void HandleScheduledEvent(ScheduledEvent schevent, ScheduledEventCommon.eCallbackReason type) - { - var eventConfig = PropertiesConfig.ScheduledEvents.FirstOrDefault(e => e.Key == schevent.Name); - - if (eventConfig == null) - { - Debug.Console(1, this, "Event with name {0} not found", schevent.Name); - return; - } - - Debug.Console(1, this, "Running actions for event {0}", schevent.Name); - - if (eventConfig.Acknowledgeable) - { - schevent.Acknowledge(); - } - - CrestronInvoke.BeginInvoke((o) => - { - Debug.Console(2, this, "There are {0} actions to execute for this event.", eventConfig.Actions.Count); - - foreach (var a in eventConfig.Actions) - { - Debug.Console(2, this, -@"Attempting to run action: -Key: {0} -MethodName: {1} -Params: {2}" - , a.DeviceKey, a.MethodName, a.Params); - DeviceJsonApi.DoDeviceAction(a); - } - }); - } - - - public void RoomPowerOn() - { - Debug.Console(2, this, "Room Powering On"); - - var dummySource = DeviceManager.GetDeviceForKey(PropertiesConfig.DummySourceKey) as IRoutingOutputs; - - if (dummySource == null) - { - Debug.Console(1, this, "Unable to get source with key: {0}", PropertiesConfig.DummySourceKey); - return; - } - - foreach (var display in _displays) - { - RunDirectRoute(dummySource, display.Value); - } - } - - public void RoomPowerOff() - { - Debug.Console(2, this, "Room Powering Off"); - - foreach (var display in _displays) - { - display.Value.PowerOff(); - } - } - - private Dictionary GetDevices(ICollection config) where T : IKeyed - { - try - { - var returnValue = DeviceManager.AllDevices.OfType() - .Where(d => config.Contains(d.Key)) - .ToDictionary(d => d.Key, d => d); - - return returnValue; - } - catch - { - Debug.Console(0, this, Debug.ErrorLogLevel.Error, - "Error getting devices. Check Essentials Configuration"); - return null; - } - } - - #region Overrides of EssentialsRoomBase - - protected override Func OnFeedbackFunc - { - get { return () => RoomPowerIsOn; } - } - - protected override void EndShutdown() - { - } - - public override void SetDefaultLevels() - { - } - - public override void PowerOnToDefaultOrLastSource() - { - } - - public override bool RunDefaultPresentRoute() - { - return false; - } - - public override void RoomVacatedForTimeoutPeriod(object o) - { - } - - #endregion - - #region Implementation of IBridgeAdvanced - - public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) - { - - var joinMap = new EssentialsTechRoomJoinMap(joinStart); - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!String.IsNullOrEmpty(joinMapSerialized)) - { - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - } - - if (bridge != null) - { - bridge.AddJoinMap(Key, joinMap); - } - - if (PropertiesConfig.IsPrimary) - { - Debug.Console(1, this, "Linking Primary system Tuner Preset Mirroring"); - if (PropertiesConfig.MirroredTuners != null && PropertiesConfig.MirroredTuners.Count > 0) - { - foreach (var tuner in PropertiesConfig.MirroredTuners) - { - var f = CurrentPresetsFeedbacks[tuner.Value]; - - if (f == null) - { - Debug.Console(1, this, "Unable to find feedback with key: {0}", tuner.Value); - continue; - } - - var join = joinMap.CurrentPreset.JoinNumber + tuner.Key; - f.LinkInputSig(trilist.StringInput[(uint)(join)]); - Debug.Console(1, this, "Linked Current Preset feedback for tuner: {0} to serial join: {1}", tuner.Value, join); - } - } - - //i = 0; - //foreach (var feedback in CurrentPresetsFeedbacks) - //{ - // feedback.Value.LinkInputSig(trilist.StringInput[(uint) (joinMap.CurrentPreset.JoinNumber + i)]); - // i++; - //} - - trilist.OnlineStatusChange += (device, args) => - { - if (!args.DeviceOnLine) - { - return; - } - - foreach (var feedback in CurrentPresetsFeedbacks) - { - feedback.Value.FireUpdate(); - } - }; - - return; - } - else - { - Debug.Console(1, this, "Linking Secondary system Tuner Preset Mirroring"); - - if (PropertiesConfig.MirroredTuners != null && PropertiesConfig.MirroredTuners.Count > 0) - { - foreach (var tuner in PropertiesConfig.MirroredTuners) - { - var t = _tuners[tuner.Value]; - - if (t == null) - { - Debug.Console(1, this, "Unable to find tuner with key: {0}", tuner.Value); - continue; - } - - var join = joinMap.CurrentPreset.JoinNumber + tuner.Key; - trilist.SetStringSigAction(join, s => _tunerPresets.Dial(s, t)); - Debug.Console(1, this, "Linked preset recall action for tuner: {0} to serial join: {1}", tuner.Value, join); - } - - //foreach (var setTopBox in _tuners) - //{ - // var tuner = setTopBox; - - // trilist.SetStringSigAction(joinMap.CurrentPreset.JoinNumber + i, s => _tunerPresets.Dial(s, tuner.Value)); - - //} - } - } - } - - #endregion - - private class EssentialsTechRoomJoinMap : JoinMapBaseAdvanced - { - [JoinName("currentPreset")] - public JoinDataComplete CurrentPreset = new JoinDataComplete(new JoinData {JoinNumber = 1, JoinSpan = 16}, - new JoinMetadata {Description = "Current Tuner Preset", JoinType = eJoinType.Serial}); - - public EssentialsTechRoomJoinMap(uint joinStart) : base(joinStart, typeof(EssentialsTechRoomJoinMap)) - { - } - } - - #region IRunDirectRouteAction Members - - private void RunDirectRoute(IRoutingOutputs source, IRoutingSink dest) - { - if (dest == null) - { - Debug.Console(1, this, "Cannot route, unknown destination '{0}'", dest.Key); - return; - } - - if (source == null) - { - dest.ReleaseRoute(); - if (dest is IHasPowerControl) - (dest as IHasPowerControl).PowerOff(); - } - else - { - dest.ReleaseAndMakeRoute(source, eRoutingSignalType.Video); - } - } - - /// - /// Attempts to route directly between a source and destination - /// - /// - /// - public void RunDirectRoute(string sourceKey, string destinationKey) - { - IRoutingSink dest = null; - - dest = DeviceManager.GetDeviceForKey(destinationKey) as IRoutingSink; - - var source = DeviceManager.GetDeviceForKey(sourceKey) as IRoutingOutputs; - - if (source == null || dest == null) - { - Debug.Console(1, this, "Cannot route unknown source or destination '{0}' to {1}", sourceKey, destinationKey); - return; - } - RunDirectRoute(source, dest); - } - - #endregion - } - - public class ScheduledEventEventArgs : EventArgs - { - public List ScheduledEvents; - } -} \ No newline at end of file diff --git a/PepperDashEssentials/Room/Types/Interfaces/IEssentialsHuddleSpaceRoom.cs b/PepperDashEssentials/Room/Types/Interfaces/IEssentialsHuddleSpaceRoom.cs deleted file mode 100644 index dccae06a..00000000 --- a/PepperDashEssentials/Room/Types/Interfaces/IEssentialsHuddleSpaceRoom.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; - -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Room.Config; - - - -namespace PepperDash.Essentials -{ - public interface IEssentialsHuddleSpaceRoom : IEssentialsRoom, IHasCurrentSourceInfoChange, IRunRouteAction, IRunDefaultPresentRoute, IHasDefaultDisplay, IHasCurrentVolumeControls, IRoomOccupancy, - IEmergency, IMicrophonePrivacy - { - bool ExcludeFromGlobalFunctions { get; } - - void RunRouteAction(string routeKey); - - EssentialsHuddleRoomPropertiesConfig PropertiesConfig { get; } - - IBasicVolumeControls CurrentVolumeControls { get; } - - event EventHandler CurrentVolumeDeviceChange; - } - - -} \ No newline at end of file diff --git a/PepperDashEssentials/SGD/PepperDash Essentials iPad.sgd b/PepperDashEssentials/SGD/PepperDash Essentials iPad.sgd deleted file mode 100644 index 25eac059..00000000 --- a/PepperDashEssentials/SGD/PepperDash Essentials iPad.sgd +++ /dev/null @@ -1,20901 +0,0 @@ -[ -ObjTp=FSgntr -Sgntr=SGD -RelVrs=3 -VTProeVer=6.1.05 -Schema=1 -CRCGUID=BA116BF9-17DA-41E0-BF8A-42945AAA686D -] -;================================================================================ -[ -ObjTp=Hd -ProjectFile=PepperDash Essentials iPad.vtp -VtpGuid=D8D5F125-CB35-42E9-8AE3-4142597FD2C5 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[C.AC] Keypad_AC DTMF Keypad_2.ced -Hint=AC DTMF Keypad_2 (Smart Object ID=1101) -Code=1 -SGControlType=Simple Keypad -SGControlName=AC DTMF Keypad_2 -GUID=F2A259FE-82AD-4085-B5A6-22D7B034458C -SmplCName=PepperDash Essentials iPad_[C.AC] Keypad_AC DTMF Keypad_2.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10061 -;Define the number of inputs, outputs and parameters -MinVariableInputs=12 -MaxVariableInputs=12 -MinVariableOutputs=12 -MaxVariableOutputs=12 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=1 -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=2 -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=3 -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=4 -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=5 -OutputSigType5=Digital -InputCue6=[~UNUSED3~] -InputSigType6=Digital -OutputCue6=6 -OutputSigType6=Digital -InputCue7=[~UNUSED3~] -InputSigType7=Digital -OutputCue7=7 -OutputSigType7=Digital -InputCue8=[~UNUSED3~] -InputSigType8=Digital -OutputCue8=8 -OutputSigType8=Digital -InputCue9=[~UNUSED3~] -InputSigType9=Digital -OutputCue9=9 -OutputSigType9=Digital -InputCue10=[~UNUSED3~] -InputSigType10=Digital -OutputCue10=0 -OutputSigType10=Digital -InputCue11=[~UNUSED3~] -InputSigType11=Digital -OutputCue11=* -OutputSigType11=Digital -InputCue12=[~UNUSED3~] -InputSigType12=Digital -OutputCue12=/# -OutputSigType12=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=1 -CedH=1 -SmartObjId=1101d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=1 -Tp=1 -HD=TRUE -DV=1101d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=1 -Name=PepperDash Essentials iPad_[C.AC] Keypad_AC DTMF Keypad_2.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[D.VC] Directory_Dynamic Button List Vertical_2.ced -Hint=Dynamic Button List Vertical_2 (Smart Object ID=1202) -Code=2 -SGControlType=Dynamic Button List Vertical -SGControlName=Dynamic Button List Vertical_2 -GUID=79060F3C-D3A4-4A8D-ACF0-CB2376A31702 -SmplCName=PepperDash Essentials iPad_[D.VC] Directory_Dynamic Button List Vertical_2.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10112 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=6016 -MaxVariableInputs=6016 -MinVariableOutputs=6016 -MaxVariableOutputs=6016 -NumFixedParams=1 -MinVariableInputsList2=2012 -MaxVariableInputsList2=2012 -MinVariableOutputsList2=2012 -MaxVariableOutputsList2=2012 -MinVariableInputsList3=4014 -MaxVariableInputsList3=4014 -MinVariableOutputsList3=4014 -MaxVariableOutputsList3=4014 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=Disable Redraw -InputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Press -InputSigType11=Digital -InputCue12=Item 1 Selected -InputSigType12=Digital -InputCue13=Item 2 Selected -InputSigType13=Digital -InputCue14=Item 3 Selected -InputSigType14=Digital -InputCue15=Item 4 Selected -InputSigType15=Digital -InputCue16=Item 5 Selected -InputSigType16=Digital -InputCue17=Item 6 Selected -InputSigType17=Digital -InputCue18=Item 7 Selected -InputSigType18=Digital -InputCue19=Item 8 Selected -InputSigType19=Digital -InputCue20=Item 9 Selected -InputSigType20=Digital -InputCue21=Item 10 Selected -InputSigType21=Digital -InputCue22=Item 11 Selected -InputSigType22=Digital -InputCue23=Item 12 Selected -InputSigType23=Digital -InputCue24=Item 13 Selected -InputSigType24=Digital -InputCue25=Item 14 Selected -InputSigType25=Digital -InputCue26=Item 15 Selected -InputSigType26=Digital -InputCue27=Item 16 Selected -InputSigType27=Digital -InputCue28=Item 17 Selected -InputSigType28=Digital -InputCue29=Item 18 Selected -InputSigType29=Digital -InputCue30=Item 19 Selected -InputSigType30=Digital -InputCue31=Item 20 Selected -InputSigType31=Digital -InputCue32=Item 21 Selected -InputSigType32=Digital -InputCue33=Item 22 Selected -InputSigType33=Digital -InputCue34=Item 23 Selected -InputSigType34=Digital -InputCue35=Item 24 Selected -InputSigType35=Digital -InputCue36=Item 25 Selected -InputSigType36=Digital -InputCue37=Item 26 Selected -InputSigType37=Digital -InputCue38=Item 27 Selected -InputSigType38=Digital -InputCue39=Item 28 Selected -InputSigType39=Digital -InputCue40=Item 29 Selected -InputSigType40=Digital -InputCue41=Item 30 Selected -InputSigType41=Digital -InputCue42=Item 31 Selected -InputSigType42=Digital -InputCue43=Item 32 Selected -InputSigType43=Digital -InputCue44=Item 33 Selected -InputSigType44=Digital -InputCue45=Item 34 Selected -InputSigType45=Digital -InputCue46=Item 35 Selected -InputSigType46=Digital -InputCue47=Item 36 Selected -InputSigType47=Digital -InputCue48=Item 37 Selected -InputSigType48=Digital -InputCue49=Item 38 Selected -InputSigType49=Digital -InputCue50=Item 39 Selected -InputSigType50=Digital -InputCue51=Item 40 Selected -InputSigType51=Digital -InputCue52=Item 41 Selected -InputSigType52=Digital -InputCue53=Item 42 Selected -InputSigType53=Digital -InputCue54=Item 43 Selected -InputSigType54=Digital -InputCue55=Item 44 Selected -InputSigType55=Digital -InputCue56=Item 45 Selected -InputSigType56=Digital -InputCue57=Item 46 Selected -InputSigType57=Digital -InputCue58=Item 47 Selected -InputSigType58=Digital -InputCue59=Item 48 Selected -InputSigType59=Digital -InputCue60=Item 49 Selected -InputSigType60=Digital -InputCue61=Item 50 Selected -InputSigType61=Digital -InputCue62=Item 51 Selected -InputSigType62=Digital -InputCue63=Item 52 Selected -InputSigType63=Digital -InputCue64=Item 53 Selected -InputSigType64=Digital -InputCue65=Item 54 Selected -InputSigType65=Digital -InputCue66=Item 55 Selected -InputSigType66=Digital -InputCue67=Item 56 Selected -InputSigType67=Digital -InputCue68=Item 57 Selected -InputSigType68=Digital -InputCue69=Item 58 Selected -InputSigType69=Digital -InputCue70=Item 59 Selected -InputSigType70=Digital -InputCue71=Item 60 Selected -InputSigType71=Digital -InputCue72=Item 61 Selected -InputSigType72=Digital -InputCue73=Item 62 Selected -InputSigType73=Digital -InputCue74=Item 63 Selected -InputSigType74=Digital -InputCue75=Item 64 Selected -InputSigType75=Digital -InputCue76=Item 65 Selected -InputSigType76=Digital -InputCue77=Item 66 Selected -InputSigType77=Digital -InputCue78=Item 67 Selected -InputSigType78=Digital -InputCue79=Item 68 Selected -InputSigType79=Digital -InputCue80=Item 69 Selected -InputSigType80=Digital -InputCue81=Item 70 Selected -InputSigType81=Digital -InputCue82=Item 71 Selected -InputSigType82=Digital -InputCue83=Item 72 Selected -InputSigType83=Digital -InputCue84=Item 73 Selected -InputSigType84=Digital -InputCue85=Item 74 Selected -InputSigType85=Digital -InputCue86=Item 75 Selected -InputSigType86=Digital -InputCue87=Item 76 Selected -InputSigType87=Digital -InputCue88=Item 77 Selected -InputSigType88=Digital -InputCue89=Item 78 Selected -InputSigType89=Digital -InputCue90=Item 79 Selected -InputSigType90=Digital -InputCue91=Item 80 Selected -InputSigType91=Digital -InputCue92=Item 81 Selected -InputSigType92=Digital -InputCue93=Item 82 Selected -InputSigType93=Digital -InputCue94=Item 83 Selected -InputSigType94=Digital -InputCue95=Item 84 Selected -InputSigType95=Digital -InputCue96=Item 85 Selected -InputSigType96=Digital -InputCue97=Item 86 Selected -InputSigType97=Digital -InputCue98=Item 87 Selected -InputSigType98=Digital -InputCue99=Item 88 Selected -InputSigType99=Digital -InputCue100=Item 89 Selected -InputSigType100=Digital -InputCue101=Item 90 Selected -InputSigType101=Digital -InputCue102=Item 91 Selected -InputSigType102=Digital -InputCue103=Item 92 Selected -InputSigType103=Digital -InputCue104=Item 93 Selected -InputSigType104=Digital -InputCue105=Item 94 Selected -InputSigType105=Digital -InputCue106=Item 95 Selected -InputSigType106=Digital -InputCue107=Item 96 Selected -InputSigType107=Digital -InputCue108=Item 97 Selected -InputSigType108=Digital -InputCue109=Item 98 Selected -InputSigType109=Digital -InputCue110=Item 99 Selected -InputSigType110=Digital -InputCue111=Item 100 Selected -InputSigType111=Digital -InputCue112=Item 101 Selected -InputSigType112=Digital -InputCue113=Item 102 Selected -InputSigType113=Digital -InputCue114=Item 103 Selected -InputSigType114=Digital -InputCue115=Item 104 Selected -InputSigType115=Digital -InputCue116=Item 105 Selected -InputSigType116=Digital -InputCue117=Item 106 Selected -InputSigType117=Digital -InputCue118=Item 107 Selected -InputSigType118=Digital -InputCue119=Item 108 Selected -InputSigType119=Digital -InputCue120=Item 109 Selected -InputSigType120=Digital -InputCue121=Item 110 Selected -InputSigType121=Digital -InputCue122=Item 111 Selected -InputSigType122=Digital -InputCue123=Item 112 Selected -InputSigType123=Digital -InputCue124=Item 113 Selected -InputSigType124=Digital -InputCue125=Item 114 Selected -InputSigType125=Digital -InputCue126=Item 115 Selected -InputSigType126=Digital -InputCue127=Item 116 Selected -InputSigType127=Digital -InputCue128=Item 117 Selected -InputSigType128=Digital -InputCue129=Item 118 Selected -InputSigType129=Digital -InputCue130=Item 119 Selected -InputSigType130=Digital -InputCue131=Item 120 Selected -InputSigType131=Digital -InputCue132=Item 121 Selected -InputSigType132=Digital -InputCue133=Item 122 Selected -InputSigType133=Digital -InputCue134=Item 123 Selected -InputSigType134=Digital -InputCue135=Item 124 Selected -InputSigType135=Digital -InputCue136=Item 125 Selected -InputSigType136=Digital -InputCue137=Item 126 Selected -InputSigType137=Digital -InputCue138=Item 127 Selected -InputSigType138=Digital -InputCue139=Item 128 Selected -InputSigType139=Digital -InputCue140=Item 129 Selected -InputSigType140=Digital -InputCue141=Item 130 Selected -InputSigType141=Digital -InputCue142=Item 131 Selected -InputSigType142=Digital -InputCue143=Item 132 Selected -InputSigType143=Digital -InputCue144=Item 133 Selected -InputSigType144=Digital -InputCue145=Item 134 Selected -InputSigType145=Digital -InputCue146=Item 135 Selected -InputSigType146=Digital -InputCue147=Item 136 Selected -InputSigType147=Digital -InputCue148=Item 137 Selected -InputSigType148=Digital -InputCue149=Item 138 Selected -InputSigType149=Digital -InputCue150=Item 139 Selected -InputSigType150=Digital -InputCue151=Item 140 Selected -InputSigType151=Digital -InputCue152=Item 141 Selected -InputSigType152=Digital -InputCue153=Item 142 Selected -InputSigType153=Digital -InputCue154=Item 143 Selected -InputSigType154=Digital -InputCue155=Item 144 Selected -InputSigType155=Digital -InputCue156=Item 145 Selected -InputSigType156=Digital -InputCue157=Item 146 Selected -InputSigType157=Digital -InputCue158=Item 147 Selected -InputSigType158=Digital -InputCue159=Item 148 Selected -InputSigType159=Digital -InputCue160=Item 149 Selected -InputSigType160=Digital -InputCue161=Item 150 Selected -InputSigType161=Digital -InputCue162=Item 151 Selected -InputSigType162=Digital -InputCue163=Item 152 Selected -InputSigType163=Digital -InputCue164=Item 153 Selected -InputSigType164=Digital -InputCue165=Item 154 Selected -InputSigType165=Digital -InputCue166=Item 155 Selected -InputSigType166=Digital -InputCue167=Item 156 Selected -InputSigType167=Digital -InputCue168=Item 157 Selected -InputSigType168=Digital -InputCue169=Item 158 Selected -InputSigType169=Digital -InputCue170=Item 159 Selected -InputSigType170=Digital -InputCue171=Item 160 Selected -InputSigType171=Digital -InputCue172=Item 161 Selected -InputSigType172=Digital -InputCue173=Item 162 Selected -InputSigType173=Digital -InputCue174=Item 163 Selected -InputSigType174=Digital -InputCue175=Item 164 Selected -InputSigType175=Digital -InputCue176=Item 165 Selected -InputSigType176=Digital -InputCue177=Item 166 Selected -InputSigType177=Digital -InputCue178=Item 167 Selected -InputSigType178=Digital -InputCue179=Item 168 Selected -InputSigType179=Digital -InputCue180=Item 169 Selected -InputSigType180=Digital -InputCue181=Item 170 Selected -InputSigType181=Digital -InputCue182=Item 171 Selected -InputSigType182=Digital -InputCue183=Item 172 Selected -InputSigType183=Digital -InputCue184=Item 173 Selected -InputSigType184=Digital -InputCue185=Item 174 Selected -InputSigType185=Digital -InputCue186=Item 175 Selected -InputSigType186=Digital -InputCue187=Item 176 Selected -InputSigType187=Digital -InputCue188=Item 177 Selected -InputSigType188=Digital -InputCue189=Item 178 Selected -InputSigType189=Digital -InputCue190=Item 179 Selected -InputSigType190=Digital -InputCue191=Item 180 Selected -InputSigType191=Digital -InputCue192=Item 181 Selected -InputSigType192=Digital -InputCue193=Item 182 Selected -InputSigType193=Digital -InputCue194=Item 183 Selected -InputSigType194=Digital -InputCue195=Item 184 Selected -InputSigType195=Digital -InputCue196=Item 185 Selected -InputSigType196=Digital -InputCue197=Item 186 Selected -InputSigType197=Digital -InputCue198=Item 187 Selected -InputSigType198=Digital -InputCue199=Item 188 Selected -InputSigType199=Digital -InputCue200=Item 189 Selected -InputSigType200=Digital -InputCue201=Item 190 Selected -InputSigType201=Digital -InputCue202=Item 191 Selected -InputSigType202=Digital -InputCue203=Item 192 Selected -InputSigType203=Digital -InputCue204=Item 193 Selected -InputSigType204=Digital -InputCue205=Item 194 Selected -InputSigType205=Digital -InputCue206=Item 195 Selected -InputSigType206=Digital -InputCue207=Item 196 Selected -InputSigType207=Digital -InputCue208=Item 197 Selected -InputSigType208=Digital -InputCue209=Item 198 Selected -InputSigType209=Digital -InputCue210=Item 199 Selected -InputSigType210=Digital -InputCue211=Item 200 Selected -InputSigType211=Digital -InputCue212=Item 201 Selected -InputSigType212=Digital -InputCue213=Item 202 Selected -InputSigType213=Digital -InputCue214=Item 203 Selected -InputSigType214=Digital -InputCue215=Item 204 Selected -InputSigType215=Digital -InputCue216=Item 205 Selected -InputSigType216=Digital -InputCue217=Item 206 Selected -InputSigType217=Digital -InputCue218=Item 207 Selected -InputSigType218=Digital -InputCue219=Item 208 Selected -InputSigType219=Digital -InputCue220=Item 209 Selected -InputSigType220=Digital -InputCue221=Item 210 Selected -InputSigType221=Digital -InputCue222=Item 211 Selected -InputSigType222=Digital -InputCue223=Item 212 Selected -InputSigType223=Digital -InputCue224=Item 213 Selected -InputSigType224=Digital -InputCue225=Item 214 Selected -InputSigType225=Digital -InputCue226=Item 215 Selected -InputSigType226=Digital -InputCue227=Item 216 Selected -InputSigType227=Digital -InputCue228=Item 217 Selected -InputSigType228=Digital -InputCue229=Item 218 Selected -InputSigType229=Digital -InputCue230=Item 219 Selected -InputSigType230=Digital -InputCue231=Item 220 Selected -InputSigType231=Digital -InputCue232=Item 221 Selected -InputSigType232=Digital -InputCue233=Item 222 Selected -InputSigType233=Digital -InputCue234=Item 223 Selected -InputSigType234=Digital -InputCue235=Item 224 Selected -InputSigType235=Digital -InputCue236=Item 225 Selected -InputSigType236=Digital -InputCue237=Item 226 Selected -InputSigType237=Digital -InputCue238=Item 227 Selected -InputSigType238=Digital -InputCue239=Item 228 Selected -InputSigType239=Digital -InputCue240=Item 229 Selected -InputSigType240=Digital -InputCue241=Item 230 Selected -InputSigType241=Digital -InputCue242=Item 231 Selected -InputSigType242=Digital -InputCue243=Item 232 Selected -InputSigType243=Digital -InputCue244=Item 233 Selected -InputSigType244=Digital -InputCue245=Item 234 Selected -InputSigType245=Digital -InputCue246=Item 235 Selected -InputSigType246=Digital -InputCue247=Item 236 Selected -InputSigType247=Digital -InputCue248=Item 237 Selected -InputSigType248=Digital -InputCue249=Item 238 Selected -InputSigType249=Digital -InputCue250=Item 239 Selected -InputSigType250=Digital -InputCue251=Item 240 Selected -InputSigType251=Digital -InputCue252=Item 241 Selected -InputSigType252=Digital -InputCue253=Item 242 Selected -InputSigType253=Digital -InputCue254=Item 243 Selected -InputSigType254=Digital -InputCue255=Item 244 Selected -InputSigType255=Digital -InputCue256=Item 245 Selected -InputSigType256=Digital -InputCue257=Item 246 Selected -InputSigType257=Digital -InputCue258=Item 247 Selected -InputSigType258=Digital -InputCue259=Item 248 Selected -InputSigType259=Digital -InputCue260=Item 249 Selected -InputSigType260=Digital -InputCue261=Item 250 Selected -InputSigType261=Digital -InputCue262=Item 251 Selected -InputSigType262=Digital -InputCue263=Item 252 Selected -InputSigType263=Digital -InputCue264=Item 253 Selected -InputSigType264=Digital -InputCue265=Item 254 Selected -InputSigType265=Digital -InputCue266=Item 255 Selected -InputSigType266=Digital -InputCue267=[~UNUSED2~] -InputSigType267=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Press -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Enable -InputSigType2013=Digital -InputCue2014=Item 1 Enabled -InputSigType2014=Digital -InputCue2015=Item 2 Enabled -InputSigType2015=Digital -InputCue2016=Item 3 Enabled -InputSigType2016=Digital -InputCue2017=Item 4 Enabled -InputSigType2017=Digital -InputCue2018=Item 5 Enabled -InputSigType2018=Digital -InputCue2019=Item 6 Enabled -InputSigType2019=Digital -InputCue2020=Item 7 Enabled -InputSigType2020=Digital -InputCue2021=Item 8 Enabled -InputSigType2021=Digital -InputCue2022=Item 9 Enabled -InputSigType2022=Digital -InputCue2023=Item 10 Enabled -InputSigType2023=Digital -InputCue2024=Item 11 Enabled -InputSigType2024=Digital -InputCue2025=Item 12 Enabled -InputSigType2025=Digital -InputCue2026=Item 13 Enabled -InputSigType2026=Digital -InputCue2027=Item 14 Enabled -InputSigType2027=Digital -InputCue2028=Item 15 Enabled -InputSigType2028=Digital -InputCue2029=Item 16 Enabled -InputSigType2029=Digital -InputCue2030=Item 17 Enabled -InputSigType2030=Digital -InputCue2031=Item 18 Enabled -InputSigType2031=Digital -InputCue2032=Item 19 Enabled -InputSigType2032=Digital -InputCue2033=Item 20 Enabled -InputSigType2033=Digital -InputCue2034=Item 21 Enabled -InputSigType2034=Digital -InputCue2035=Item 22 Enabled -InputSigType2035=Digital -InputCue2036=Item 23 Enabled -InputSigType2036=Digital -InputCue2037=Item 24 Enabled -InputSigType2037=Digital -InputCue2038=Item 25 Enabled -InputSigType2038=Digital -InputCue2039=Item 26 Enabled -InputSigType2039=Digital -InputCue2040=Item 27 Enabled -InputSigType2040=Digital -InputCue2041=Item 28 Enabled -InputSigType2041=Digital -InputCue2042=Item 29 Enabled -InputSigType2042=Digital -InputCue2043=Item 30 Enabled -InputSigType2043=Digital -InputCue2044=Item 31 Enabled -InputSigType2044=Digital -InputCue2045=Item 32 Enabled -InputSigType2045=Digital -InputCue2046=Item 33 Enabled -InputSigType2046=Digital -InputCue2047=Item 34 Enabled -InputSigType2047=Digital -InputCue2048=Item 35 Enabled -InputSigType2048=Digital -InputCue2049=Item 36 Enabled -InputSigType2049=Digital -InputCue2050=Item 37 Enabled -InputSigType2050=Digital -InputCue2051=Item 38 Enabled -InputSigType2051=Digital -InputCue2052=Item 39 Enabled -InputSigType2052=Digital -InputCue2053=Item 40 Enabled -InputSigType2053=Digital -InputCue2054=Item 41 Enabled -InputSigType2054=Digital -InputCue2055=Item 42 Enabled -InputSigType2055=Digital -InputCue2056=Item 43 Enabled -InputSigType2056=Digital -InputCue2057=Item 44 Enabled -InputSigType2057=Digital -InputCue2058=Item 45 Enabled -InputSigType2058=Digital -InputCue2059=Item 46 Enabled -InputSigType2059=Digital -InputCue2060=Item 47 Enabled -InputSigType2060=Digital -InputCue2061=Item 48 Enabled -InputSigType2061=Digital -InputCue2062=Item 49 Enabled -InputSigType2062=Digital -InputCue2063=Item 50 Enabled -InputSigType2063=Digital -InputCue2064=Item 51 Enabled -InputSigType2064=Digital -InputCue2065=Item 52 Enabled -InputSigType2065=Digital -InputCue2066=Item 53 Enabled -InputSigType2066=Digital -InputCue2067=Item 54 Enabled -InputSigType2067=Digital -InputCue2068=Item 55 Enabled -InputSigType2068=Digital -InputCue2069=Item 56 Enabled -InputSigType2069=Digital -InputCue2070=Item 57 Enabled -InputSigType2070=Digital -InputCue2071=Item 58 Enabled -InputSigType2071=Digital -InputCue2072=Item 59 Enabled -InputSigType2072=Digital -InputCue2073=Item 60 Enabled -InputSigType2073=Digital -InputCue2074=Item 61 Enabled -InputSigType2074=Digital -InputCue2075=Item 62 Enabled -InputSigType2075=Digital -InputCue2076=Item 63 Enabled -InputSigType2076=Digital -InputCue2077=Item 64 Enabled -InputSigType2077=Digital -InputCue2078=Item 65 Enabled -InputSigType2078=Digital -InputCue2079=Item 66 Enabled -InputSigType2079=Digital -InputCue2080=Item 67 Enabled -InputSigType2080=Digital -InputCue2081=Item 68 Enabled -InputSigType2081=Digital -InputCue2082=Item 69 Enabled -InputSigType2082=Digital -InputCue2083=Item 70 Enabled -InputSigType2083=Digital -InputCue2084=Item 71 Enabled -InputSigType2084=Digital -InputCue2085=Item 72 Enabled -InputSigType2085=Digital -InputCue2086=Item 73 Enabled -InputSigType2086=Digital -InputCue2087=Item 74 Enabled -InputSigType2087=Digital -InputCue2088=Item 75 Enabled -InputSigType2088=Digital -InputCue2089=Item 76 Enabled -InputSigType2089=Digital -InputCue2090=Item 77 Enabled -InputSigType2090=Digital -InputCue2091=Item 78 Enabled -InputSigType2091=Digital -InputCue2092=Item 79 Enabled -InputSigType2092=Digital -InputCue2093=Item 80 Enabled -InputSigType2093=Digital -InputCue2094=Item 81 Enabled -InputSigType2094=Digital -InputCue2095=Item 82 Enabled -InputSigType2095=Digital -InputCue2096=Item 83 Enabled -InputSigType2096=Digital -InputCue2097=Item 84 Enabled -InputSigType2097=Digital -InputCue2098=Item 85 Enabled -InputSigType2098=Digital -InputCue2099=Item 86 Enabled -InputSigType2099=Digital -InputCue2100=Item 87 Enabled -InputSigType2100=Digital -InputCue2101=Item 88 Enabled -InputSigType2101=Digital -InputCue2102=Item 89 Enabled -InputSigType2102=Digital -InputCue2103=Item 90 Enabled -InputSigType2103=Digital -InputCue2104=Item 91 Enabled -InputSigType2104=Digital -InputCue2105=Item 92 Enabled -InputSigType2105=Digital -InputCue2106=Item 93 Enabled -InputSigType2106=Digital -InputCue2107=Item 94 Enabled -InputSigType2107=Digital -InputCue2108=Item 95 Enabled -InputSigType2108=Digital -InputCue2109=Item 96 Enabled -InputSigType2109=Digital -InputCue2110=Item 97 Enabled -InputSigType2110=Digital -InputCue2111=Item 98 Enabled -InputSigType2111=Digital -InputCue2112=Item 99 Enabled -InputSigType2112=Digital -InputCue2113=Item 100 Enabled -InputSigType2113=Digital -InputCue2114=Item 101 Enabled -InputSigType2114=Digital -InputCue2115=Item 102 Enabled -InputSigType2115=Digital -InputCue2116=Item 103 Enabled -InputSigType2116=Digital -InputCue2117=Item 104 Enabled -InputSigType2117=Digital -InputCue2118=Item 105 Enabled -InputSigType2118=Digital -InputCue2119=Item 106 Enabled -InputSigType2119=Digital -InputCue2120=Item 107 Enabled -InputSigType2120=Digital -InputCue2121=Item 108 Enabled -InputSigType2121=Digital -InputCue2122=Item 109 Enabled -InputSigType2122=Digital -InputCue2123=Item 110 Enabled -InputSigType2123=Digital -InputCue2124=Item 111 Enabled -InputSigType2124=Digital -InputCue2125=Item 112 Enabled -InputSigType2125=Digital -InputCue2126=Item 113 Enabled -InputSigType2126=Digital -InputCue2127=Item 114 Enabled -InputSigType2127=Digital -InputCue2128=Item 115 Enabled -InputSigType2128=Digital -InputCue2129=Item 116 Enabled -InputSigType2129=Digital -InputCue2130=Item 117 Enabled -InputSigType2130=Digital -InputCue2131=Item 118 Enabled -InputSigType2131=Digital -InputCue2132=Item 119 Enabled -InputSigType2132=Digital -InputCue2133=Item 120 Enabled -InputSigType2133=Digital -InputCue2134=Item 121 Enabled -InputSigType2134=Digital -InputCue2135=Item 122 Enabled -InputSigType2135=Digital -InputCue2136=Item 123 Enabled -InputSigType2136=Digital -InputCue2137=Item 124 Enabled -InputSigType2137=Digital -InputCue2138=Item 125 Enabled -InputSigType2138=Digital -InputCue2139=Item 126 Enabled -InputSigType2139=Digital -InputCue2140=Item 127 Enabled -InputSigType2140=Digital -InputCue2141=Item 128 Enabled -InputSigType2141=Digital -InputCue2142=Item 129 Enabled -InputSigType2142=Digital -InputCue2143=Item 130 Enabled -InputSigType2143=Digital -InputCue2144=Item 131 Enabled -InputSigType2144=Digital -InputCue2145=Item 132 Enabled -InputSigType2145=Digital -InputCue2146=Item 133 Enabled -InputSigType2146=Digital -InputCue2147=Item 134 Enabled -InputSigType2147=Digital -InputCue2148=Item 135 Enabled -InputSigType2148=Digital -InputCue2149=Item 136 Enabled -InputSigType2149=Digital -InputCue2150=Item 137 Enabled -InputSigType2150=Digital -InputCue2151=Item 138 Enabled -InputSigType2151=Digital -InputCue2152=Item 139 Enabled -InputSigType2152=Digital -InputCue2153=Item 140 Enabled -InputSigType2153=Digital -InputCue2154=Item 141 Enabled -InputSigType2154=Digital -InputCue2155=Item 142 Enabled -InputSigType2155=Digital -InputCue2156=Item 143 Enabled -InputSigType2156=Digital -InputCue2157=Item 144 Enabled -InputSigType2157=Digital -InputCue2158=Item 145 Enabled -InputSigType2158=Digital -InputCue2159=Item 146 Enabled -InputSigType2159=Digital -InputCue2160=Item 147 Enabled -InputSigType2160=Digital -InputCue2161=Item 148 Enabled -InputSigType2161=Digital -InputCue2162=Item 149 Enabled -InputSigType2162=Digital -InputCue2163=Item 150 Enabled -InputSigType2163=Digital -InputCue2164=Item 151 Enabled -InputSigType2164=Digital -InputCue2165=Item 152 Enabled -InputSigType2165=Digital -InputCue2166=Item 153 Enabled -InputSigType2166=Digital -InputCue2167=Item 154 Enabled -InputSigType2167=Digital -InputCue2168=Item 155 Enabled -InputSigType2168=Digital -InputCue2169=Item 156 Enabled -InputSigType2169=Digital -InputCue2170=Item 157 Enabled -InputSigType2170=Digital -InputCue2171=Item 158 Enabled -InputSigType2171=Digital -InputCue2172=Item 159 Enabled -InputSigType2172=Digital -InputCue2173=Item 160 Enabled -InputSigType2173=Digital -InputCue2174=Item 161 Enabled -InputSigType2174=Digital -InputCue2175=Item 162 Enabled -InputSigType2175=Digital -InputCue2176=Item 163 Enabled -InputSigType2176=Digital -InputCue2177=Item 164 Enabled -InputSigType2177=Digital -InputCue2178=Item 165 Enabled -InputSigType2178=Digital -InputCue2179=Item 166 Enabled -InputSigType2179=Digital -InputCue2180=Item 167 Enabled -InputSigType2180=Digital -InputCue2181=Item 168 Enabled -InputSigType2181=Digital -InputCue2182=Item 169 Enabled -InputSigType2182=Digital -InputCue2183=Item 170 Enabled -InputSigType2183=Digital -InputCue2184=Item 171 Enabled -InputSigType2184=Digital -InputCue2185=Item 172 Enabled -InputSigType2185=Digital -InputCue2186=Item 173 Enabled -InputSigType2186=Digital -InputCue2187=Item 174 Enabled -InputSigType2187=Digital -InputCue2188=Item 175 Enabled -InputSigType2188=Digital -InputCue2189=Item 176 Enabled -InputSigType2189=Digital -InputCue2190=Item 177 Enabled -InputSigType2190=Digital -InputCue2191=Item 178 Enabled -InputSigType2191=Digital -InputCue2192=Item 179 Enabled -InputSigType2192=Digital -InputCue2193=Item 180 Enabled -InputSigType2193=Digital -InputCue2194=Item 181 Enabled -InputSigType2194=Digital -InputCue2195=Item 182 Enabled -InputSigType2195=Digital -InputCue2196=Item 183 Enabled -InputSigType2196=Digital -InputCue2197=Item 184 Enabled -InputSigType2197=Digital -InputCue2198=Item 185 Enabled -InputSigType2198=Digital -InputCue2199=Item 186 Enabled -InputSigType2199=Digital -InputCue2200=Item 187 Enabled -InputSigType2200=Digital -InputCue2201=Item 188 Enabled -InputSigType2201=Digital -InputCue2202=Item 189 Enabled -InputSigType2202=Digital -InputCue2203=Item 190 Enabled -InputSigType2203=Digital -InputCue2204=Item 191 Enabled -InputSigType2204=Digital -InputCue2205=Item 192 Enabled -InputSigType2205=Digital -InputCue2206=Item 193 Enabled -InputSigType2206=Digital -InputCue2207=Item 194 Enabled -InputSigType2207=Digital -InputCue2208=Item 195 Enabled -InputSigType2208=Digital -InputCue2209=Item 196 Enabled -InputSigType2209=Digital -InputCue2210=Item 197 Enabled -InputSigType2210=Digital -InputCue2211=Item 198 Enabled -InputSigType2211=Digital -InputCue2212=Item 199 Enabled -InputSigType2212=Digital -InputCue2213=Item 200 Enabled -InputSigType2213=Digital -InputCue2214=Item 201 Enabled -InputSigType2214=Digital -InputCue2215=Item 202 Enabled -InputSigType2215=Digital -InputCue2216=Item 203 Enabled -InputSigType2216=Digital -InputCue2217=Item 204 Enabled -InputSigType2217=Digital -InputCue2218=Item 205 Enabled -InputSigType2218=Digital -InputCue2219=Item 206 Enabled -InputSigType2219=Digital -InputCue2220=Item 207 Enabled -InputSigType2220=Digital -InputCue2221=Item 208 Enabled -InputSigType2221=Digital -InputCue2222=Item 209 Enabled -InputSigType2222=Digital -InputCue2223=Item 210 Enabled -InputSigType2223=Digital -InputCue2224=Item 211 Enabled -InputSigType2224=Digital -InputCue2225=Item 212 Enabled -InputSigType2225=Digital -InputCue2226=Item 213 Enabled -InputSigType2226=Digital -InputCue2227=Item 214 Enabled -InputSigType2227=Digital -InputCue2228=Item 215 Enabled -InputSigType2228=Digital -InputCue2229=Item 216 Enabled -InputSigType2229=Digital -InputCue2230=Item 217 Enabled -InputSigType2230=Digital -InputCue2231=Item 218 Enabled -InputSigType2231=Digital -InputCue2232=Item 219 Enabled -InputSigType2232=Digital -InputCue2233=Item 220 Enabled -InputSigType2233=Digital -InputCue2234=Item 221 Enabled -InputSigType2234=Digital -InputCue2235=Item 222 Enabled -InputSigType2235=Digital -InputCue2236=Item 223 Enabled -InputSigType2236=Digital -InputCue2237=Item 224 Enabled -InputSigType2237=Digital -InputCue2238=Item 225 Enabled -InputSigType2238=Digital -InputCue2239=Item 226 Enabled -InputSigType2239=Digital -InputCue2240=Item 227 Enabled -InputSigType2240=Digital -InputCue2241=Item 228 Enabled -InputSigType2241=Digital -InputCue2242=Item 229 Enabled -InputSigType2242=Digital -InputCue2243=Item 230 Enabled -InputSigType2243=Digital -InputCue2244=Item 231 Enabled -InputSigType2244=Digital -InputCue2245=Item 232 Enabled -InputSigType2245=Digital -InputCue2246=Item 233 Enabled -InputSigType2246=Digital -InputCue2247=Item 234 Enabled -InputSigType2247=Digital -InputCue2248=Item 235 Enabled -InputSigType2248=Digital -InputCue2249=Item 236 Enabled -InputSigType2249=Digital -InputCue2250=Item 237 Enabled -InputSigType2250=Digital -InputCue2251=Item 238 Enabled -InputSigType2251=Digital -InputCue2252=Item 239 Enabled -InputSigType2252=Digital -InputCue2253=Item 240 Enabled -InputSigType2253=Digital -InputCue2254=Item 241 Enabled -InputSigType2254=Digital -InputCue2255=Item 242 Enabled -InputSigType2255=Digital -InputCue2256=Item 243 Enabled -InputSigType2256=Digital -InputCue2257=Item 244 Enabled -InputSigType2257=Digital -InputCue2258=Item 245 Enabled -InputSigType2258=Digital -InputCue2259=Item 246 Enabled -InputSigType2259=Digital -InputCue2260=Item 247 Enabled -InputSigType2260=Digital -InputCue2261=Item 248 Enabled -InputSigType2261=Digital -InputCue2262=Item 249 Enabled -InputSigType2262=Digital -InputCue2263=Item 250 Enabled -InputSigType2263=Digital -InputCue2264=Item 251 Enabled -InputSigType2264=Digital -InputCue2265=Item 252 Enabled -InputSigType2265=Digital -InputCue2266=Item 253 Enabled -InputSigType2266=Digital -InputCue2267=Item 254 Enabled -InputSigType2267=Digital -InputCue2268=Item 255 Enabled -InputSigType2268=Digital -InputCue2269=[~UNUSED2~] -InputSigType2269=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Enable -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]Visible -InputSigType4015=Digital -InputCue4016=Item 1 Visible -InputSigType4016=Digital -InputCue4017=Item 2 Visible -InputSigType4017=Digital -InputCue4018=Item 3 Visible -InputSigType4018=Digital -InputCue4019=Item 4 Visible -InputSigType4019=Digital -InputCue4020=Item 5 Visible -InputSigType4020=Digital -InputCue4021=Item 6 Visible -InputSigType4021=Digital -InputCue4022=Item 7 Visible -InputSigType4022=Digital -InputCue4023=Item 8 Visible -InputSigType4023=Digital -InputCue4024=Item 9 Visible -InputSigType4024=Digital -InputCue4025=Item 10 Visible -InputSigType4025=Digital -InputCue4026=Item 11 Visible -InputSigType4026=Digital -InputCue4027=Item 12 Visible -InputSigType4027=Digital -InputCue4028=Item 13 Visible -InputSigType4028=Digital -InputCue4029=Item 14 Visible -InputSigType4029=Digital -InputCue4030=Item 15 Visible -InputSigType4030=Digital -InputCue4031=Item 16 Visible -InputSigType4031=Digital -InputCue4032=Item 17 Visible -InputSigType4032=Digital -InputCue4033=Item 18 Visible -InputSigType4033=Digital -InputCue4034=Item 19 Visible -InputSigType4034=Digital -InputCue4035=Item 20 Visible -InputSigType4035=Digital -InputCue4036=Item 21 Visible -InputSigType4036=Digital -InputCue4037=Item 22 Visible -InputSigType4037=Digital -InputCue4038=Item 23 Visible -InputSigType4038=Digital -InputCue4039=Item 24 Visible -InputSigType4039=Digital -InputCue4040=Item 25 Visible -InputSigType4040=Digital -InputCue4041=Item 26 Visible -InputSigType4041=Digital -InputCue4042=Item 27 Visible -InputSigType4042=Digital -InputCue4043=Item 28 Visible -InputSigType4043=Digital -InputCue4044=Item 29 Visible -InputSigType4044=Digital -InputCue4045=Item 30 Visible -InputSigType4045=Digital -InputCue4046=Item 31 Visible -InputSigType4046=Digital -InputCue4047=Item 32 Visible -InputSigType4047=Digital -InputCue4048=Item 33 Visible -InputSigType4048=Digital -InputCue4049=Item 34 Visible -InputSigType4049=Digital -InputCue4050=Item 35 Visible -InputSigType4050=Digital -InputCue4051=Item 36 Visible -InputSigType4051=Digital -InputCue4052=Item 37 Visible -InputSigType4052=Digital -InputCue4053=Item 38 Visible -InputSigType4053=Digital -InputCue4054=Item 39 Visible -InputSigType4054=Digital -InputCue4055=Item 40 Visible -InputSigType4055=Digital -InputCue4056=Item 41 Visible -InputSigType4056=Digital -InputCue4057=Item 42 Visible -InputSigType4057=Digital -InputCue4058=Item 43 Visible -InputSigType4058=Digital -InputCue4059=Item 44 Visible -InputSigType4059=Digital -InputCue4060=Item 45 Visible -InputSigType4060=Digital -InputCue4061=Item 46 Visible -InputSigType4061=Digital -InputCue4062=Item 47 Visible -InputSigType4062=Digital -InputCue4063=Item 48 Visible -InputSigType4063=Digital -InputCue4064=Item 49 Visible -InputSigType4064=Digital -InputCue4065=Item 50 Visible -InputSigType4065=Digital -InputCue4066=Item 51 Visible -InputSigType4066=Digital -InputCue4067=Item 52 Visible -InputSigType4067=Digital -InputCue4068=Item 53 Visible -InputSigType4068=Digital -InputCue4069=Item 54 Visible -InputSigType4069=Digital -InputCue4070=Item 55 Visible -InputSigType4070=Digital -InputCue4071=Item 56 Visible -InputSigType4071=Digital -InputCue4072=Item 57 Visible -InputSigType4072=Digital -InputCue4073=Item 58 Visible -InputSigType4073=Digital -InputCue4074=Item 59 Visible -InputSigType4074=Digital -InputCue4075=Item 60 Visible -InputSigType4075=Digital -InputCue4076=Item 61 Visible -InputSigType4076=Digital -InputCue4077=Item 62 Visible -InputSigType4077=Digital -InputCue4078=Item 63 Visible -InputSigType4078=Digital -InputCue4079=Item 64 Visible -InputSigType4079=Digital -InputCue4080=Item 65 Visible -InputSigType4080=Digital -InputCue4081=Item 66 Visible -InputSigType4081=Digital -InputCue4082=Item 67 Visible -InputSigType4082=Digital -InputCue4083=Item 68 Visible -InputSigType4083=Digital -InputCue4084=Item 69 Visible -InputSigType4084=Digital -InputCue4085=Item 70 Visible -InputSigType4085=Digital -InputCue4086=Item 71 Visible -InputSigType4086=Digital -InputCue4087=Item 72 Visible -InputSigType4087=Digital -InputCue4088=Item 73 Visible -InputSigType4088=Digital -InputCue4089=Item 74 Visible -InputSigType4089=Digital -InputCue4090=Item 75 Visible -InputSigType4090=Digital -InputCue4091=Item 76 Visible -InputSigType4091=Digital -InputCue4092=Item 77 Visible -InputSigType4092=Digital -InputCue4093=Item 78 Visible -InputSigType4093=Digital -InputCue4094=Item 79 Visible -InputSigType4094=Digital -InputCue4095=Item 80 Visible -InputSigType4095=Digital -InputCue4096=Item 81 Visible -InputSigType4096=Digital -InputCue4097=Item 82 Visible -InputSigType4097=Digital -InputCue4098=Item 83 Visible -InputSigType4098=Digital -InputCue4099=Item 84 Visible -InputSigType4099=Digital -InputCue4100=Item 85 Visible -InputSigType4100=Digital -InputCue4101=Item 86 Visible -InputSigType4101=Digital -InputCue4102=Item 87 Visible -InputSigType4102=Digital -InputCue4103=Item 88 Visible -InputSigType4103=Digital -InputCue4104=Item 89 Visible -InputSigType4104=Digital -InputCue4105=Item 90 Visible -InputSigType4105=Digital -InputCue4106=Item 91 Visible -InputSigType4106=Digital -InputCue4107=Item 92 Visible -InputSigType4107=Digital -InputCue4108=Item 93 Visible -InputSigType4108=Digital -InputCue4109=Item 94 Visible -InputSigType4109=Digital -InputCue4110=Item 95 Visible -InputSigType4110=Digital -InputCue4111=Item 96 Visible -InputSigType4111=Digital -InputCue4112=Item 97 Visible -InputSigType4112=Digital -InputCue4113=Item 98 Visible -InputSigType4113=Digital -InputCue4114=Item 99 Visible -InputSigType4114=Digital -InputCue4115=Item 100 Visible -InputSigType4115=Digital -InputCue4116=Item 101 Visible -InputSigType4116=Digital -InputCue4117=Item 102 Visible -InputSigType4117=Digital -InputCue4118=Item 103 Visible -InputSigType4118=Digital -InputCue4119=Item 104 Visible -InputSigType4119=Digital -InputCue4120=Item 105 Visible -InputSigType4120=Digital -InputCue4121=Item 106 Visible -InputSigType4121=Digital -InputCue4122=Item 107 Visible -InputSigType4122=Digital -InputCue4123=Item 108 Visible -InputSigType4123=Digital -InputCue4124=Item 109 Visible -InputSigType4124=Digital -InputCue4125=Item 110 Visible -InputSigType4125=Digital -InputCue4126=Item 111 Visible -InputSigType4126=Digital -InputCue4127=Item 112 Visible -InputSigType4127=Digital -InputCue4128=Item 113 Visible -InputSigType4128=Digital -InputCue4129=Item 114 Visible -InputSigType4129=Digital -InputCue4130=Item 115 Visible -InputSigType4130=Digital -InputCue4131=Item 116 Visible -InputSigType4131=Digital -InputCue4132=Item 117 Visible -InputSigType4132=Digital -InputCue4133=Item 118 Visible -InputSigType4133=Digital -InputCue4134=Item 119 Visible -InputSigType4134=Digital -InputCue4135=Item 120 Visible -InputSigType4135=Digital -InputCue4136=Item 121 Visible -InputSigType4136=Digital -InputCue4137=Item 122 Visible -InputSigType4137=Digital -InputCue4138=Item 123 Visible -InputSigType4138=Digital -InputCue4139=Item 124 Visible -InputSigType4139=Digital -InputCue4140=Item 125 Visible -InputSigType4140=Digital -InputCue4141=Item 126 Visible -InputSigType4141=Digital -InputCue4142=Item 127 Visible -InputSigType4142=Digital -InputCue4143=Item 128 Visible -InputSigType4143=Digital -InputCue4144=Item 129 Visible -InputSigType4144=Digital -InputCue4145=Item 130 Visible -InputSigType4145=Digital -InputCue4146=Item 131 Visible -InputSigType4146=Digital -InputCue4147=Item 132 Visible -InputSigType4147=Digital -InputCue4148=Item 133 Visible -InputSigType4148=Digital -InputCue4149=Item 134 Visible -InputSigType4149=Digital -InputCue4150=Item 135 Visible -InputSigType4150=Digital -InputCue4151=Item 136 Visible -InputSigType4151=Digital -InputCue4152=Item 137 Visible -InputSigType4152=Digital -InputCue4153=Item 138 Visible -InputSigType4153=Digital -InputCue4154=Item 139 Visible -InputSigType4154=Digital -InputCue4155=Item 140 Visible -InputSigType4155=Digital -InputCue4156=Item 141 Visible -InputSigType4156=Digital -InputCue4157=Item 142 Visible -InputSigType4157=Digital -InputCue4158=Item 143 Visible -InputSigType4158=Digital -InputCue4159=Item 144 Visible -InputSigType4159=Digital -InputCue4160=Item 145 Visible -InputSigType4160=Digital -InputCue4161=Item 146 Visible -InputSigType4161=Digital -InputCue4162=Item 147 Visible -InputSigType4162=Digital -InputCue4163=Item 148 Visible -InputSigType4163=Digital -InputCue4164=Item 149 Visible -InputSigType4164=Digital -InputCue4165=Item 150 Visible -InputSigType4165=Digital -InputCue4166=Item 151 Visible -InputSigType4166=Digital -InputCue4167=Item 152 Visible -InputSigType4167=Digital -InputCue4168=Item 153 Visible -InputSigType4168=Digital -InputCue4169=Item 154 Visible -InputSigType4169=Digital -InputCue4170=Item 155 Visible -InputSigType4170=Digital -InputCue4171=Item 156 Visible -InputSigType4171=Digital -InputCue4172=Item 157 Visible -InputSigType4172=Digital -InputCue4173=Item 158 Visible -InputSigType4173=Digital -InputCue4174=Item 159 Visible -InputSigType4174=Digital -InputCue4175=Item 160 Visible -InputSigType4175=Digital -InputCue4176=Item 161 Visible -InputSigType4176=Digital -InputCue4177=Item 162 Visible -InputSigType4177=Digital -InputCue4178=Item 163 Visible -InputSigType4178=Digital -InputCue4179=Item 164 Visible -InputSigType4179=Digital -InputCue4180=Item 165 Visible -InputSigType4180=Digital -InputCue4181=Item 166 Visible -InputSigType4181=Digital -InputCue4182=Item 167 Visible -InputSigType4182=Digital -InputCue4183=Item 168 Visible -InputSigType4183=Digital -InputCue4184=Item 169 Visible -InputSigType4184=Digital -InputCue4185=Item 170 Visible -InputSigType4185=Digital -InputCue4186=Item 171 Visible -InputSigType4186=Digital -InputCue4187=Item 172 Visible -InputSigType4187=Digital -InputCue4188=Item 173 Visible -InputSigType4188=Digital -InputCue4189=Item 174 Visible -InputSigType4189=Digital -InputCue4190=Item 175 Visible -InputSigType4190=Digital -InputCue4191=Item 176 Visible -InputSigType4191=Digital -InputCue4192=Item 177 Visible -InputSigType4192=Digital -InputCue4193=Item 178 Visible -InputSigType4193=Digital -InputCue4194=Item 179 Visible -InputSigType4194=Digital -InputCue4195=Item 180 Visible -InputSigType4195=Digital -InputCue4196=Item 181 Visible -InputSigType4196=Digital -InputCue4197=Item 182 Visible -InputSigType4197=Digital -InputCue4198=Item 183 Visible -InputSigType4198=Digital -InputCue4199=Item 184 Visible -InputSigType4199=Digital -InputCue4200=Item 185 Visible -InputSigType4200=Digital -InputCue4201=Item 186 Visible -InputSigType4201=Digital -InputCue4202=Item 187 Visible -InputSigType4202=Digital -InputCue4203=Item 188 Visible -InputSigType4203=Digital -InputCue4204=Item 189 Visible -InputSigType4204=Digital -InputCue4205=Item 190 Visible -InputSigType4205=Digital -InputCue4206=Item 191 Visible -InputSigType4206=Digital -InputCue4207=Item 192 Visible -InputSigType4207=Digital -InputCue4208=Item 193 Visible -InputSigType4208=Digital -InputCue4209=Item 194 Visible -InputSigType4209=Digital -InputCue4210=Item 195 Visible -InputSigType4210=Digital -InputCue4211=Item 196 Visible -InputSigType4211=Digital -InputCue4212=Item 197 Visible -InputSigType4212=Digital -InputCue4213=Item 198 Visible -InputSigType4213=Digital -InputCue4214=Item 199 Visible -InputSigType4214=Digital -InputCue4215=Item 200 Visible -InputSigType4215=Digital -InputCue4216=Item 201 Visible -InputSigType4216=Digital -InputCue4217=Item 202 Visible -InputSigType4217=Digital -InputCue4218=Item 203 Visible -InputSigType4218=Digital -InputCue4219=Item 204 Visible -InputSigType4219=Digital -InputCue4220=Item 205 Visible -InputSigType4220=Digital -InputCue4221=Item 206 Visible -InputSigType4221=Digital -InputCue4222=Item 207 Visible -InputSigType4222=Digital -InputCue4223=Item 208 Visible -InputSigType4223=Digital -InputCue4224=Item 209 Visible -InputSigType4224=Digital -InputCue4225=Item 210 Visible -InputSigType4225=Digital -InputCue4226=Item 211 Visible -InputSigType4226=Digital -InputCue4227=Item 212 Visible -InputSigType4227=Digital -InputCue4228=Item 213 Visible -InputSigType4228=Digital -InputCue4229=Item 214 Visible -InputSigType4229=Digital -InputCue4230=Item 215 Visible -InputSigType4230=Digital -InputCue4231=Item 216 Visible -InputSigType4231=Digital -InputCue4232=Item 217 Visible -InputSigType4232=Digital -InputCue4233=Item 218 Visible -InputSigType4233=Digital -InputCue4234=Item 219 Visible -InputSigType4234=Digital -InputCue4235=Item 220 Visible -InputSigType4235=Digital -InputCue4236=Item 221 Visible -InputSigType4236=Digital -InputCue4237=Item 222 Visible -InputSigType4237=Digital -InputCue4238=Item 223 Visible -InputSigType4238=Digital -InputCue4239=Item 224 Visible -InputSigType4239=Digital -InputCue4240=Item 225 Visible -InputSigType4240=Digital -InputCue4241=Item 226 Visible -InputSigType4241=Digital -InputCue4242=Item 227 Visible -InputSigType4242=Digital -InputCue4243=Item 228 Visible -InputSigType4243=Digital -InputCue4244=Item 229 Visible -InputSigType4244=Digital -InputCue4245=Item 230 Visible -InputSigType4245=Digital -InputCue4246=Item 231 Visible -InputSigType4246=Digital -InputCue4247=Item 232 Visible -InputSigType4247=Digital -InputCue4248=Item 233 Visible -InputSigType4248=Digital -InputCue4249=Item 234 Visible -InputSigType4249=Digital -InputCue4250=Item 235 Visible -InputSigType4250=Digital -InputCue4251=Item 236 Visible -InputSigType4251=Digital -InputCue4252=Item 237 Visible -InputSigType4252=Digital -InputCue4253=Item 238 Visible -InputSigType4253=Digital -InputCue4254=Item 239 Visible -InputSigType4254=Digital -InputCue4255=Item 240 Visible -InputSigType4255=Digital -InputCue4256=Item 241 Visible -InputSigType4256=Digital -InputCue4257=Item 242 Visible -InputSigType4257=Digital -InputCue4258=Item 243 Visible -InputSigType4258=Digital -InputCue4259=Item 244 Visible -InputSigType4259=Digital -InputCue4260=Item 245 Visible -InputSigType4260=Digital -InputCue4261=Item 246 Visible -InputSigType4261=Digital -InputCue4262=Item 247 Visible -InputSigType4262=Digital -InputCue4263=Item 248 Visible -InputSigType4263=Digital -InputCue4264=Item 249 Visible -InputSigType4264=Digital -InputCue4265=Item 250 Visible -InputSigType4265=Digital -InputCue4266=Item 251 Visible -InputSigType4266=Digital -InputCue4267=Item 252 Visible -InputSigType4267=Digital -InputCue4268=Item 253 Visible -InputSigType4268=Digital -InputCue4269=Item 254 Visible -InputSigType4269=Digital -InputCue4270=Item 255 Visible -InputSigType4270=Digital -InputCue4271=[~UNUSED2~] -InputSigType4271=Digital|Analog|Serial|String -InputCue6016=[~EndGroup~]Visible -InputSigType6016=Digital -OutputCue1=[~UNUSED3~] -OutputSigType1=Digital -OutputCue2=Is Moving -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Press -OutputSigType11=Digital -OutputCue12=Item 1 Pressed -OutputSigType12=Digital -OutputCue13=Item 2 Pressed -OutputSigType13=Digital -OutputCue14=Item 3 Pressed -OutputSigType14=Digital -OutputCue15=Item 4 Pressed -OutputSigType15=Digital -OutputCue16=Item 5 Pressed -OutputSigType16=Digital -OutputCue17=Item 6 Pressed -OutputSigType17=Digital -OutputCue18=Item 7 Pressed -OutputSigType18=Digital -OutputCue19=Item 8 Pressed -OutputSigType19=Digital -OutputCue20=Item 9 Pressed -OutputSigType20=Digital -OutputCue21=Item 10 Pressed -OutputSigType21=Digital -OutputCue22=Item 11 Pressed -OutputSigType22=Digital -OutputCue23=Item 12 Pressed -OutputSigType23=Digital -OutputCue24=Item 13 Pressed -OutputSigType24=Digital -OutputCue25=Item 14 Pressed -OutputSigType25=Digital -OutputCue26=Item 15 Pressed -OutputSigType26=Digital -OutputCue27=Item 16 Pressed -OutputSigType27=Digital -OutputCue28=Item 17 Pressed -OutputSigType28=Digital -OutputCue29=Item 18 Pressed -OutputSigType29=Digital -OutputCue30=Item 19 Pressed -OutputSigType30=Digital -OutputCue31=Item 20 Pressed -OutputSigType31=Digital -OutputCue32=Item 21 Pressed -OutputSigType32=Digital -OutputCue33=Item 22 Pressed -OutputSigType33=Digital -OutputCue34=Item 23 Pressed -OutputSigType34=Digital -OutputCue35=Item 24 Pressed -OutputSigType35=Digital -OutputCue36=Item 25 Pressed -OutputSigType36=Digital -OutputCue37=Item 26 Pressed -OutputSigType37=Digital -OutputCue38=Item 27 Pressed -OutputSigType38=Digital -OutputCue39=Item 28 Pressed -OutputSigType39=Digital -OutputCue40=Item 29 Pressed -OutputSigType40=Digital -OutputCue41=Item 30 Pressed -OutputSigType41=Digital -OutputCue42=Item 31 Pressed -OutputSigType42=Digital -OutputCue43=Item 32 Pressed -OutputSigType43=Digital -OutputCue44=Item 33 Pressed -OutputSigType44=Digital -OutputCue45=Item 34 Pressed -OutputSigType45=Digital -OutputCue46=Item 35 Pressed -OutputSigType46=Digital -OutputCue47=Item 36 Pressed -OutputSigType47=Digital -OutputCue48=Item 37 Pressed -OutputSigType48=Digital -OutputCue49=Item 38 Pressed -OutputSigType49=Digital -OutputCue50=Item 39 Pressed -OutputSigType50=Digital -OutputCue51=Item 40 Pressed -OutputSigType51=Digital -OutputCue52=Item 41 Pressed -OutputSigType52=Digital -OutputCue53=Item 42 Pressed -OutputSigType53=Digital -OutputCue54=Item 43 Pressed -OutputSigType54=Digital -OutputCue55=Item 44 Pressed -OutputSigType55=Digital -OutputCue56=Item 45 Pressed -OutputSigType56=Digital -OutputCue57=Item 46 Pressed -OutputSigType57=Digital -OutputCue58=Item 47 Pressed -OutputSigType58=Digital -OutputCue59=Item 48 Pressed -OutputSigType59=Digital -OutputCue60=Item 49 Pressed -OutputSigType60=Digital -OutputCue61=Item 50 Pressed -OutputSigType61=Digital -OutputCue62=Item 51 Pressed -OutputSigType62=Digital -OutputCue63=Item 52 Pressed -OutputSigType63=Digital -OutputCue64=Item 53 Pressed -OutputSigType64=Digital -OutputCue65=Item 54 Pressed -OutputSigType65=Digital -OutputCue66=Item 55 Pressed -OutputSigType66=Digital -OutputCue67=Item 56 Pressed -OutputSigType67=Digital -OutputCue68=Item 57 Pressed -OutputSigType68=Digital -OutputCue69=Item 58 Pressed -OutputSigType69=Digital -OutputCue70=Item 59 Pressed -OutputSigType70=Digital -OutputCue71=Item 60 Pressed -OutputSigType71=Digital -OutputCue72=Item 61 Pressed -OutputSigType72=Digital -OutputCue73=Item 62 Pressed -OutputSigType73=Digital -OutputCue74=Item 63 Pressed -OutputSigType74=Digital -OutputCue75=Item 64 Pressed -OutputSigType75=Digital -OutputCue76=Item 65 Pressed -OutputSigType76=Digital -OutputCue77=Item 66 Pressed -OutputSigType77=Digital -OutputCue78=Item 67 Pressed -OutputSigType78=Digital -OutputCue79=Item 68 Pressed -OutputSigType79=Digital -OutputCue80=Item 69 Pressed -OutputSigType80=Digital -OutputCue81=Item 70 Pressed -OutputSigType81=Digital -OutputCue82=Item 71 Pressed -OutputSigType82=Digital -OutputCue83=Item 72 Pressed -OutputSigType83=Digital -OutputCue84=Item 73 Pressed -OutputSigType84=Digital -OutputCue85=Item 74 Pressed -OutputSigType85=Digital -OutputCue86=Item 75 Pressed -OutputSigType86=Digital -OutputCue87=Item 76 Pressed -OutputSigType87=Digital -OutputCue88=Item 77 Pressed -OutputSigType88=Digital -OutputCue89=Item 78 Pressed -OutputSigType89=Digital -OutputCue90=Item 79 Pressed -OutputSigType90=Digital -OutputCue91=Item 80 Pressed -OutputSigType91=Digital -OutputCue92=Item 81 Pressed -OutputSigType92=Digital -OutputCue93=Item 82 Pressed -OutputSigType93=Digital -OutputCue94=Item 83 Pressed -OutputSigType94=Digital -OutputCue95=Item 84 Pressed -OutputSigType95=Digital -OutputCue96=Item 85 Pressed -OutputSigType96=Digital -OutputCue97=Item 86 Pressed -OutputSigType97=Digital -OutputCue98=Item 87 Pressed -OutputSigType98=Digital -OutputCue99=Item 88 Pressed -OutputSigType99=Digital -OutputCue100=Item 89 Pressed -OutputSigType100=Digital -OutputCue101=Item 90 Pressed -OutputSigType101=Digital -OutputCue102=Item 91 Pressed -OutputSigType102=Digital -OutputCue103=Item 92 Pressed -OutputSigType103=Digital -OutputCue104=Item 93 Pressed -OutputSigType104=Digital -OutputCue105=Item 94 Pressed -OutputSigType105=Digital -OutputCue106=Item 95 Pressed -OutputSigType106=Digital -OutputCue107=Item 96 Pressed -OutputSigType107=Digital -OutputCue108=Item 97 Pressed -OutputSigType108=Digital -OutputCue109=Item 98 Pressed -OutputSigType109=Digital -OutputCue110=Item 99 Pressed -OutputSigType110=Digital -OutputCue111=Item 100 Pressed -OutputSigType111=Digital -OutputCue112=Item 101 Pressed -OutputSigType112=Digital -OutputCue113=Item 102 Pressed -OutputSigType113=Digital -OutputCue114=Item 103 Pressed -OutputSigType114=Digital -OutputCue115=Item 104 Pressed -OutputSigType115=Digital -OutputCue116=Item 105 Pressed -OutputSigType116=Digital -OutputCue117=Item 106 Pressed -OutputSigType117=Digital -OutputCue118=Item 107 Pressed -OutputSigType118=Digital -OutputCue119=Item 108 Pressed -OutputSigType119=Digital -OutputCue120=Item 109 Pressed -OutputSigType120=Digital -OutputCue121=Item 110 Pressed -OutputSigType121=Digital -OutputCue122=Item 111 Pressed -OutputSigType122=Digital -OutputCue123=Item 112 Pressed -OutputSigType123=Digital -OutputCue124=Item 113 Pressed -OutputSigType124=Digital -OutputCue125=Item 114 Pressed -OutputSigType125=Digital -OutputCue126=Item 115 Pressed -OutputSigType126=Digital -OutputCue127=Item 116 Pressed -OutputSigType127=Digital -OutputCue128=Item 117 Pressed -OutputSigType128=Digital -OutputCue129=Item 118 Pressed -OutputSigType129=Digital -OutputCue130=Item 119 Pressed -OutputSigType130=Digital -OutputCue131=Item 120 Pressed -OutputSigType131=Digital -OutputCue132=Item 121 Pressed -OutputSigType132=Digital -OutputCue133=Item 122 Pressed -OutputSigType133=Digital -OutputCue134=Item 123 Pressed -OutputSigType134=Digital -OutputCue135=Item 124 Pressed -OutputSigType135=Digital -OutputCue136=Item 125 Pressed -OutputSigType136=Digital -OutputCue137=Item 126 Pressed -OutputSigType137=Digital -OutputCue138=Item 127 Pressed -OutputSigType138=Digital -OutputCue139=Item 128 Pressed -OutputSigType139=Digital -OutputCue140=Item 129 Pressed -OutputSigType140=Digital -OutputCue141=Item 130 Pressed -OutputSigType141=Digital -OutputCue142=Item 131 Pressed -OutputSigType142=Digital -OutputCue143=Item 132 Pressed -OutputSigType143=Digital -OutputCue144=Item 133 Pressed -OutputSigType144=Digital -OutputCue145=Item 134 Pressed -OutputSigType145=Digital -OutputCue146=Item 135 Pressed -OutputSigType146=Digital -OutputCue147=Item 136 Pressed -OutputSigType147=Digital -OutputCue148=Item 137 Pressed -OutputSigType148=Digital -OutputCue149=Item 138 Pressed -OutputSigType149=Digital -OutputCue150=Item 139 Pressed -OutputSigType150=Digital -OutputCue151=Item 140 Pressed -OutputSigType151=Digital -OutputCue152=Item 141 Pressed -OutputSigType152=Digital -OutputCue153=Item 142 Pressed -OutputSigType153=Digital -OutputCue154=Item 143 Pressed -OutputSigType154=Digital -OutputCue155=Item 144 Pressed -OutputSigType155=Digital -OutputCue156=Item 145 Pressed -OutputSigType156=Digital -OutputCue157=Item 146 Pressed -OutputSigType157=Digital -OutputCue158=Item 147 Pressed -OutputSigType158=Digital -OutputCue159=Item 148 Pressed -OutputSigType159=Digital -OutputCue160=Item 149 Pressed -OutputSigType160=Digital -OutputCue161=Item 150 Pressed -OutputSigType161=Digital -OutputCue162=Item 151 Pressed -OutputSigType162=Digital -OutputCue163=Item 152 Pressed -OutputSigType163=Digital -OutputCue164=Item 153 Pressed -OutputSigType164=Digital -OutputCue165=Item 154 Pressed -OutputSigType165=Digital -OutputCue166=Item 155 Pressed -OutputSigType166=Digital -OutputCue167=Item 156 Pressed -OutputSigType167=Digital -OutputCue168=Item 157 Pressed -OutputSigType168=Digital -OutputCue169=Item 158 Pressed -OutputSigType169=Digital -OutputCue170=Item 159 Pressed -OutputSigType170=Digital -OutputCue171=Item 160 Pressed -OutputSigType171=Digital -OutputCue172=Item 161 Pressed -OutputSigType172=Digital -OutputCue173=Item 162 Pressed -OutputSigType173=Digital -OutputCue174=Item 163 Pressed -OutputSigType174=Digital -OutputCue175=Item 164 Pressed -OutputSigType175=Digital -OutputCue176=Item 165 Pressed -OutputSigType176=Digital -OutputCue177=Item 166 Pressed -OutputSigType177=Digital -OutputCue178=Item 167 Pressed -OutputSigType178=Digital -OutputCue179=Item 168 Pressed -OutputSigType179=Digital -OutputCue180=Item 169 Pressed -OutputSigType180=Digital -OutputCue181=Item 170 Pressed -OutputSigType181=Digital -OutputCue182=Item 171 Pressed -OutputSigType182=Digital -OutputCue183=Item 172 Pressed -OutputSigType183=Digital -OutputCue184=Item 173 Pressed -OutputSigType184=Digital -OutputCue185=Item 174 Pressed -OutputSigType185=Digital -OutputCue186=Item 175 Pressed -OutputSigType186=Digital -OutputCue187=Item 176 Pressed -OutputSigType187=Digital -OutputCue188=Item 177 Pressed -OutputSigType188=Digital -OutputCue189=Item 178 Pressed -OutputSigType189=Digital -OutputCue190=Item 179 Pressed -OutputSigType190=Digital -OutputCue191=Item 180 Pressed -OutputSigType191=Digital -OutputCue192=Item 181 Pressed -OutputSigType192=Digital -OutputCue193=Item 182 Pressed -OutputSigType193=Digital -OutputCue194=Item 183 Pressed -OutputSigType194=Digital -OutputCue195=Item 184 Pressed -OutputSigType195=Digital -OutputCue196=Item 185 Pressed -OutputSigType196=Digital -OutputCue197=Item 186 Pressed -OutputSigType197=Digital -OutputCue198=Item 187 Pressed -OutputSigType198=Digital -OutputCue199=Item 188 Pressed -OutputSigType199=Digital -OutputCue200=Item 189 Pressed -OutputSigType200=Digital -OutputCue201=Item 190 Pressed -OutputSigType201=Digital -OutputCue202=Item 191 Pressed -OutputSigType202=Digital -OutputCue203=Item 192 Pressed -OutputSigType203=Digital -OutputCue204=Item 193 Pressed -OutputSigType204=Digital -OutputCue205=Item 194 Pressed -OutputSigType205=Digital -OutputCue206=Item 195 Pressed -OutputSigType206=Digital -OutputCue207=Item 196 Pressed -OutputSigType207=Digital -OutputCue208=Item 197 Pressed -OutputSigType208=Digital -OutputCue209=Item 198 Pressed -OutputSigType209=Digital -OutputCue210=Item 199 Pressed -OutputSigType210=Digital -OutputCue211=Item 200 Pressed -OutputSigType211=Digital -OutputCue212=Item 201 Pressed -OutputSigType212=Digital -OutputCue213=Item 202 Pressed -OutputSigType213=Digital -OutputCue214=Item 203 Pressed -OutputSigType214=Digital -OutputCue215=Item 204 Pressed -OutputSigType215=Digital -OutputCue216=Item 205 Pressed -OutputSigType216=Digital -OutputCue217=Item 206 Pressed -OutputSigType217=Digital -OutputCue218=Item 207 Pressed -OutputSigType218=Digital -OutputCue219=Item 208 Pressed -OutputSigType219=Digital -OutputCue220=Item 209 Pressed -OutputSigType220=Digital -OutputCue221=Item 210 Pressed -OutputSigType221=Digital -OutputCue222=Item 211 Pressed -OutputSigType222=Digital -OutputCue223=Item 212 Pressed -OutputSigType223=Digital -OutputCue224=Item 213 Pressed -OutputSigType224=Digital -OutputCue225=Item 214 Pressed -OutputSigType225=Digital -OutputCue226=Item 215 Pressed -OutputSigType226=Digital -OutputCue227=Item 216 Pressed -OutputSigType227=Digital -OutputCue228=Item 217 Pressed -OutputSigType228=Digital -OutputCue229=Item 218 Pressed -OutputSigType229=Digital -OutputCue230=Item 219 Pressed -OutputSigType230=Digital -OutputCue231=Item 220 Pressed -OutputSigType231=Digital -OutputCue232=Item 221 Pressed -OutputSigType232=Digital -OutputCue233=Item 222 Pressed -OutputSigType233=Digital -OutputCue234=Item 223 Pressed -OutputSigType234=Digital -OutputCue235=Item 224 Pressed -OutputSigType235=Digital -OutputCue236=Item 225 Pressed -OutputSigType236=Digital -OutputCue237=Item 226 Pressed -OutputSigType237=Digital -OutputCue238=Item 227 Pressed -OutputSigType238=Digital -OutputCue239=Item 228 Pressed -OutputSigType239=Digital -OutputCue240=Item 229 Pressed -OutputSigType240=Digital -OutputCue241=Item 230 Pressed -OutputSigType241=Digital -OutputCue242=Item 231 Pressed -OutputSigType242=Digital -OutputCue243=Item 232 Pressed -OutputSigType243=Digital -OutputCue244=Item 233 Pressed -OutputSigType244=Digital -OutputCue245=Item 234 Pressed -OutputSigType245=Digital -OutputCue246=Item 235 Pressed -OutputSigType246=Digital -OutputCue247=Item 236 Pressed -OutputSigType247=Digital -OutputCue248=Item 237 Pressed -OutputSigType248=Digital -OutputCue249=Item 238 Pressed -OutputSigType249=Digital -OutputCue250=Item 239 Pressed -OutputSigType250=Digital -OutputCue251=Item 240 Pressed -OutputSigType251=Digital -OutputCue252=Item 241 Pressed -OutputSigType252=Digital -OutputCue253=Item 242 Pressed -OutputSigType253=Digital -OutputCue254=Item 243 Pressed -OutputSigType254=Digital -OutputCue255=Item 244 Pressed -OutputSigType255=Digital -OutputCue256=Item 245 Pressed -OutputSigType256=Digital -OutputCue257=Item 246 Pressed -OutputSigType257=Digital -OutputCue258=Item 247 Pressed -OutputSigType258=Digital -OutputCue259=Item 248 Pressed -OutputSigType259=Digital -OutputCue260=Item 249 Pressed -OutputSigType260=Digital -OutputCue261=Item 250 Pressed -OutputSigType261=Digital -OutputCue262=Item 251 Pressed -OutputSigType262=Digital -OutputCue263=Item 252 Pressed -OutputSigType263=Digital -OutputCue264=Item 253 Pressed -OutputSigType264=Digital -OutputCue265=Item 254 Pressed -OutputSigType265=Digital -OutputCue266=Item 255 Pressed -OutputSigType266=Digital -OutputCue267=[~UNUSED2~] -OutputSigType267=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Press -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Enable -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED3~] -OutputSigType2034=Digital -OutputCue2035=[~UNUSED3~] -OutputSigType2035=Digital -OutputCue2036=[~UNUSED3~] -OutputSigType2036=Digital -OutputCue2037=[~UNUSED3~] -OutputSigType2037=Digital -OutputCue2038=[~UNUSED3~] -OutputSigType2038=Digital -OutputCue2039=[~UNUSED3~] -OutputSigType2039=Digital -OutputCue2040=[~UNUSED3~] -OutputSigType2040=Digital -OutputCue2041=[~UNUSED3~] -OutputSigType2041=Digital -OutputCue2042=[~UNUSED3~] -OutputSigType2042=Digital -OutputCue2043=[~UNUSED3~] -OutputSigType2043=Digital -OutputCue2044=[~UNUSED3~] -OutputSigType2044=Digital -OutputCue2045=[~UNUSED3~] -OutputSigType2045=Digital -OutputCue2046=[~UNUSED3~] -OutputSigType2046=Digital -OutputCue2047=[~UNUSED3~] -OutputSigType2047=Digital -OutputCue2048=[~UNUSED3~] -OutputSigType2048=Digital -OutputCue2049=[~UNUSED3~] -OutputSigType2049=Digital -OutputCue2050=[~UNUSED3~] -OutputSigType2050=Digital -OutputCue2051=[~UNUSED3~] -OutputSigType2051=Digital -OutputCue2052=[~UNUSED3~] -OutputSigType2052=Digital -OutputCue2053=[~UNUSED3~] -OutputSigType2053=Digital -OutputCue2054=[~UNUSED3~] -OutputSigType2054=Digital -OutputCue2055=[~UNUSED3~] -OutputSigType2055=Digital -OutputCue2056=[~UNUSED3~] -OutputSigType2056=Digital -OutputCue2057=[~UNUSED3~] -OutputSigType2057=Digital -OutputCue2058=[~UNUSED3~] -OutputSigType2058=Digital -OutputCue2059=[~UNUSED3~] -OutputSigType2059=Digital -OutputCue2060=[~UNUSED3~] -OutputSigType2060=Digital -OutputCue2061=[~UNUSED3~] -OutputSigType2061=Digital -OutputCue2062=[~UNUSED3~] -OutputSigType2062=Digital -OutputCue2063=[~UNUSED3~] -OutputSigType2063=Digital -OutputCue2064=[~UNUSED3~] -OutputSigType2064=Digital -OutputCue2065=[~UNUSED3~] -OutputSigType2065=Digital -OutputCue2066=[~UNUSED3~] -OutputSigType2066=Digital -OutputCue2067=[~UNUSED3~] -OutputSigType2067=Digital -OutputCue2068=[~UNUSED3~] -OutputSigType2068=Digital -OutputCue2069=[~UNUSED3~] -OutputSigType2069=Digital -OutputCue2070=[~UNUSED3~] -OutputSigType2070=Digital -OutputCue2071=[~UNUSED3~] -OutputSigType2071=Digital -OutputCue2072=[~UNUSED3~] -OutputSigType2072=Digital -OutputCue2073=[~UNUSED3~] -OutputSigType2073=Digital -OutputCue2074=[~UNUSED3~] -OutputSigType2074=Digital -OutputCue2075=[~UNUSED3~] -OutputSigType2075=Digital -OutputCue2076=[~UNUSED3~] -OutputSigType2076=Digital -OutputCue2077=[~UNUSED3~] -OutputSigType2077=Digital -OutputCue2078=[~UNUSED3~] -OutputSigType2078=Digital -OutputCue2079=[~UNUSED3~] -OutputSigType2079=Digital -OutputCue2080=[~UNUSED3~] -OutputSigType2080=Digital -OutputCue2081=[~UNUSED3~] -OutputSigType2081=Digital -OutputCue2082=[~UNUSED3~] -OutputSigType2082=Digital -OutputCue2083=[~UNUSED3~] -OutputSigType2083=Digital -OutputCue2084=[~UNUSED3~] -OutputSigType2084=Digital -OutputCue2085=[~UNUSED3~] -OutputSigType2085=Digital -OutputCue2086=[~UNUSED3~] -OutputSigType2086=Digital -OutputCue2087=[~UNUSED3~] -OutputSigType2087=Digital -OutputCue2088=[~UNUSED3~] -OutputSigType2088=Digital -OutputCue2089=[~UNUSED3~] -OutputSigType2089=Digital -OutputCue2090=[~UNUSED3~] -OutputSigType2090=Digital -OutputCue2091=[~UNUSED3~] -OutputSigType2091=Digital -OutputCue2092=[~UNUSED3~] -OutputSigType2092=Digital -OutputCue2093=[~UNUSED3~] -OutputSigType2093=Digital -OutputCue2094=[~UNUSED3~] -OutputSigType2094=Digital -OutputCue2095=[~UNUSED3~] -OutputSigType2095=Digital -OutputCue2096=[~UNUSED3~] -OutputSigType2096=Digital -OutputCue2097=[~UNUSED3~] -OutputSigType2097=Digital -OutputCue2098=[~UNUSED3~] -OutputSigType2098=Digital -OutputCue2099=[~UNUSED3~] -OutputSigType2099=Digital -OutputCue2100=[~UNUSED3~] -OutputSigType2100=Digital -OutputCue2101=[~UNUSED3~] -OutputSigType2101=Digital -OutputCue2102=[~UNUSED3~] -OutputSigType2102=Digital -OutputCue2103=[~UNUSED3~] -OutputSigType2103=Digital -OutputCue2104=[~UNUSED3~] -OutputSigType2104=Digital -OutputCue2105=[~UNUSED3~] -OutputSigType2105=Digital -OutputCue2106=[~UNUSED3~] -OutputSigType2106=Digital -OutputCue2107=[~UNUSED3~] -OutputSigType2107=Digital -OutputCue2108=[~UNUSED3~] -OutputSigType2108=Digital -OutputCue2109=[~UNUSED3~] -OutputSigType2109=Digital -OutputCue2110=[~UNUSED3~] -OutputSigType2110=Digital -OutputCue2111=[~UNUSED3~] -OutputSigType2111=Digital -OutputCue2112=[~UNUSED3~] -OutputSigType2112=Digital -OutputCue2113=[~UNUSED3~] -OutputSigType2113=Digital -OutputCue2114=[~UNUSED3~] -OutputSigType2114=Digital -OutputCue2115=[~UNUSED3~] -OutputSigType2115=Digital -OutputCue2116=[~UNUSED3~] -OutputSigType2116=Digital -OutputCue2117=[~UNUSED3~] -OutputSigType2117=Digital -OutputCue2118=[~UNUSED3~] -OutputSigType2118=Digital -OutputCue2119=[~UNUSED3~] -OutputSigType2119=Digital -OutputCue2120=[~UNUSED3~] -OutputSigType2120=Digital -OutputCue2121=[~UNUSED3~] -OutputSigType2121=Digital -OutputCue2122=[~UNUSED3~] -OutputSigType2122=Digital -OutputCue2123=[~UNUSED3~] -OutputSigType2123=Digital -OutputCue2124=[~UNUSED3~] -OutputSigType2124=Digital -OutputCue2125=[~UNUSED3~] -OutputSigType2125=Digital -OutputCue2126=[~UNUSED3~] -OutputSigType2126=Digital -OutputCue2127=[~UNUSED3~] -OutputSigType2127=Digital -OutputCue2128=[~UNUSED3~] -OutputSigType2128=Digital -OutputCue2129=[~UNUSED3~] -OutputSigType2129=Digital -OutputCue2130=[~UNUSED3~] -OutputSigType2130=Digital -OutputCue2131=[~UNUSED3~] -OutputSigType2131=Digital -OutputCue2132=[~UNUSED3~] -OutputSigType2132=Digital -OutputCue2133=[~UNUSED3~] -OutputSigType2133=Digital -OutputCue2134=[~UNUSED3~] -OutputSigType2134=Digital -OutputCue2135=[~UNUSED3~] -OutputSigType2135=Digital -OutputCue2136=[~UNUSED3~] -OutputSigType2136=Digital -OutputCue2137=[~UNUSED3~] -OutputSigType2137=Digital -OutputCue2138=[~UNUSED3~] -OutputSigType2138=Digital -OutputCue2139=[~UNUSED3~] -OutputSigType2139=Digital -OutputCue2140=[~UNUSED3~] -OutputSigType2140=Digital -OutputCue2141=[~UNUSED3~] -OutputSigType2141=Digital -OutputCue2142=[~UNUSED3~] -OutputSigType2142=Digital -OutputCue2143=[~UNUSED3~] -OutputSigType2143=Digital -OutputCue2144=[~UNUSED3~] -OutputSigType2144=Digital -OutputCue2145=[~UNUSED3~] -OutputSigType2145=Digital -OutputCue2146=[~UNUSED3~] -OutputSigType2146=Digital -OutputCue2147=[~UNUSED3~] -OutputSigType2147=Digital -OutputCue2148=[~UNUSED3~] -OutputSigType2148=Digital -OutputCue2149=[~UNUSED3~] -OutputSigType2149=Digital -OutputCue2150=[~UNUSED3~] -OutputSigType2150=Digital -OutputCue2151=[~UNUSED3~] -OutputSigType2151=Digital -OutputCue2152=[~UNUSED3~] -OutputSigType2152=Digital -OutputCue2153=[~UNUSED3~] -OutputSigType2153=Digital -OutputCue2154=[~UNUSED3~] -OutputSigType2154=Digital -OutputCue2155=[~UNUSED3~] -OutputSigType2155=Digital -OutputCue2156=[~UNUSED3~] -OutputSigType2156=Digital -OutputCue2157=[~UNUSED3~] -OutputSigType2157=Digital -OutputCue2158=[~UNUSED3~] -OutputSigType2158=Digital -OutputCue2159=[~UNUSED3~] -OutputSigType2159=Digital -OutputCue2160=[~UNUSED3~] -OutputSigType2160=Digital -OutputCue2161=[~UNUSED3~] -OutputSigType2161=Digital -OutputCue2162=[~UNUSED3~] -OutputSigType2162=Digital -OutputCue2163=[~UNUSED3~] -OutputSigType2163=Digital -OutputCue2164=[~UNUSED3~] -OutputSigType2164=Digital -OutputCue2165=[~UNUSED3~] -OutputSigType2165=Digital -OutputCue2166=[~UNUSED3~] -OutputSigType2166=Digital -OutputCue2167=[~UNUSED3~] -OutputSigType2167=Digital -OutputCue2168=[~UNUSED3~] -OutputSigType2168=Digital -OutputCue2169=[~UNUSED3~] -OutputSigType2169=Digital -OutputCue2170=[~UNUSED3~] -OutputSigType2170=Digital -OutputCue2171=[~UNUSED3~] -OutputSigType2171=Digital -OutputCue2172=[~UNUSED3~] -OutputSigType2172=Digital -OutputCue2173=[~UNUSED3~] -OutputSigType2173=Digital -OutputCue2174=[~UNUSED3~] -OutputSigType2174=Digital -OutputCue2175=[~UNUSED3~] -OutputSigType2175=Digital -OutputCue2176=[~UNUSED3~] -OutputSigType2176=Digital -OutputCue2177=[~UNUSED3~] -OutputSigType2177=Digital -OutputCue2178=[~UNUSED3~] -OutputSigType2178=Digital -OutputCue2179=[~UNUSED3~] -OutputSigType2179=Digital -OutputCue2180=[~UNUSED3~] -OutputSigType2180=Digital -OutputCue2181=[~UNUSED3~] -OutputSigType2181=Digital -OutputCue2182=[~UNUSED3~] -OutputSigType2182=Digital -OutputCue2183=[~UNUSED3~] -OutputSigType2183=Digital -OutputCue2184=[~UNUSED3~] -OutputSigType2184=Digital -OutputCue2185=[~UNUSED3~] -OutputSigType2185=Digital -OutputCue2186=[~UNUSED3~] -OutputSigType2186=Digital -OutputCue2187=[~UNUSED3~] -OutputSigType2187=Digital -OutputCue2188=[~UNUSED3~] -OutputSigType2188=Digital -OutputCue2189=[~UNUSED3~] -OutputSigType2189=Digital -OutputCue2190=[~UNUSED3~] -OutputSigType2190=Digital -OutputCue2191=[~UNUSED3~] -OutputSigType2191=Digital -OutputCue2192=[~UNUSED3~] -OutputSigType2192=Digital -OutputCue2193=[~UNUSED3~] -OutputSigType2193=Digital -OutputCue2194=[~UNUSED3~] -OutputSigType2194=Digital -OutputCue2195=[~UNUSED3~] -OutputSigType2195=Digital -OutputCue2196=[~UNUSED3~] -OutputSigType2196=Digital -OutputCue2197=[~UNUSED3~] -OutputSigType2197=Digital -OutputCue2198=[~UNUSED3~] -OutputSigType2198=Digital -OutputCue2199=[~UNUSED3~] -OutputSigType2199=Digital -OutputCue2200=[~UNUSED3~] -OutputSigType2200=Digital -OutputCue2201=[~UNUSED3~] -OutputSigType2201=Digital -OutputCue2202=[~UNUSED3~] -OutputSigType2202=Digital -OutputCue2203=[~UNUSED3~] -OutputSigType2203=Digital -OutputCue2204=[~UNUSED3~] -OutputSigType2204=Digital -OutputCue2205=[~UNUSED3~] -OutputSigType2205=Digital -OutputCue2206=[~UNUSED3~] -OutputSigType2206=Digital -OutputCue2207=[~UNUSED3~] -OutputSigType2207=Digital -OutputCue2208=[~UNUSED3~] -OutputSigType2208=Digital -OutputCue2209=[~UNUSED3~] -OutputSigType2209=Digital -OutputCue2210=[~UNUSED3~] -OutputSigType2210=Digital -OutputCue2211=[~UNUSED3~] -OutputSigType2211=Digital -OutputCue2212=[~UNUSED3~] -OutputSigType2212=Digital -OutputCue2213=[~UNUSED3~] -OutputSigType2213=Digital -OutputCue2214=[~UNUSED3~] -OutputSigType2214=Digital -OutputCue2215=[~UNUSED3~] -OutputSigType2215=Digital -OutputCue2216=[~UNUSED3~] -OutputSigType2216=Digital -OutputCue2217=[~UNUSED3~] -OutputSigType2217=Digital -OutputCue2218=[~UNUSED3~] -OutputSigType2218=Digital -OutputCue2219=[~UNUSED3~] -OutputSigType2219=Digital -OutputCue2220=[~UNUSED3~] -OutputSigType2220=Digital -OutputCue2221=[~UNUSED3~] -OutputSigType2221=Digital -OutputCue2222=[~UNUSED3~] -OutputSigType2222=Digital -OutputCue2223=[~UNUSED3~] -OutputSigType2223=Digital -OutputCue2224=[~UNUSED3~] -OutputSigType2224=Digital -OutputCue2225=[~UNUSED3~] -OutputSigType2225=Digital -OutputCue2226=[~UNUSED3~] -OutputSigType2226=Digital -OutputCue2227=[~UNUSED3~] -OutputSigType2227=Digital -OutputCue2228=[~UNUSED3~] -OutputSigType2228=Digital -OutputCue2229=[~UNUSED3~] -OutputSigType2229=Digital -OutputCue2230=[~UNUSED3~] -OutputSigType2230=Digital -OutputCue2231=[~UNUSED3~] -OutputSigType2231=Digital -OutputCue2232=[~UNUSED3~] -OutputSigType2232=Digital -OutputCue2233=[~UNUSED3~] -OutputSigType2233=Digital -OutputCue2234=[~UNUSED3~] -OutputSigType2234=Digital -OutputCue2235=[~UNUSED3~] -OutputSigType2235=Digital -OutputCue2236=[~UNUSED3~] -OutputSigType2236=Digital -OutputCue2237=[~UNUSED3~] -OutputSigType2237=Digital -OutputCue2238=[~UNUSED3~] -OutputSigType2238=Digital -OutputCue2239=[~UNUSED3~] -OutputSigType2239=Digital -OutputCue2240=[~UNUSED3~] -OutputSigType2240=Digital -OutputCue2241=[~UNUSED3~] -OutputSigType2241=Digital -OutputCue2242=[~UNUSED3~] -OutputSigType2242=Digital -OutputCue2243=[~UNUSED3~] -OutputSigType2243=Digital -OutputCue2244=[~UNUSED3~] -OutputSigType2244=Digital -OutputCue2245=[~UNUSED3~] -OutputSigType2245=Digital -OutputCue2246=[~UNUSED3~] -OutputSigType2246=Digital -OutputCue2247=[~UNUSED3~] -OutputSigType2247=Digital -OutputCue2248=[~UNUSED3~] -OutputSigType2248=Digital -OutputCue2249=[~UNUSED3~] -OutputSigType2249=Digital -OutputCue2250=[~UNUSED3~] -OutputSigType2250=Digital -OutputCue2251=[~UNUSED3~] -OutputSigType2251=Digital -OutputCue2252=[~UNUSED3~] -OutputSigType2252=Digital -OutputCue2253=[~UNUSED3~] -OutputSigType2253=Digital -OutputCue2254=[~UNUSED3~] -OutputSigType2254=Digital -OutputCue2255=[~UNUSED3~] -OutputSigType2255=Digital -OutputCue2256=[~UNUSED3~] -OutputSigType2256=Digital -OutputCue2257=[~UNUSED3~] -OutputSigType2257=Digital -OutputCue2258=[~UNUSED3~] -OutputSigType2258=Digital -OutputCue2259=[~UNUSED3~] -OutputSigType2259=Digital -OutputCue2260=[~UNUSED3~] -OutputSigType2260=Digital -OutputCue2261=[~UNUSED3~] -OutputSigType2261=Digital -OutputCue2262=[~UNUSED3~] -OutputSigType2262=Digital -OutputCue2263=[~UNUSED3~] -OutputSigType2263=Digital -OutputCue2264=[~UNUSED3~] -OutputSigType2264=Digital -OutputCue2265=[~UNUSED3~] -OutputSigType2265=Digital -OutputCue2266=[~UNUSED3~] -OutputSigType2266=Digital -OutputCue2267=[~UNUSED3~] -OutputSigType2267=Digital -OutputCue2268=[~UNUSED3~] -OutputSigType2268=Digital -OutputCue2269=[~UNUSED2~] -OutputSigType2269=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Enable -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Visible -OutputSigType4015=Digital -OutputCue4016=[~UNUSED3~] -OutputSigType4016=Digital -OutputCue4017=[~UNUSED3~] -OutputSigType4017=Digital -OutputCue4018=[~UNUSED3~] -OutputSigType4018=Digital -OutputCue4019=[~UNUSED3~] -OutputSigType4019=Digital -OutputCue4020=[~UNUSED3~] -OutputSigType4020=Digital -OutputCue4021=[~UNUSED3~] -OutputSigType4021=Digital -OutputCue4022=[~UNUSED3~] -OutputSigType4022=Digital -OutputCue4023=[~UNUSED3~] -OutputSigType4023=Digital -OutputCue4024=[~UNUSED3~] -OutputSigType4024=Digital -OutputCue4025=[~UNUSED3~] -OutputSigType4025=Digital -OutputCue4026=[~UNUSED3~] -OutputSigType4026=Digital -OutputCue4027=[~UNUSED3~] -OutputSigType4027=Digital -OutputCue4028=[~UNUSED3~] -OutputSigType4028=Digital -OutputCue4029=[~UNUSED3~] -OutputSigType4029=Digital -OutputCue4030=[~UNUSED3~] -OutputSigType4030=Digital -OutputCue4031=[~UNUSED3~] -OutputSigType4031=Digital -OutputCue4032=[~UNUSED3~] -OutputSigType4032=Digital -OutputCue4033=[~UNUSED3~] -OutputSigType4033=Digital -OutputCue4034=[~UNUSED3~] -OutputSigType4034=Digital -OutputCue4035=[~UNUSED3~] -OutputSigType4035=Digital -OutputCue4036=[~UNUSED3~] -OutputSigType4036=Digital -OutputCue4037=[~UNUSED3~] -OutputSigType4037=Digital -OutputCue4038=[~UNUSED3~] -OutputSigType4038=Digital -OutputCue4039=[~UNUSED3~] -OutputSigType4039=Digital -OutputCue4040=[~UNUSED3~] -OutputSigType4040=Digital -OutputCue4041=[~UNUSED3~] -OutputSigType4041=Digital -OutputCue4042=[~UNUSED3~] -OutputSigType4042=Digital -OutputCue4043=[~UNUSED3~] -OutputSigType4043=Digital -OutputCue4044=[~UNUSED3~] -OutputSigType4044=Digital -OutputCue4045=[~UNUSED3~] -OutputSigType4045=Digital -OutputCue4046=[~UNUSED3~] -OutputSigType4046=Digital -OutputCue4047=[~UNUSED3~] -OutputSigType4047=Digital -OutputCue4048=[~UNUSED3~] -OutputSigType4048=Digital -OutputCue4049=[~UNUSED3~] -OutputSigType4049=Digital -OutputCue4050=[~UNUSED3~] -OutputSigType4050=Digital -OutputCue4051=[~UNUSED3~] -OutputSigType4051=Digital -OutputCue4052=[~UNUSED3~] -OutputSigType4052=Digital -OutputCue4053=[~UNUSED3~] -OutputSigType4053=Digital -OutputCue4054=[~UNUSED3~] -OutputSigType4054=Digital -OutputCue4055=[~UNUSED3~] -OutputSigType4055=Digital -OutputCue4056=[~UNUSED3~] -OutputSigType4056=Digital -OutputCue4057=[~UNUSED3~] -OutputSigType4057=Digital -OutputCue4058=[~UNUSED3~] -OutputSigType4058=Digital -OutputCue4059=[~UNUSED3~] -OutputSigType4059=Digital -OutputCue4060=[~UNUSED3~] -OutputSigType4060=Digital -OutputCue4061=[~UNUSED3~] -OutputSigType4061=Digital -OutputCue4062=[~UNUSED3~] -OutputSigType4062=Digital -OutputCue4063=[~UNUSED3~] -OutputSigType4063=Digital -OutputCue4064=[~UNUSED3~] -OutputSigType4064=Digital -OutputCue4065=[~UNUSED3~] -OutputSigType4065=Digital -OutputCue4066=[~UNUSED3~] -OutputSigType4066=Digital -OutputCue4067=[~UNUSED3~] -OutputSigType4067=Digital -OutputCue4068=[~UNUSED3~] -OutputSigType4068=Digital -OutputCue4069=[~UNUSED3~] -OutputSigType4069=Digital -OutputCue4070=[~UNUSED3~] -OutputSigType4070=Digital -OutputCue4071=[~UNUSED3~] -OutputSigType4071=Digital -OutputCue4072=[~UNUSED3~] -OutputSigType4072=Digital -OutputCue4073=[~UNUSED3~] -OutputSigType4073=Digital -OutputCue4074=[~UNUSED3~] -OutputSigType4074=Digital -OutputCue4075=[~UNUSED3~] -OutputSigType4075=Digital -OutputCue4076=[~UNUSED3~] -OutputSigType4076=Digital -OutputCue4077=[~UNUSED3~] -OutputSigType4077=Digital -OutputCue4078=[~UNUSED3~] -OutputSigType4078=Digital -OutputCue4079=[~UNUSED3~] -OutputSigType4079=Digital -OutputCue4080=[~UNUSED3~] -OutputSigType4080=Digital -OutputCue4081=[~UNUSED3~] -OutputSigType4081=Digital -OutputCue4082=[~UNUSED3~] -OutputSigType4082=Digital -OutputCue4083=[~UNUSED3~] -OutputSigType4083=Digital -OutputCue4084=[~UNUSED3~] -OutputSigType4084=Digital -OutputCue4085=[~UNUSED3~] -OutputSigType4085=Digital -OutputCue4086=[~UNUSED3~] -OutputSigType4086=Digital -OutputCue4087=[~UNUSED3~] -OutputSigType4087=Digital -OutputCue4088=[~UNUSED3~] -OutputSigType4088=Digital -OutputCue4089=[~UNUSED3~] -OutputSigType4089=Digital -OutputCue4090=[~UNUSED3~] -OutputSigType4090=Digital -OutputCue4091=[~UNUSED3~] -OutputSigType4091=Digital -OutputCue4092=[~UNUSED3~] -OutputSigType4092=Digital -OutputCue4093=[~UNUSED3~] -OutputSigType4093=Digital -OutputCue4094=[~UNUSED3~] -OutputSigType4094=Digital -OutputCue4095=[~UNUSED3~] -OutputSigType4095=Digital -OutputCue4096=[~UNUSED3~] -OutputSigType4096=Digital -OutputCue4097=[~UNUSED3~] -OutputSigType4097=Digital -OutputCue4098=[~UNUSED3~] -OutputSigType4098=Digital -OutputCue4099=[~UNUSED3~] -OutputSigType4099=Digital -OutputCue4100=[~UNUSED3~] -OutputSigType4100=Digital -OutputCue4101=[~UNUSED3~] -OutputSigType4101=Digital -OutputCue4102=[~UNUSED3~] -OutputSigType4102=Digital -OutputCue4103=[~UNUSED3~] -OutputSigType4103=Digital -OutputCue4104=[~UNUSED3~] -OutputSigType4104=Digital -OutputCue4105=[~UNUSED3~] -OutputSigType4105=Digital -OutputCue4106=[~UNUSED3~] -OutputSigType4106=Digital -OutputCue4107=[~UNUSED3~] -OutputSigType4107=Digital -OutputCue4108=[~UNUSED3~] -OutputSigType4108=Digital -OutputCue4109=[~UNUSED3~] -OutputSigType4109=Digital -OutputCue4110=[~UNUSED3~] -OutputSigType4110=Digital -OutputCue4111=[~UNUSED3~] -OutputSigType4111=Digital -OutputCue4112=[~UNUSED3~] -OutputSigType4112=Digital -OutputCue4113=[~UNUSED3~] -OutputSigType4113=Digital -OutputCue4114=[~UNUSED3~] -OutputSigType4114=Digital -OutputCue4115=[~UNUSED3~] -OutputSigType4115=Digital -OutputCue4116=[~UNUSED3~] -OutputSigType4116=Digital -OutputCue4117=[~UNUSED3~] -OutputSigType4117=Digital -OutputCue4118=[~UNUSED3~] -OutputSigType4118=Digital -OutputCue4119=[~UNUSED3~] -OutputSigType4119=Digital -OutputCue4120=[~UNUSED3~] -OutputSigType4120=Digital -OutputCue4121=[~UNUSED3~] -OutputSigType4121=Digital -OutputCue4122=[~UNUSED3~] -OutputSigType4122=Digital -OutputCue4123=[~UNUSED3~] -OutputSigType4123=Digital -OutputCue4124=[~UNUSED3~] -OutputSigType4124=Digital -OutputCue4125=[~UNUSED3~] -OutputSigType4125=Digital -OutputCue4126=[~UNUSED3~] -OutputSigType4126=Digital -OutputCue4127=[~UNUSED3~] -OutputSigType4127=Digital -OutputCue4128=[~UNUSED3~] -OutputSigType4128=Digital -OutputCue4129=[~UNUSED3~] -OutputSigType4129=Digital -OutputCue4130=[~UNUSED3~] -OutputSigType4130=Digital -OutputCue4131=[~UNUSED3~] -OutputSigType4131=Digital -OutputCue4132=[~UNUSED3~] -OutputSigType4132=Digital -OutputCue4133=[~UNUSED3~] -OutputSigType4133=Digital -OutputCue4134=[~UNUSED3~] -OutputSigType4134=Digital -OutputCue4135=[~UNUSED3~] -OutputSigType4135=Digital -OutputCue4136=[~UNUSED3~] -OutputSigType4136=Digital -OutputCue4137=[~UNUSED3~] -OutputSigType4137=Digital -OutputCue4138=[~UNUSED3~] -OutputSigType4138=Digital -OutputCue4139=[~UNUSED3~] -OutputSigType4139=Digital -OutputCue4140=[~UNUSED3~] -OutputSigType4140=Digital -OutputCue4141=[~UNUSED3~] -OutputSigType4141=Digital -OutputCue4142=[~UNUSED3~] -OutputSigType4142=Digital -OutputCue4143=[~UNUSED3~] -OutputSigType4143=Digital -OutputCue4144=[~UNUSED3~] -OutputSigType4144=Digital -OutputCue4145=[~UNUSED3~] -OutputSigType4145=Digital -OutputCue4146=[~UNUSED3~] -OutputSigType4146=Digital -OutputCue4147=[~UNUSED3~] -OutputSigType4147=Digital -OutputCue4148=[~UNUSED3~] -OutputSigType4148=Digital -OutputCue4149=[~UNUSED3~] -OutputSigType4149=Digital -OutputCue4150=[~UNUSED3~] -OutputSigType4150=Digital -OutputCue4151=[~UNUSED3~] -OutputSigType4151=Digital -OutputCue4152=[~UNUSED3~] -OutputSigType4152=Digital -OutputCue4153=[~UNUSED3~] -OutputSigType4153=Digital -OutputCue4154=[~UNUSED3~] -OutputSigType4154=Digital -OutputCue4155=[~UNUSED3~] -OutputSigType4155=Digital -OutputCue4156=[~UNUSED3~] -OutputSigType4156=Digital -OutputCue4157=[~UNUSED3~] -OutputSigType4157=Digital -OutputCue4158=[~UNUSED3~] -OutputSigType4158=Digital -OutputCue4159=[~UNUSED3~] -OutputSigType4159=Digital -OutputCue4160=[~UNUSED3~] -OutputSigType4160=Digital -OutputCue4161=[~UNUSED3~] -OutputSigType4161=Digital -OutputCue4162=[~UNUSED3~] -OutputSigType4162=Digital -OutputCue4163=[~UNUSED3~] -OutputSigType4163=Digital -OutputCue4164=[~UNUSED3~] -OutputSigType4164=Digital -OutputCue4165=[~UNUSED3~] -OutputSigType4165=Digital -OutputCue4166=[~UNUSED3~] -OutputSigType4166=Digital -OutputCue4167=[~UNUSED3~] -OutputSigType4167=Digital -OutputCue4168=[~UNUSED3~] -OutputSigType4168=Digital -OutputCue4169=[~UNUSED3~] -OutputSigType4169=Digital -OutputCue4170=[~UNUSED3~] -OutputSigType4170=Digital -OutputCue4171=[~UNUSED3~] -OutputSigType4171=Digital -OutputCue4172=[~UNUSED3~] -OutputSigType4172=Digital -OutputCue4173=[~UNUSED3~] -OutputSigType4173=Digital -OutputCue4174=[~UNUSED3~] -OutputSigType4174=Digital -OutputCue4175=[~UNUSED3~] -OutputSigType4175=Digital -OutputCue4176=[~UNUSED3~] -OutputSigType4176=Digital -OutputCue4177=[~UNUSED3~] -OutputSigType4177=Digital -OutputCue4178=[~UNUSED3~] -OutputSigType4178=Digital -OutputCue4179=[~UNUSED3~] -OutputSigType4179=Digital -OutputCue4180=[~UNUSED3~] -OutputSigType4180=Digital -OutputCue4181=[~UNUSED3~] -OutputSigType4181=Digital -OutputCue4182=[~UNUSED3~] -OutputSigType4182=Digital -OutputCue4183=[~UNUSED3~] -OutputSigType4183=Digital -OutputCue4184=[~UNUSED3~] -OutputSigType4184=Digital -OutputCue4185=[~UNUSED3~] -OutputSigType4185=Digital -OutputCue4186=[~UNUSED3~] -OutputSigType4186=Digital -OutputCue4187=[~UNUSED3~] -OutputSigType4187=Digital -OutputCue4188=[~UNUSED3~] -OutputSigType4188=Digital -OutputCue4189=[~UNUSED3~] -OutputSigType4189=Digital -OutputCue4190=[~UNUSED3~] -OutputSigType4190=Digital -OutputCue4191=[~UNUSED3~] -OutputSigType4191=Digital -OutputCue4192=[~UNUSED3~] -OutputSigType4192=Digital -OutputCue4193=[~UNUSED3~] -OutputSigType4193=Digital -OutputCue4194=[~UNUSED3~] -OutputSigType4194=Digital -OutputCue4195=[~UNUSED3~] -OutputSigType4195=Digital -OutputCue4196=[~UNUSED3~] -OutputSigType4196=Digital -OutputCue4197=[~UNUSED3~] -OutputSigType4197=Digital -OutputCue4198=[~UNUSED3~] -OutputSigType4198=Digital -OutputCue4199=[~UNUSED3~] -OutputSigType4199=Digital -OutputCue4200=[~UNUSED3~] -OutputSigType4200=Digital -OutputCue4201=[~UNUSED3~] -OutputSigType4201=Digital -OutputCue4202=[~UNUSED3~] -OutputSigType4202=Digital -OutputCue4203=[~UNUSED3~] -OutputSigType4203=Digital -OutputCue4204=[~UNUSED3~] -OutputSigType4204=Digital -OutputCue4205=[~UNUSED3~] -OutputSigType4205=Digital -OutputCue4206=[~UNUSED3~] -OutputSigType4206=Digital -OutputCue4207=[~UNUSED3~] -OutputSigType4207=Digital -OutputCue4208=[~UNUSED3~] -OutputSigType4208=Digital -OutputCue4209=[~UNUSED3~] -OutputSigType4209=Digital -OutputCue4210=[~UNUSED3~] -OutputSigType4210=Digital -OutputCue4211=[~UNUSED3~] -OutputSigType4211=Digital -OutputCue4212=[~UNUSED3~] -OutputSigType4212=Digital -OutputCue4213=[~UNUSED3~] -OutputSigType4213=Digital -OutputCue4214=[~UNUSED3~] -OutputSigType4214=Digital -OutputCue4215=[~UNUSED3~] -OutputSigType4215=Digital -OutputCue4216=[~UNUSED3~] -OutputSigType4216=Digital -OutputCue4217=[~UNUSED3~] -OutputSigType4217=Digital -OutputCue4218=[~UNUSED3~] -OutputSigType4218=Digital -OutputCue4219=[~UNUSED3~] -OutputSigType4219=Digital -OutputCue4220=[~UNUSED3~] -OutputSigType4220=Digital -OutputCue4221=[~UNUSED3~] -OutputSigType4221=Digital -OutputCue4222=[~UNUSED3~] -OutputSigType4222=Digital -OutputCue4223=[~UNUSED3~] -OutputSigType4223=Digital -OutputCue4224=[~UNUSED3~] -OutputSigType4224=Digital -OutputCue4225=[~UNUSED3~] -OutputSigType4225=Digital -OutputCue4226=[~UNUSED3~] -OutputSigType4226=Digital -OutputCue4227=[~UNUSED3~] -OutputSigType4227=Digital -OutputCue4228=[~UNUSED3~] -OutputSigType4228=Digital -OutputCue4229=[~UNUSED3~] -OutputSigType4229=Digital -OutputCue4230=[~UNUSED3~] -OutputSigType4230=Digital -OutputCue4231=[~UNUSED3~] -OutputSigType4231=Digital -OutputCue4232=[~UNUSED3~] -OutputSigType4232=Digital -OutputCue4233=[~UNUSED3~] -OutputSigType4233=Digital -OutputCue4234=[~UNUSED3~] -OutputSigType4234=Digital -OutputCue4235=[~UNUSED3~] -OutputSigType4235=Digital -OutputCue4236=[~UNUSED3~] -OutputSigType4236=Digital -OutputCue4237=[~UNUSED3~] -OutputSigType4237=Digital -OutputCue4238=[~UNUSED3~] -OutputSigType4238=Digital -OutputCue4239=[~UNUSED3~] -OutputSigType4239=Digital -OutputCue4240=[~UNUSED3~] -OutputSigType4240=Digital -OutputCue4241=[~UNUSED3~] -OutputSigType4241=Digital -OutputCue4242=[~UNUSED3~] -OutputSigType4242=Digital -OutputCue4243=[~UNUSED3~] -OutputSigType4243=Digital -OutputCue4244=[~UNUSED3~] -OutputSigType4244=Digital -OutputCue4245=[~UNUSED3~] -OutputSigType4245=Digital -OutputCue4246=[~UNUSED3~] -OutputSigType4246=Digital -OutputCue4247=[~UNUSED3~] -OutputSigType4247=Digital -OutputCue4248=[~UNUSED3~] -OutputSigType4248=Digital -OutputCue4249=[~UNUSED3~] -OutputSigType4249=Digital -OutputCue4250=[~UNUSED3~] -OutputSigType4250=Digital -OutputCue4251=[~UNUSED3~] -OutputSigType4251=Digital -OutputCue4252=[~UNUSED3~] -OutputSigType4252=Digital -OutputCue4253=[~UNUSED3~] -OutputSigType4253=Digital -OutputCue4254=[~UNUSED3~] -OutputSigType4254=Digital -OutputCue4255=[~UNUSED3~] -OutputSigType4255=Digital -OutputCue4256=[~UNUSED3~] -OutputSigType4256=Digital -OutputCue4257=[~UNUSED3~] -OutputSigType4257=Digital -OutputCue4258=[~UNUSED3~] -OutputSigType4258=Digital -OutputCue4259=[~UNUSED3~] -OutputSigType4259=Digital -OutputCue4260=[~UNUSED3~] -OutputSigType4260=Digital -OutputCue4261=[~UNUSED3~] -OutputSigType4261=Digital -OutputCue4262=[~UNUSED3~] -OutputSigType4262=Digital -OutputCue4263=[~UNUSED3~] -OutputSigType4263=Digital -OutputCue4264=[~UNUSED3~] -OutputSigType4264=Digital -OutputCue4265=[~UNUSED3~] -OutputSigType4265=Digital -OutputCue4266=[~UNUSED3~] -OutputSigType4266=Digital -OutputCue4267=[~UNUSED3~] -OutputSigType4267=Digital -OutputCue4268=[~UNUSED3~] -OutputSigType4268=Digital -OutputCue4269=[~UNUSED3~] -OutputSigType4269=Digital -OutputCue4270=[~UNUSED3~] -OutputSigType4270=Digital -OutputCue4271=[~UNUSED2~] -OutputSigType4271=Digital|Analog|Serial|String -OutputCue6016=[~EndGroup~]Visible -OutputSigType6016=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=[~UNUSED3~] -InputList2SigType2=Analog -InputList2Cue3=Scroll To Item -InputList2SigType3=Analog -InputList2Cue4=Set Number of Items -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]Item Icons -InputList2SigType11=Analog -InputList2Cue12=Set Item 1 Icon Analog -InputList2SigType12=Analog -InputList2Cue13=Set Item 2 Icon Analog -InputList2SigType13=Analog -InputList2Cue14=Set Item 3 Icon Analog -InputList2SigType14=Analog -InputList2Cue15=Set Item 4 Icon Analog -InputList2SigType15=Analog -InputList2Cue16=Set Item 5 Icon Analog -InputList2SigType16=Analog -InputList2Cue17=Set Item 6 Icon Analog -InputList2SigType17=Analog -InputList2Cue18=Set Item 7 Icon Analog -InputList2SigType18=Analog -InputList2Cue19=Set Item 8 Icon Analog -InputList2SigType19=Analog -InputList2Cue20=Set Item 9 Icon Analog -InputList2SigType20=Analog -InputList2Cue21=Set Item 10 Icon Analog -InputList2SigType21=Analog -InputList2Cue22=Set Item 11 Icon Analog -InputList2SigType22=Analog -InputList2Cue23=Set Item 12 Icon Analog -InputList2SigType23=Analog -InputList2Cue24=Set Item 13 Icon Analog -InputList2SigType24=Analog -InputList2Cue25=Set Item 14 Icon Analog -InputList2SigType25=Analog -InputList2Cue26=Set Item 15 Icon Analog -InputList2SigType26=Analog -InputList2Cue27=Set Item 16 Icon Analog -InputList2SigType27=Analog -InputList2Cue28=Set Item 17 Icon Analog -InputList2SigType28=Analog -InputList2Cue29=Set Item 18 Icon Analog -InputList2SigType29=Analog -InputList2Cue30=Set Item 19 Icon Analog -InputList2SigType30=Analog -InputList2Cue31=Set Item 20 Icon Analog -InputList2SigType31=Analog -InputList2Cue32=Set Item 21 Icon Analog -InputList2SigType32=Analog -InputList2Cue33=Set Item 22 Icon Analog -InputList2SigType33=Analog -InputList2Cue34=Set Item 23 Icon Analog -InputList2SigType34=Analog -InputList2Cue35=Set Item 24 Icon Analog -InputList2SigType35=Analog -InputList2Cue36=Set Item 25 Icon Analog -InputList2SigType36=Analog -InputList2Cue37=Set Item 26 Icon Analog -InputList2SigType37=Analog -InputList2Cue38=Set Item 27 Icon Analog -InputList2SigType38=Analog -InputList2Cue39=Set Item 28 Icon Analog -InputList2SigType39=Analog -InputList2Cue40=Set Item 29 Icon Analog -InputList2SigType40=Analog -InputList2Cue41=Set Item 30 Icon Analog -InputList2SigType41=Analog -InputList2Cue42=Set Item 31 Icon Analog -InputList2SigType42=Analog -InputList2Cue43=Set Item 32 Icon Analog -InputList2SigType43=Analog -InputList2Cue44=Set Item 33 Icon Analog -InputList2SigType44=Analog -InputList2Cue45=Set Item 34 Icon Analog -InputList2SigType45=Analog -InputList2Cue46=Set Item 35 Icon Analog -InputList2SigType46=Analog -InputList2Cue47=Set Item 36 Icon Analog -InputList2SigType47=Analog -InputList2Cue48=Set Item 37 Icon Analog -InputList2SigType48=Analog -InputList2Cue49=Set Item 38 Icon Analog -InputList2SigType49=Analog -InputList2Cue50=Set Item 39 Icon Analog -InputList2SigType50=Analog -InputList2Cue51=Set Item 40 Icon Analog -InputList2SigType51=Analog -InputList2Cue52=Set Item 41 Icon Analog -InputList2SigType52=Analog -InputList2Cue53=Set Item 42 Icon Analog -InputList2SigType53=Analog -InputList2Cue54=Set Item 43 Icon Analog -InputList2SigType54=Analog -InputList2Cue55=Set Item 44 Icon Analog -InputList2SigType55=Analog -InputList2Cue56=Set Item 45 Icon Analog -InputList2SigType56=Analog -InputList2Cue57=Set Item 46 Icon Analog -InputList2SigType57=Analog -InputList2Cue58=Set Item 47 Icon Analog -InputList2SigType58=Analog -InputList2Cue59=Set Item 48 Icon Analog -InputList2SigType59=Analog -InputList2Cue60=Set Item 49 Icon Analog -InputList2SigType60=Analog -InputList2Cue61=Set Item 50 Icon Analog -InputList2SigType61=Analog -InputList2Cue62=Set Item 51 Icon Analog -InputList2SigType62=Analog -InputList2Cue63=Set Item 52 Icon Analog -InputList2SigType63=Analog -InputList2Cue64=Set Item 53 Icon Analog -InputList2SigType64=Analog -InputList2Cue65=Set Item 54 Icon Analog -InputList2SigType65=Analog -InputList2Cue66=Set Item 55 Icon Analog -InputList2SigType66=Analog -InputList2Cue67=Set Item 56 Icon Analog -InputList2SigType67=Analog -InputList2Cue68=Set Item 57 Icon Analog -InputList2SigType68=Analog -InputList2Cue69=Set Item 58 Icon Analog -InputList2SigType69=Analog -InputList2Cue70=Set Item 59 Icon Analog -InputList2SigType70=Analog -InputList2Cue71=Set Item 60 Icon Analog -InputList2SigType71=Analog -InputList2Cue72=Set Item 61 Icon Analog -InputList2SigType72=Analog -InputList2Cue73=Set Item 62 Icon Analog -InputList2SigType73=Analog -InputList2Cue74=Set Item 63 Icon Analog -InputList2SigType74=Analog -InputList2Cue75=Set Item 64 Icon Analog -InputList2SigType75=Analog -InputList2Cue76=Set Item 65 Icon Analog -InputList2SigType76=Analog -InputList2Cue77=Set Item 66 Icon Analog -InputList2SigType77=Analog -InputList2Cue78=Set Item 67 Icon Analog -InputList2SigType78=Analog -InputList2Cue79=Set Item 68 Icon Analog -InputList2SigType79=Analog -InputList2Cue80=Set Item 69 Icon Analog -InputList2SigType80=Analog -InputList2Cue81=Set Item 70 Icon Analog -InputList2SigType81=Analog -InputList2Cue82=Set Item 71 Icon Analog -InputList2SigType82=Analog -InputList2Cue83=Set Item 72 Icon Analog -InputList2SigType83=Analog -InputList2Cue84=Set Item 73 Icon Analog -InputList2SigType84=Analog -InputList2Cue85=Set Item 74 Icon Analog -InputList2SigType85=Analog -InputList2Cue86=Set Item 75 Icon Analog -InputList2SigType86=Analog -InputList2Cue87=Set Item 76 Icon Analog -InputList2SigType87=Analog -InputList2Cue88=Set Item 77 Icon Analog -InputList2SigType88=Analog -InputList2Cue89=Set Item 78 Icon Analog -InputList2SigType89=Analog -InputList2Cue90=Set Item 79 Icon Analog -InputList2SigType90=Analog -InputList2Cue91=Set Item 80 Icon Analog -InputList2SigType91=Analog -InputList2Cue92=Set Item 81 Icon Analog -InputList2SigType92=Analog -InputList2Cue93=Set Item 82 Icon Analog -InputList2SigType93=Analog -InputList2Cue94=Set Item 83 Icon Analog -InputList2SigType94=Analog -InputList2Cue95=Set Item 84 Icon Analog -InputList2SigType95=Analog -InputList2Cue96=Set Item 85 Icon Analog -InputList2SigType96=Analog -InputList2Cue97=Set Item 86 Icon Analog -InputList2SigType97=Analog -InputList2Cue98=Set Item 87 Icon Analog -InputList2SigType98=Analog -InputList2Cue99=Set Item 88 Icon Analog -InputList2SigType99=Analog -InputList2Cue100=Set Item 89 Icon Analog -InputList2SigType100=Analog -InputList2Cue101=Set Item 90 Icon Analog -InputList2SigType101=Analog -InputList2Cue102=Set Item 91 Icon Analog -InputList2SigType102=Analog -InputList2Cue103=Set Item 92 Icon Analog -InputList2SigType103=Analog -InputList2Cue104=Set Item 93 Icon Analog -InputList2SigType104=Analog -InputList2Cue105=Set Item 94 Icon Analog -InputList2SigType105=Analog -InputList2Cue106=Set Item 95 Icon Analog -InputList2SigType106=Analog -InputList2Cue107=Set Item 96 Icon Analog -InputList2SigType107=Analog -InputList2Cue108=Set Item 97 Icon Analog -InputList2SigType108=Analog -InputList2Cue109=Set Item 98 Icon Analog -InputList2SigType109=Analog -InputList2Cue110=Set Item 99 Icon Analog -InputList2SigType110=Analog -InputList2Cue111=Set Item 100 Icon Analog -InputList2SigType111=Analog -InputList2Cue112=Set Item 101 Icon Analog -InputList2SigType112=Analog -InputList2Cue113=Set Item 102 Icon Analog -InputList2SigType113=Analog -InputList2Cue114=Set Item 103 Icon Analog -InputList2SigType114=Analog -InputList2Cue115=Set Item 104 Icon Analog -InputList2SigType115=Analog -InputList2Cue116=Set Item 105 Icon Analog -InputList2SigType116=Analog -InputList2Cue117=Set Item 106 Icon Analog -InputList2SigType117=Analog -InputList2Cue118=Set Item 107 Icon Analog -InputList2SigType118=Analog -InputList2Cue119=Set Item 108 Icon Analog -InputList2SigType119=Analog -InputList2Cue120=Set Item 109 Icon Analog -InputList2SigType120=Analog -InputList2Cue121=Set Item 110 Icon Analog -InputList2SigType121=Analog -InputList2Cue122=Set Item 111 Icon Analog -InputList2SigType122=Analog -InputList2Cue123=Set Item 112 Icon Analog -InputList2SigType123=Analog -InputList2Cue124=Set Item 113 Icon Analog -InputList2SigType124=Analog -InputList2Cue125=Set Item 114 Icon Analog -InputList2SigType125=Analog -InputList2Cue126=Set Item 115 Icon Analog -InputList2SigType126=Analog -InputList2Cue127=Set Item 116 Icon Analog -InputList2SigType127=Analog -InputList2Cue128=Set Item 117 Icon Analog -InputList2SigType128=Analog -InputList2Cue129=Set Item 118 Icon Analog -InputList2SigType129=Analog -InputList2Cue130=Set Item 119 Icon Analog -InputList2SigType130=Analog -InputList2Cue131=Set Item 120 Icon Analog -InputList2SigType131=Analog -InputList2Cue132=Set Item 121 Icon Analog -InputList2SigType132=Analog -InputList2Cue133=Set Item 122 Icon Analog -InputList2SigType133=Analog -InputList2Cue134=Set Item 123 Icon Analog -InputList2SigType134=Analog -InputList2Cue135=Set Item 124 Icon Analog -InputList2SigType135=Analog -InputList2Cue136=Set Item 125 Icon Analog -InputList2SigType136=Analog -InputList2Cue137=Set Item 126 Icon Analog -InputList2SigType137=Analog -InputList2Cue138=Set Item 127 Icon Analog -InputList2SigType138=Analog -InputList2Cue139=Set Item 128 Icon Analog -InputList2SigType139=Analog -InputList2Cue140=Set Item 129 Icon Analog -InputList2SigType140=Analog -InputList2Cue141=Set Item 130 Icon Analog -InputList2SigType141=Analog -InputList2Cue142=Set Item 131 Icon Analog -InputList2SigType142=Analog -InputList2Cue143=Set Item 132 Icon Analog -InputList2SigType143=Analog -InputList2Cue144=Set Item 133 Icon Analog -InputList2SigType144=Analog -InputList2Cue145=Set Item 134 Icon Analog -InputList2SigType145=Analog -InputList2Cue146=Set Item 135 Icon Analog -InputList2SigType146=Analog -InputList2Cue147=Set Item 136 Icon Analog -InputList2SigType147=Analog -InputList2Cue148=Set Item 137 Icon Analog -InputList2SigType148=Analog -InputList2Cue149=Set Item 138 Icon Analog -InputList2SigType149=Analog -InputList2Cue150=Set Item 139 Icon Analog -InputList2SigType150=Analog -InputList2Cue151=Set Item 140 Icon Analog -InputList2SigType151=Analog -InputList2Cue152=Set Item 141 Icon Analog -InputList2SigType152=Analog -InputList2Cue153=Set Item 142 Icon Analog -InputList2SigType153=Analog -InputList2Cue154=Set Item 143 Icon Analog -InputList2SigType154=Analog -InputList2Cue155=Set Item 144 Icon Analog -InputList2SigType155=Analog -InputList2Cue156=Set Item 145 Icon Analog -InputList2SigType156=Analog -InputList2Cue157=Set Item 146 Icon Analog -InputList2SigType157=Analog -InputList2Cue158=Set Item 147 Icon Analog -InputList2SigType158=Analog -InputList2Cue159=Set Item 148 Icon Analog -InputList2SigType159=Analog -InputList2Cue160=Set Item 149 Icon Analog -InputList2SigType160=Analog -InputList2Cue161=Set Item 150 Icon Analog -InputList2SigType161=Analog -InputList2Cue162=Set Item 151 Icon Analog -InputList2SigType162=Analog -InputList2Cue163=Set Item 152 Icon Analog -InputList2SigType163=Analog -InputList2Cue164=Set Item 153 Icon Analog -InputList2SigType164=Analog -InputList2Cue165=Set Item 154 Icon Analog -InputList2SigType165=Analog -InputList2Cue166=Set Item 155 Icon Analog -InputList2SigType166=Analog -InputList2Cue167=Set Item 156 Icon Analog -InputList2SigType167=Analog -InputList2Cue168=Set Item 157 Icon Analog -InputList2SigType168=Analog -InputList2Cue169=Set Item 158 Icon Analog -InputList2SigType169=Analog -InputList2Cue170=Set Item 159 Icon Analog -InputList2SigType170=Analog -InputList2Cue171=Set Item 160 Icon Analog -InputList2SigType171=Analog -InputList2Cue172=Set Item 161 Icon Analog -InputList2SigType172=Analog -InputList2Cue173=Set Item 162 Icon Analog -InputList2SigType173=Analog -InputList2Cue174=Set Item 163 Icon Analog -InputList2SigType174=Analog -InputList2Cue175=Set Item 164 Icon Analog -InputList2SigType175=Analog -InputList2Cue176=Set Item 165 Icon Analog -InputList2SigType176=Analog -InputList2Cue177=Set Item 166 Icon Analog -InputList2SigType177=Analog -InputList2Cue178=Set Item 167 Icon Analog -InputList2SigType178=Analog -InputList2Cue179=Set Item 168 Icon Analog -InputList2SigType179=Analog -InputList2Cue180=Set Item 169 Icon Analog -InputList2SigType180=Analog -InputList2Cue181=Set Item 170 Icon Analog -InputList2SigType181=Analog -InputList2Cue182=Set Item 171 Icon Analog -InputList2SigType182=Analog -InputList2Cue183=Set Item 172 Icon Analog -InputList2SigType183=Analog -InputList2Cue184=Set Item 173 Icon Analog -InputList2SigType184=Analog -InputList2Cue185=Set Item 174 Icon Analog -InputList2SigType185=Analog -InputList2Cue186=Set Item 175 Icon Analog -InputList2SigType186=Analog -InputList2Cue187=Set Item 176 Icon Analog -InputList2SigType187=Analog -InputList2Cue188=Set Item 177 Icon Analog -InputList2SigType188=Analog -InputList2Cue189=Set Item 178 Icon Analog -InputList2SigType189=Analog -InputList2Cue190=Set Item 179 Icon Analog -InputList2SigType190=Analog -InputList2Cue191=Set Item 180 Icon Analog -InputList2SigType191=Analog -InputList2Cue192=Set Item 181 Icon Analog -InputList2SigType192=Analog -InputList2Cue193=Set Item 182 Icon Analog -InputList2SigType193=Analog -InputList2Cue194=Set Item 183 Icon Analog -InputList2SigType194=Analog -InputList2Cue195=Set Item 184 Icon Analog -InputList2SigType195=Analog -InputList2Cue196=Set Item 185 Icon Analog -InputList2SigType196=Analog -InputList2Cue197=Set Item 186 Icon Analog -InputList2SigType197=Analog -InputList2Cue198=Set Item 187 Icon Analog -InputList2SigType198=Analog -InputList2Cue199=Set Item 188 Icon Analog -InputList2SigType199=Analog -InputList2Cue200=Set Item 189 Icon Analog -InputList2SigType200=Analog -InputList2Cue201=Set Item 190 Icon Analog -InputList2SigType201=Analog -InputList2Cue202=Set Item 191 Icon Analog -InputList2SigType202=Analog -InputList2Cue203=Set Item 192 Icon Analog -InputList2SigType203=Analog -InputList2Cue204=Set Item 193 Icon Analog -InputList2SigType204=Analog -InputList2Cue205=Set Item 194 Icon Analog -InputList2SigType205=Analog -InputList2Cue206=Set Item 195 Icon Analog -InputList2SigType206=Analog -InputList2Cue207=Set Item 196 Icon Analog -InputList2SigType207=Analog -InputList2Cue208=Set Item 197 Icon Analog -InputList2SigType208=Analog -InputList2Cue209=Set Item 198 Icon Analog -InputList2SigType209=Analog -InputList2Cue210=Set Item 199 Icon Analog -InputList2SigType210=Analog -InputList2Cue211=Set Item 200 Icon Analog -InputList2SigType211=Analog -InputList2Cue212=Set Item 201 Icon Analog -InputList2SigType212=Analog -InputList2Cue213=Set Item 202 Icon Analog -InputList2SigType213=Analog -InputList2Cue214=Set Item 203 Icon Analog -InputList2SigType214=Analog -InputList2Cue215=Set Item 204 Icon Analog -InputList2SigType215=Analog -InputList2Cue216=Set Item 205 Icon Analog -InputList2SigType216=Analog -InputList2Cue217=Set Item 206 Icon Analog -InputList2SigType217=Analog -InputList2Cue218=Set Item 207 Icon Analog -InputList2SigType218=Analog -InputList2Cue219=Set Item 208 Icon Analog -InputList2SigType219=Analog -InputList2Cue220=Set Item 209 Icon Analog -InputList2SigType220=Analog -InputList2Cue221=Set Item 210 Icon Analog -InputList2SigType221=Analog -InputList2Cue222=Set Item 211 Icon Analog -InputList2SigType222=Analog -InputList2Cue223=Set Item 212 Icon Analog -InputList2SigType223=Analog -InputList2Cue224=Set Item 213 Icon Analog -InputList2SigType224=Analog -InputList2Cue225=Set Item 214 Icon Analog -InputList2SigType225=Analog -InputList2Cue226=Set Item 215 Icon Analog -InputList2SigType226=Analog -InputList2Cue227=Set Item 216 Icon Analog -InputList2SigType227=Analog -InputList2Cue228=Set Item 217 Icon Analog -InputList2SigType228=Analog -InputList2Cue229=Set Item 218 Icon Analog -InputList2SigType229=Analog -InputList2Cue230=Set Item 219 Icon Analog -InputList2SigType230=Analog -InputList2Cue231=Set Item 220 Icon Analog -InputList2SigType231=Analog -InputList2Cue232=Set Item 221 Icon Analog -InputList2SigType232=Analog -InputList2Cue233=Set Item 222 Icon Analog -InputList2SigType233=Analog -InputList2Cue234=Set Item 223 Icon Analog -InputList2SigType234=Analog -InputList2Cue235=Set Item 224 Icon Analog -InputList2SigType235=Analog -InputList2Cue236=Set Item 225 Icon Analog -InputList2SigType236=Analog -InputList2Cue237=Set Item 226 Icon Analog -InputList2SigType237=Analog -InputList2Cue238=Set Item 227 Icon Analog -InputList2SigType238=Analog -InputList2Cue239=Set Item 228 Icon Analog -InputList2SigType239=Analog -InputList2Cue240=Set Item 229 Icon Analog -InputList2SigType240=Analog -InputList2Cue241=Set Item 230 Icon Analog -InputList2SigType241=Analog -InputList2Cue242=Set Item 231 Icon Analog -InputList2SigType242=Analog -InputList2Cue243=Set Item 232 Icon Analog -InputList2SigType243=Analog -InputList2Cue244=Set Item 233 Icon Analog -InputList2SigType244=Analog -InputList2Cue245=Set Item 234 Icon Analog -InputList2SigType245=Analog -InputList2Cue246=Set Item 235 Icon Analog -InputList2SigType246=Analog -InputList2Cue247=Set Item 236 Icon Analog -InputList2SigType247=Analog -InputList2Cue248=Set Item 237 Icon Analog -InputList2SigType248=Analog -InputList2Cue249=Set Item 238 Icon Analog -InputList2SigType249=Analog -InputList2Cue250=Set Item 239 Icon Analog -InputList2SigType250=Analog -InputList2Cue251=Set Item 240 Icon Analog -InputList2SigType251=Analog -InputList2Cue252=Set Item 241 Icon Analog -InputList2SigType252=Analog -InputList2Cue253=Set Item 242 Icon Analog -InputList2SigType253=Analog -InputList2Cue254=Set Item 243 Icon Analog -InputList2SigType254=Analog -InputList2Cue255=Set Item 244 Icon Analog -InputList2SigType255=Analog -InputList2Cue256=Set Item 245 Icon Analog -InputList2SigType256=Analog -InputList2Cue257=Set Item 246 Icon Analog -InputList2SigType257=Analog -InputList2Cue258=Set Item 247 Icon Analog -InputList2SigType258=Analog -InputList2Cue259=Set Item 248 Icon Analog -InputList2SigType259=Analog -InputList2Cue260=Set Item 249 Icon Analog -InputList2SigType260=Analog -InputList2Cue261=Set Item 250 Icon Analog -InputList2SigType261=Analog -InputList2Cue262=Set Item 251 Icon Analog -InputList2SigType262=Analog -InputList2Cue263=Set Item 252 Icon Analog -InputList2SigType263=Analog -InputList2Cue264=Set Item 253 Icon Analog -InputList2SigType264=Analog -InputList2Cue265=Set Item 254 Icon Analog -InputList2SigType265=Analog -InputList2Cue266=Set Item 255 Icon Analog -InputList2SigType266=Analog -InputList2Cue267=[~UNUSED2~] -InputList2SigType267=Digital|Analog|Serial|String -InputList2Cue2012=[~EndGroup~]Item Icons -InputList2SigType2012=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=Item Held -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED3~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]Item Icons -OutputList2SigType11=Analog -OutputList2Cue12=[~UNUSED3~] -OutputList2SigType12=Analog -OutputList2Cue13=[~UNUSED3~] -OutputList2SigType13=Analog -OutputList2Cue14=[~UNUSED3~] -OutputList2SigType14=Analog -OutputList2Cue15=[~UNUSED3~] -OutputList2SigType15=Analog -OutputList2Cue16=[~UNUSED3~] -OutputList2SigType16=Analog -OutputList2Cue17=[~UNUSED3~] -OutputList2SigType17=Analog -OutputList2Cue18=[~UNUSED3~] -OutputList2SigType18=Analog -OutputList2Cue19=[~UNUSED3~] -OutputList2SigType19=Analog -OutputList2Cue20=[~UNUSED3~] -OutputList2SigType20=Analog -OutputList2Cue21=[~UNUSED3~] -OutputList2SigType21=Analog -OutputList2Cue22=[~UNUSED3~] -OutputList2SigType22=Analog -OutputList2Cue23=[~UNUSED3~] -OutputList2SigType23=Analog -OutputList2Cue24=[~UNUSED3~] -OutputList2SigType24=Analog -OutputList2Cue25=[~UNUSED3~] -OutputList2SigType25=Analog -OutputList2Cue26=[~UNUSED3~] -OutputList2SigType26=Analog -OutputList2Cue27=[~UNUSED3~] -OutputList2SigType27=Analog -OutputList2Cue28=[~UNUSED3~] -OutputList2SigType28=Analog -OutputList2Cue29=[~UNUSED3~] -OutputList2SigType29=Analog -OutputList2Cue30=[~UNUSED3~] -OutputList2SigType30=Analog -OutputList2Cue31=[~UNUSED3~] -OutputList2SigType31=Analog -OutputList2Cue32=[~UNUSED3~] -OutputList2SigType32=Analog -OutputList2Cue33=[~UNUSED3~] -OutputList2SigType33=Analog -OutputList2Cue34=[~UNUSED3~] -OutputList2SigType34=Analog -OutputList2Cue35=[~UNUSED3~] -OutputList2SigType35=Analog -OutputList2Cue36=[~UNUSED3~] -OutputList2SigType36=Analog -OutputList2Cue37=[~UNUSED3~] -OutputList2SigType37=Analog -OutputList2Cue38=[~UNUSED3~] -OutputList2SigType38=Analog -OutputList2Cue39=[~UNUSED3~] -OutputList2SigType39=Analog -OutputList2Cue40=[~UNUSED3~] -OutputList2SigType40=Analog -OutputList2Cue41=[~UNUSED3~] -OutputList2SigType41=Analog -OutputList2Cue42=[~UNUSED3~] -OutputList2SigType42=Analog -OutputList2Cue43=[~UNUSED3~] -OutputList2SigType43=Analog -OutputList2Cue44=[~UNUSED3~] -OutputList2SigType44=Analog -OutputList2Cue45=[~UNUSED3~] -OutputList2SigType45=Analog -OutputList2Cue46=[~UNUSED3~] -OutputList2SigType46=Analog -OutputList2Cue47=[~UNUSED3~] -OutputList2SigType47=Analog -OutputList2Cue48=[~UNUSED3~] -OutputList2SigType48=Analog -OutputList2Cue49=[~UNUSED3~] -OutputList2SigType49=Analog -OutputList2Cue50=[~UNUSED3~] -OutputList2SigType50=Analog -OutputList2Cue51=[~UNUSED3~] -OutputList2SigType51=Analog -OutputList2Cue52=[~UNUSED3~] -OutputList2SigType52=Analog -OutputList2Cue53=[~UNUSED3~] -OutputList2SigType53=Analog -OutputList2Cue54=[~UNUSED3~] -OutputList2SigType54=Analog -OutputList2Cue55=[~UNUSED3~] -OutputList2SigType55=Analog -OutputList2Cue56=[~UNUSED3~] -OutputList2SigType56=Analog -OutputList2Cue57=[~UNUSED3~] -OutputList2SigType57=Analog -OutputList2Cue58=[~UNUSED3~] -OutputList2SigType58=Analog -OutputList2Cue59=[~UNUSED3~] -OutputList2SigType59=Analog -OutputList2Cue60=[~UNUSED3~] -OutputList2SigType60=Analog -OutputList2Cue61=[~UNUSED3~] -OutputList2SigType61=Analog -OutputList2Cue62=[~UNUSED3~] -OutputList2SigType62=Analog -OutputList2Cue63=[~UNUSED3~] -OutputList2SigType63=Analog -OutputList2Cue64=[~UNUSED3~] -OutputList2SigType64=Analog -OutputList2Cue65=[~UNUSED3~] -OutputList2SigType65=Analog -OutputList2Cue66=[~UNUSED3~] -OutputList2SigType66=Analog -OutputList2Cue67=[~UNUSED3~] -OutputList2SigType67=Analog -OutputList2Cue68=[~UNUSED3~] -OutputList2SigType68=Analog -OutputList2Cue69=[~UNUSED3~] -OutputList2SigType69=Analog -OutputList2Cue70=[~UNUSED3~] -OutputList2SigType70=Analog -OutputList2Cue71=[~UNUSED3~] -OutputList2SigType71=Analog -OutputList2Cue72=[~UNUSED3~] -OutputList2SigType72=Analog -OutputList2Cue73=[~UNUSED3~] -OutputList2SigType73=Analog -OutputList2Cue74=[~UNUSED3~] -OutputList2SigType74=Analog -OutputList2Cue75=[~UNUSED3~] -OutputList2SigType75=Analog -OutputList2Cue76=[~UNUSED3~] -OutputList2SigType76=Analog -OutputList2Cue77=[~UNUSED3~] -OutputList2SigType77=Analog -OutputList2Cue78=[~UNUSED3~] -OutputList2SigType78=Analog -OutputList2Cue79=[~UNUSED3~] -OutputList2SigType79=Analog -OutputList2Cue80=[~UNUSED3~] -OutputList2SigType80=Analog -OutputList2Cue81=[~UNUSED3~] -OutputList2SigType81=Analog -OutputList2Cue82=[~UNUSED3~] -OutputList2SigType82=Analog -OutputList2Cue83=[~UNUSED3~] -OutputList2SigType83=Analog -OutputList2Cue84=[~UNUSED3~] -OutputList2SigType84=Analog -OutputList2Cue85=[~UNUSED3~] -OutputList2SigType85=Analog -OutputList2Cue86=[~UNUSED3~] -OutputList2SigType86=Analog -OutputList2Cue87=[~UNUSED3~] -OutputList2SigType87=Analog -OutputList2Cue88=[~UNUSED3~] -OutputList2SigType88=Analog -OutputList2Cue89=[~UNUSED3~] -OutputList2SigType89=Analog -OutputList2Cue90=[~UNUSED3~] -OutputList2SigType90=Analog -OutputList2Cue91=[~UNUSED3~] -OutputList2SigType91=Analog -OutputList2Cue92=[~UNUSED3~] -OutputList2SigType92=Analog -OutputList2Cue93=[~UNUSED3~] -OutputList2SigType93=Analog -OutputList2Cue94=[~UNUSED3~] -OutputList2SigType94=Analog -OutputList2Cue95=[~UNUSED3~] -OutputList2SigType95=Analog -OutputList2Cue96=[~UNUSED3~] -OutputList2SigType96=Analog -OutputList2Cue97=[~UNUSED3~] -OutputList2SigType97=Analog -OutputList2Cue98=[~UNUSED3~] -OutputList2SigType98=Analog -OutputList2Cue99=[~UNUSED3~] -OutputList2SigType99=Analog -OutputList2Cue100=[~UNUSED3~] -OutputList2SigType100=Analog -OutputList2Cue101=[~UNUSED3~] -OutputList2SigType101=Analog -OutputList2Cue102=[~UNUSED3~] -OutputList2SigType102=Analog -OutputList2Cue103=[~UNUSED3~] -OutputList2SigType103=Analog -OutputList2Cue104=[~UNUSED3~] -OutputList2SigType104=Analog -OutputList2Cue105=[~UNUSED3~] -OutputList2SigType105=Analog -OutputList2Cue106=[~UNUSED3~] -OutputList2SigType106=Analog -OutputList2Cue107=[~UNUSED3~] -OutputList2SigType107=Analog -OutputList2Cue108=[~UNUSED3~] -OutputList2SigType108=Analog -OutputList2Cue109=[~UNUSED3~] -OutputList2SigType109=Analog -OutputList2Cue110=[~UNUSED3~] -OutputList2SigType110=Analog -OutputList2Cue111=[~UNUSED3~] -OutputList2SigType111=Analog -OutputList2Cue112=[~UNUSED3~] -OutputList2SigType112=Analog -OutputList2Cue113=[~UNUSED3~] -OutputList2SigType113=Analog -OutputList2Cue114=[~UNUSED3~] -OutputList2SigType114=Analog -OutputList2Cue115=[~UNUSED3~] -OutputList2SigType115=Analog -OutputList2Cue116=[~UNUSED3~] -OutputList2SigType116=Analog -OutputList2Cue117=[~UNUSED3~] -OutputList2SigType117=Analog -OutputList2Cue118=[~UNUSED3~] -OutputList2SigType118=Analog -OutputList2Cue119=[~UNUSED3~] -OutputList2SigType119=Analog -OutputList2Cue120=[~UNUSED3~] -OutputList2SigType120=Analog -OutputList2Cue121=[~UNUSED3~] -OutputList2SigType121=Analog -OutputList2Cue122=[~UNUSED3~] -OutputList2SigType122=Analog -OutputList2Cue123=[~UNUSED3~] -OutputList2SigType123=Analog -OutputList2Cue124=[~UNUSED3~] -OutputList2SigType124=Analog -OutputList2Cue125=[~UNUSED3~] -OutputList2SigType125=Analog -OutputList2Cue126=[~UNUSED3~] -OutputList2SigType126=Analog -OutputList2Cue127=[~UNUSED3~] -OutputList2SigType127=Analog -OutputList2Cue128=[~UNUSED3~] -OutputList2SigType128=Analog -OutputList2Cue129=[~UNUSED3~] -OutputList2SigType129=Analog -OutputList2Cue130=[~UNUSED3~] -OutputList2SigType130=Analog -OutputList2Cue131=[~UNUSED3~] -OutputList2SigType131=Analog -OutputList2Cue132=[~UNUSED3~] -OutputList2SigType132=Analog -OutputList2Cue133=[~UNUSED3~] -OutputList2SigType133=Analog -OutputList2Cue134=[~UNUSED3~] -OutputList2SigType134=Analog -OutputList2Cue135=[~UNUSED3~] -OutputList2SigType135=Analog -OutputList2Cue136=[~UNUSED3~] -OutputList2SigType136=Analog -OutputList2Cue137=[~UNUSED3~] -OutputList2SigType137=Analog -OutputList2Cue138=[~UNUSED3~] -OutputList2SigType138=Analog -OutputList2Cue139=[~UNUSED3~] -OutputList2SigType139=Analog -OutputList2Cue140=[~UNUSED3~] -OutputList2SigType140=Analog -OutputList2Cue141=[~UNUSED3~] -OutputList2SigType141=Analog -OutputList2Cue142=[~UNUSED3~] -OutputList2SigType142=Analog -OutputList2Cue143=[~UNUSED3~] -OutputList2SigType143=Analog -OutputList2Cue144=[~UNUSED3~] -OutputList2SigType144=Analog -OutputList2Cue145=[~UNUSED3~] -OutputList2SigType145=Analog -OutputList2Cue146=[~UNUSED3~] -OutputList2SigType146=Analog -OutputList2Cue147=[~UNUSED3~] -OutputList2SigType147=Analog -OutputList2Cue148=[~UNUSED3~] -OutputList2SigType148=Analog -OutputList2Cue149=[~UNUSED3~] -OutputList2SigType149=Analog -OutputList2Cue150=[~UNUSED3~] -OutputList2SigType150=Analog -OutputList2Cue151=[~UNUSED3~] -OutputList2SigType151=Analog -OutputList2Cue152=[~UNUSED3~] -OutputList2SigType152=Analog -OutputList2Cue153=[~UNUSED3~] -OutputList2SigType153=Analog -OutputList2Cue154=[~UNUSED3~] -OutputList2SigType154=Analog -OutputList2Cue155=[~UNUSED3~] -OutputList2SigType155=Analog -OutputList2Cue156=[~UNUSED3~] -OutputList2SigType156=Analog -OutputList2Cue157=[~UNUSED3~] -OutputList2SigType157=Analog -OutputList2Cue158=[~UNUSED3~] -OutputList2SigType158=Analog -OutputList2Cue159=[~UNUSED3~] -OutputList2SigType159=Analog -OutputList2Cue160=[~UNUSED3~] -OutputList2SigType160=Analog -OutputList2Cue161=[~UNUSED3~] -OutputList2SigType161=Analog -OutputList2Cue162=[~UNUSED3~] -OutputList2SigType162=Analog -OutputList2Cue163=[~UNUSED3~] -OutputList2SigType163=Analog -OutputList2Cue164=[~UNUSED3~] -OutputList2SigType164=Analog -OutputList2Cue165=[~UNUSED3~] -OutputList2SigType165=Analog -OutputList2Cue166=[~UNUSED3~] -OutputList2SigType166=Analog -OutputList2Cue167=[~UNUSED3~] -OutputList2SigType167=Analog -OutputList2Cue168=[~UNUSED3~] -OutputList2SigType168=Analog -OutputList2Cue169=[~UNUSED3~] -OutputList2SigType169=Analog -OutputList2Cue170=[~UNUSED3~] -OutputList2SigType170=Analog -OutputList2Cue171=[~UNUSED3~] -OutputList2SigType171=Analog -OutputList2Cue172=[~UNUSED3~] -OutputList2SigType172=Analog -OutputList2Cue173=[~UNUSED3~] -OutputList2SigType173=Analog -OutputList2Cue174=[~UNUSED3~] -OutputList2SigType174=Analog -OutputList2Cue175=[~UNUSED3~] -OutputList2SigType175=Analog -OutputList2Cue176=[~UNUSED3~] -OutputList2SigType176=Analog -OutputList2Cue177=[~UNUSED3~] -OutputList2SigType177=Analog -OutputList2Cue178=[~UNUSED3~] -OutputList2SigType178=Analog -OutputList2Cue179=[~UNUSED3~] -OutputList2SigType179=Analog -OutputList2Cue180=[~UNUSED3~] -OutputList2SigType180=Analog -OutputList2Cue181=[~UNUSED3~] -OutputList2SigType181=Analog -OutputList2Cue182=[~UNUSED3~] -OutputList2SigType182=Analog -OutputList2Cue183=[~UNUSED3~] -OutputList2SigType183=Analog -OutputList2Cue184=[~UNUSED3~] -OutputList2SigType184=Analog -OutputList2Cue185=[~UNUSED3~] -OutputList2SigType185=Analog -OutputList2Cue186=[~UNUSED3~] -OutputList2SigType186=Analog -OutputList2Cue187=[~UNUSED3~] -OutputList2SigType187=Analog -OutputList2Cue188=[~UNUSED3~] -OutputList2SigType188=Analog -OutputList2Cue189=[~UNUSED3~] -OutputList2SigType189=Analog -OutputList2Cue190=[~UNUSED3~] -OutputList2SigType190=Analog -OutputList2Cue191=[~UNUSED3~] -OutputList2SigType191=Analog -OutputList2Cue192=[~UNUSED3~] -OutputList2SigType192=Analog -OutputList2Cue193=[~UNUSED3~] -OutputList2SigType193=Analog -OutputList2Cue194=[~UNUSED3~] -OutputList2SigType194=Analog -OutputList2Cue195=[~UNUSED3~] -OutputList2SigType195=Analog -OutputList2Cue196=[~UNUSED3~] -OutputList2SigType196=Analog -OutputList2Cue197=[~UNUSED3~] -OutputList2SigType197=Analog -OutputList2Cue198=[~UNUSED3~] -OutputList2SigType198=Analog -OutputList2Cue199=[~UNUSED3~] -OutputList2SigType199=Analog -OutputList2Cue200=[~UNUSED3~] -OutputList2SigType200=Analog -OutputList2Cue201=[~UNUSED3~] -OutputList2SigType201=Analog -OutputList2Cue202=[~UNUSED3~] -OutputList2SigType202=Analog -OutputList2Cue203=[~UNUSED3~] -OutputList2SigType203=Analog -OutputList2Cue204=[~UNUSED3~] -OutputList2SigType204=Analog -OutputList2Cue205=[~UNUSED3~] -OutputList2SigType205=Analog -OutputList2Cue206=[~UNUSED3~] -OutputList2SigType206=Analog -OutputList2Cue207=[~UNUSED3~] -OutputList2SigType207=Analog -OutputList2Cue208=[~UNUSED3~] -OutputList2SigType208=Analog -OutputList2Cue209=[~UNUSED3~] -OutputList2SigType209=Analog -OutputList2Cue210=[~UNUSED3~] -OutputList2SigType210=Analog -OutputList2Cue211=[~UNUSED3~] -OutputList2SigType211=Analog -OutputList2Cue212=[~UNUSED3~] -OutputList2SigType212=Analog -OutputList2Cue213=[~UNUSED3~] -OutputList2SigType213=Analog -OutputList2Cue214=[~UNUSED3~] -OutputList2SigType214=Analog -OutputList2Cue215=[~UNUSED3~] -OutputList2SigType215=Analog -OutputList2Cue216=[~UNUSED3~] -OutputList2SigType216=Analog -OutputList2Cue217=[~UNUSED3~] -OutputList2SigType217=Analog -OutputList2Cue218=[~UNUSED3~] -OutputList2SigType218=Analog -OutputList2Cue219=[~UNUSED3~] -OutputList2SigType219=Analog -OutputList2Cue220=[~UNUSED3~] -OutputList2SigType220=Analog -OutputList2Cue221=[~UNUSED3~] -OutputList2SigType221=Analog -OutputList2Cue222=[~UNUSED3~] -OutputList2SigType222=Analog -OutputList2Cue223=[~UNUSED3~] -OutputList2SigType223=Analog -OutputList2Cue224=[~UNUSED3~] -OutputList2SigType224=Analog -OutputList2Cue225=[~UNUSED3~] -OutputList2SigType225=Analog -OutputList2Cue226=[~UNUSED3~] -OutputList2SigType226=Analog -OutputList2Cue227=[~UNUSED3~] -OutputList2SigType227=Analog -OutputList2Cue228=[~UNUSED3~] -OutputList2SigType228=Analog -OutputList2Cue229=[~UNUSED3~] -OutputList2SigType229=Analog -OutputList2Cue230=[~UNUSED3~] -OutputList2SigType230=Analog -OutputList2Cue231=[~UNUSED3~] -OutputList2SigType231=Analog -OutputList2Cue232=[~UNUSED3~] -OutputList2SigType232=Analog -OutputList2Cue233=[~UNUSED3~] -OutputList2SigType233=Analog -OutputList2Cue234=[~UNUSED3~] -OutputList2SigType234=Analog -OutputList2Cue235=[~UNUSED3~] -OutputList2SigType235=Analog -OutputList2Cue236=[~UNUSED3~] -OutputList2SigType236=Analog -OutputList2Cue237=[~UNUSED3~] -OutputList2SigType237=Analog -OutputList2Cue238=[~UNUSED3~] -OutputList2SigType238=Analog -OutputList2Cue239=[~UNUSED3~] -OutputList2SigType239=Analog -OutputList2Cue240=[~UNUSED3~] -OutputList2SigType240=Analog -OutputList2Cue241=[~UNUSED3~] -OutputList2SigType241=Analog -OutputList2Cue242=[~UNUSED3~] -OutputList2SigType242=Analog -OutputList2Cue243=[~UNUSED3~] -OutputList2SigType243=Analog -OutputList2Cue244=[~UNUSED3~] -OutputList2SigType244=Analog -OutputList2Cue245=[~UNUSED3~] -OutputList2SigType245=Analog -OutputList2Cue246=[~UNUSED3~] -OutputList2SigType246=Analog -OutputList2Cue247=[~UNUSED3~] -OutputList2SigType247=Analog -OutputList2Cue248=[~UNUSED3~] -OutputList2SigType248=Analog -OutputList2Cue249=[~UNUSED3~] -OutputList2SigType249=Analog -OutputList2Cue250=[~UNUSED3~] -OutputList2SigType250=Analog -OutputList2Cue251=[~UNUSED3~] -OutputList2SigType251=Analog -OutputList2Cue252=[~UNUSED3~] -OutputList2SigType252=Analog -OutputList2Cue253=[~UNUSED3~] -OutputList2SigType253=Analog -OutputList2Cue254=[~UNUSED3~] -OutputList2SigType254=Analog -OutputList2Cue255=[~UNUSED3~] -OutputList2SigType255=Analog -OutputList2Cue256=[~UNUSED3~] -OutputList2SigType256=Analog -OutputList2Cue257=[~UNUSED3~] -OutputList2SigType257=Analog -OutputList2Cue258=[~UNUSED3~] -OutputList2SigType258=Analog -OutputList2Cue259=[~UNUSED3~] -OutputList2SigType259=Analog -OutputList2Cue260=[~UNUSED3~] -OutputList2SigType260=Analog -OutputList2Cue261=[~UNUSED3~] -OutputList2SigType261=Analog -OutputList2Cue262=[~UNUSED3~] -OutputList2SigType262=Analog -OutputList2Cue263=[~UNUSED3~] -OutputList2SigType263=Analog -OutputList2Cue264=[~UNUSED3~] -OutputList2SigType264=Analog -OutputList2Cue265=[~UNUSED3~] -OutputList2SigType265=Analog -OutputList2Cue266=[~UNUSED3~] -OutputList2SigType266=Analog -OutputList2Cue267=[~UNUSED2~] -OutputList2SigType267=Digital|Analog|Serial|String -OutputList2Cue2012=[~EndGroup~]Item Icons -OutputList2SigType2012=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]Item Texts -InputList3SigType11=Serial -InputList3Cue12=Set Item 1 Text -InputList3SigType12=Serial -InputList3Cue13=Set Item 2 Text -InputList3SigType13=Serial -InputList3Cue14=Set Item 3 Text -InputList3SigType14=Serial -InputList3Cue15=Set Item 4 Text -InputList3SigType15=Serial -InputList3Cue16=Set Item 5 Text -InputList3SigType16=Serial -InputList3Cue17=Set Item 6 Text -InputList3SigType17=Serial -InputList3Cue18=Set Item 7 Text -InputList3SigType18=Serial -InputList3Cue19=Set Item 8 Text -InputList3SigType19=Serial -InputList3Cue20=Set Item 9 Text -InputList3SigType20=Serial -InputList3Cue21=Set Item 10 Text -InputList3SigType21=Serial -InputList3Cue22=Set Item 11 Text -InputList3SigType22=Serial -InputList3Cue23=Set Item 12 Text -InputList3SigType23=Serial -InputList3Cue24=Set Item 13 Text -InputList3SigType24=Serial -InputList3Cue25=Set Item 14 Text -InputList3SigType25=Serial -InputList3Cue26=Set Item 15 Text -InputList3SigType26=Serial -InputList3Cue27=Set Item 16 Text -InputList3SigType27=Serial -InputList3Cue28=Set Item 17 Text -InputList3SigType28=Serial -InputList3Cue29=Set Item 18 Text -InputList3SigType29=Serial -InputList3Cue30=Set Item 19 Text -InputList3SigType30=Serial -InputList3Cue31=Set Item 20 Text -InputList3SigType31=Serial -InputList3Cue32=Set Item 21 Text -InputList3SigType32=Serial -InputList3Cue33=Set Item 22 Text -InputList3SigType33=Serial -InputList3Cue34=Set Item 23 Text -InputList3SigType34=Serial -InputList3Cue35=Set Item 24 Text -InputList3SigType35=Serial -InputList3Cue36=Set Item 25 Text -InputList3SigType36=Serial -InputList3Cue37=Set Item 26 Text -InputList3SigType37=Serial -InputList3Cue38=Set Item 27 Text -InputList3SigType38=Serial -InputList3Cue39=Set Item 28 Text -InputList3SigType39=Serial -InputList3Cue40=Set Item 29 Text -InputList3SigType40=Serial -InputList3Cue41=Set Item 30 Text -InputList3SigType41=Serial -InputList3Cue42=Set Item 31 Text -InputList3SigType42=Serial -InputList3Cue43=Set Item 32 Text -InputList3SigType43=Serial -InputList3Cue44=Set Item 33 Text -InputList3SigType44=Serial -InputList3Cue45=Set Item 34 Text -InputList3SigType45=Serial -InputList3Cue46=Set Item 35 Text -InputList3SigType46=Serial -InputList3Cue47=Set Item 36 Text -InputList3SigType47=Serial -InputList3Cue48=Set Item 37 Text -InputList3SigType48=Serial -InputList3Cue49=Set Item 38 Text -InputList3SigType49=Serial -InputList3Cue50=Set Item 39 Text -InputList3SigType50=Serial -InputList3Cue51=Set Item 40 Text -InputList3SigType51=Serial -InputList3Cue52=Set Item 41 Text -InputList3SigType52=Serial -InputList3Cue53=Set Item 42 Text -InputList3SigType53=Serial -InputList3Cue54=Set Item 43 Text -InputList3SigType54=Serial -InputList3Cue55=Set Item 44 Text -InputList3SigType55=Serial -InputList3Cue56=Set Item 45 Text -InputList3SigType56=Serial -InputList3Cue57=Set Item 46 Text -InputList3SigType57=Serial -InputList3Cue58=Set Item 47 Text -InputList3SigType58=Serial -InputList3Cue59=Set Item 48 Text -InputList3SigType59=Serial -InputList3Cue60=Set Item 49 Text -InputList3SigType60=Serial -InputList3Cue61=Set Item 50 Text -InputList3SigType61=Serial -InputList3Cue62=Set Item 51 Text -InputList3SigType62=Serial -InputList3Cue63=Set Item 52 Text -InputList3SigType63=Serial -InputList3Cue64=Set Item 53 Text -InputList3SigType64=Serial -InputList3Cue65=Set Item 54 Text -InputList3SigType65=Serial -InputList3Cue66=Set Item 55 Text -InputList3SigType66=Serial -InputList3Cue67=Set Item 56 Text -InputList3SigType67=Serial -InputList3Cue68=Set Item 57 Text -InputList3SigType68=Serial -InputList3Cue69=Set Item 58 Text -InputList3SigType69=Serial -InputList3Cue70=Set Item 59 Text -InputList3SigType70=Serial -InputList3Cue71=Set Item 60 Text -InputList3SigType71=Serial -InputList3Cue72=Set Item 61 Text -InputList3SigType72=Serial -InputList3Cue73=Set Item 62 Text -InputList3SigType73=Serial -InputList3Cue74=Set Item 63 Text -InputList3SigType74=Serial -InputList3Cue75=Set Item 64 Text -InputList3SigType75=Serial -InputList3Cue76=Set Item 65 Text -InputList3SigType76=Serial -InputList3Cue77=Set Item 66 Text -InputList3SigType77=Serial -InputList3Cue78=Set Item 67 Text -InputList3SigType78=Serial -InputList3Cue79=Set Item 68 Text -InputList3SigType79=Serial -InputList3Cue80=Set Item 69 Text -InputList3SigType80=Serial -InputList3Cue81=Set Item 70 Text -InputList3SigType81=Serial -InputList3Cue82=Set Item 71 Text -InputList3SigType82=Serial -InputList3Cue83=Set Item 72 Text -InputList3SigType83=Serial -InputList3Cue84=Set Item 73 Text -InputList3SigType84=Serial -InputList3Cue85=Set Item 74 Text -InputList3SigType85=Serial -InputList3Cue86=Set Item 75 Text -InputList3SigType86=Serial -InputList3Cue87=Set Item 76 Text -InputList3SigType87=Serial -InputList3Cue88=Set Item 77 Text -InputList3SigType88=Serial -InputList3Cue89=Set Item 78 Text -InputList3SigType89=Serial -InputList3Cue90=Set Item 79 Text -InputList3SigType90=Serial -InputList3Cue91=Set Item 80 Text -InputList3SigType91=Serial -InputList3Cue92=Set Item 81 Text -InputList3SigType92=Serial -InputList3Cue93=Set Item 82 Text -InputList3SigType93=Serial -InputList3Cue94=Set Item 83 Text -InputList3SigType94=Serial -InputList3Cue95=Set Item 84 Text -InputList3SigType95=Serial -InputList3Cue96=Set Item 85 Text -InputList3SigType96=Serial -InputList3Cue97=Set Item 86 Text -InputList3SigType97=Serial -InputList3Cue98=Set Item 87 Text -InputList3SigType98=Serial -InputList3Cue99=Set Item 88 Text -InputList3SigType99=Serial -InputList3Cue100=Set Item 89 Text -InputList3SigType100=Serial -InputList3Cue101=Set Item 90 Text -InputList3SigType101=Serial -InputList3Cue102=Set Item 91 Text -InputList3SigType102=Serial -InputList3Cue103=Set Item 92 Text -InputList3SigType103=Serial -InputList3Cue104=Set Item 93 Text -InputList3SigType104=Serial -InputList3Cue105=Set Item 94 Text -InputList3SigType105=Serial -InputList3Cue106=Set Item 95 Text -InputList3SigType106=Serial -InputList3Cue107=Set Item 96 Text -InputList3SigType107=Serial -InputList3Cue108=Set Item 97 Text -InputList3SigType108=Serial -InputList3Cue109=Set Item 98 Text -InputList3SigType109=Serial -InputList3Cue110=Set Item 99 Text -InputList3SigType110=Serial -InputList3Cue111=Set Item 100 Text -InputList3SigType111=Serial -InputList3Cue112=Set Item 101 Text -InputList3SigType112=Serial -InputList3Cue113=Set Item 102 Text -InputList3SigType113=Serial -InputList3Cue114=Set Item 103 Text -InputList3SigType114=Serial -InputList3Cue115=Set Item 104 Text -InputList3SigType115=Serial -InputList3Cue116=Set Item 105 Text -InputList3SigType116=Serial -InputList3Cue117=Set Item 106 Text -InputList3SigType117=Serial -InputList3Cue118=Set Item 107 Text -InputList3SigType118=Serial -InputList3Cue119=Set Item 108 Text -InputList3SigType119=Serial -InputList3Cue120=Set Item 109 Text -InputList3SigType120=Serial -InputList3Cue121=Set Item 110 Text -InputList3SigType121=Serial -InputList3Cue122=Set Item 111 Text -InputList3SigType122=Serial -InputList3Cue123=Set Item 112 Text -InputList3SigType123=Serial -InputList3Cue124=Set Item 113 Text -InputList3SigType124=Serial -InputList3Cue125=Set Item 114 Text -InputList3SigType125=Serial -InputList3Cue126=Set Item 115 Text -InputList3SigType126=Serial -InputList3Cue127=Set Item 116 Text -InputList3SigType127=Serial -InputList3Cue128=Set Item 117 Text -InputList3SigType128=Serial -InputList3Cue129=Set Item 118 Text -InputList3SigType129=Serial -InputList3Cue130=Set Item 119 Text -InputList3SigType130=Serial -InputList3Cue131=Set Item 120 Text -InputList3SigType131=Serial -InputList3Cue132=Set Item 121 Text -InputList3SigType132=Serial -InputList3Cue133=Set Item 122 Text -InputList3SigType133=Serial -InputList3Cue134=Set Item 123 Text -InputList3SigType134=Serial -InputList3Cue135=Set Item 124 Text -InputList3SigType135=Serial -InputList3Cue136=Set Item 125 Text -InputList3SigType136=Serial -InputList3Cue137=Set Item 126 Text -InputList3SigType137=Serial -InputList3Cue138=Set Item 127 Text -InputList3SigType138=Serial -InputList3Cue139=Set Item 128 Text -InputList3SigType139=Serial -InputList3Cue140=Set Item 129 Text -InputList3SigType140=Serial -InputList3Cue141=Set Item 130 Text -InputList3SigType141=Serial -InputList3Cue142=Set Item 131 Text -InputList3SigType142=Serial -InputList3Cue143=Set Item 132 Text -InputList3SigType143=Serial -InputList3Cue144=Set Item 133 Text -InputList3SigType144=Serial -InputList3Cue145=Set Item 134 Text -InputList3SigType145=Serial -InputList3Cue146=Set Item 135 Text -InputList3SigType146=Serial -InputList3Cue147=Set Item 136 Text -InputList3SigType147=Serial -InputList3Cue148=Set Item 137 Text -InputList3SigType148=Serial -InputList3Cue149=Set Item 138 Text -InputList3SigType149=Serial -InputList3Cue150=Set Item 139 Text -InputList3SigType150=Serial -InputList3Cue151=Set Item 140 Text -InputList3SigType151=Serial -InputList3Cue152=Set Item 141 Text -InputList3SigType152=Serial -InputList3Cue153=Set Item 142 Text -InputList3SigType153=Serial -InputList3Cue154=Set Item 143 Text -InputList3SigType154=Serial -InputList3Cue155=Set Item 144 Text -InputList3SigType155=Serial -InputList3Cue156=Set Item 145 Text -InputList3SigType156=Serial -InputList3Cue157=Set Item 146 Text -InputList3SigType157=Serial -InputList3Cue158=Set Item 147 Text -InputList3SigType158=Serial -InputList3Cue159=Set Item 148 Text -InputList3SigType159=Serial -InputList3Cue160=Set Item 149 Text -InputList3SigType160=Serial -InputList3Cue161=Set Item 150 Text -InputList3SigType161=Serial -InputList3Cue162=Set Item 151 Text -InputList3SigType162=Serial -InputList3Cue163=Set Item 152 Text -InputList3SigType163=Serial -InputList3Cue164=Set Item 153 Text -InputList3SigType164=Serial -InputList3Cue165=Set Item 154 Text -InputList3SigType165=Serial -InputList3Cue166=Set Item 155 Text -InputList3SigType166=Serial -InputList3Cue167=Set Item 156 Text -InputList3SigType167=Serial -InputList3Cue168=Set Item 157 Text -InputList3SigType168=Serial -InputList3Cue169=Set Item 158 Text -InputList3SigType169=Serial -InputList3Cue170=Set Item 159 Text -InputList3SigType170=Serial -InputList3Cue171=Set Item 160 Text -InputList3SigType171=Serial -InputList3Cue172=Set Item 161 Text -InputList3SigType172=Serial -InputList3Cue173=Set Item 162 Text -InputList3SigType173=Serial -InputList3Cue174=Set Item 163 Text -InputList3SigType174=Serial -InputList3Cue175=Set Item 164 Text -InputList3SigType175=Serial -InputList3Cue176=Set Item 165 Text -InputList3SigType176=Serial -InputList3Cue177=Set Item 166 Text -InputList3SigType177=Serial -InputList3Cue178=Set Item 167 Text -InputList3SigType178=Serial -InputList3Cue179=Set Item 168 Text -InputList3SigType179=Serial -InputList3Cue180=Set Item 169 Text -InputList3SigType180=Serial -InputList3Cue181=Set Item 170 Text -InputList3SigType181=Serial -InputList3Cue182=Set Item 171 Text -InputList3SigType182=Serial -InputList3Cue183=Set Item 172 Text -InputList3SigType183=Serial -InputList3Cue184=Set Item 173 Text -InputList3SigType184=Serial -InputList3Cue185=Set Item 174 Text -InputList3SigType185=Serial -InputList3Cue186=Set Item 175 Text -InputList3SigType186=Serial -InputList3Cue187=Set Item 176 Text -InputList3SigType187=Serial -InputList3Cue188=Set Item 177 Text -InputList3SigType188=Serial -InputList3Cue189=Set Item 178 Text -InputList3SigType189=Serial -InputList3Cue190=Set Item 179 Text -InputList3SigType190=Serial -InputList3Cue191=Set Item 180 Text -InputList3SigType191=Serial -InputList3Cue192=Set Item 181 Text -InputList3SigType192=Serial -InputList3Cue193=Set Item 182 Text -InputList3SigType193=Serial -InputList3Cue194=Set Item 183 Text -InputList3SigType194=Serial -InputList3Cue195=Set Item 184 Text -InputList3SigType195=Serial -InputList3Cue196=Set Item 185 Text -InputList3SigType196=Serial -InputList3Cue197=Set Item 186 Text -InputList3SigType197=Serial -InputList3Cue198=Set Item 187 Text -InputList3SigType198=Serial -InputList3Cue199=Set Item 188 Text -InputList3SigType199=Serial -InputList3Cue200=Set Item 189 Text -InputList3SigType200=Serial -InputList3Cue201=Set Item 190 Text -InputList3SigType201=Serial -InputList3Cue202=Set Item 191 Text -InputList3SigType202=Serial -InputList3Cue203=Set Item 192 Text -InputList3SigType203=Serial -InputList3Cue204=Set Item 193 Text -InputList3SigType204=Serial -InputList3Cue205=Set Item 194 Text -InputList3SigType205=Serial -InputList3Cue206=Set Item 195 Text -InputList3SigType206=Serial -InputList3Cue207=Set Item 196 Text -InputList3SigType207=Serial -InputList3Cue208=Set Item 197 Text -InputList3SigType208=Serial -InputList3Cue209=Set Item 198 Text -InputList3SigType209=Serial -InputList3Cue210=Set Item 199 Text -InputList3SigType210=Serial -InputList3Cue211=Set Item 200 Text -InputList3SigType211=Serial -InputList3Cue212=Set Item 201 Text -InputList3SigType212=Serial -InputList3Cue213=Set Item 202 Text -InputList3SigType213=Serial -InputList3Cue214=Set Item 203 Text -InputList3SigType214=Serial -InputList3Cue215=Set Item 204 Text -InputList3SigType215=Serial -InputList3Cue216=Set Item 205 Text -InputList3SigType216=Serial -InputList3Cue217=Set Item 206 Text -InputList3SigType217=Serial -InputList3Cue218=Set Item 207 Text -InputList3SigType218=Serial -InputList3Cue219=Set Item 208 Text -InputList3SigType219=Serial -InputList3Cue220=Set Item 209 Text -InputList3SigType220=Serial -InputList3Cue221=Set Item 210 Text -InputList3SigType221=Serial -InputList3Cue222=Set Item 211 Text -InputList3SigType222=Serial -InputList3Cue223=Set Item 212 Text -InputList3SigType223=Serial -InputList3Cue224=Set Item 213 Text -InputList3SigType224=Serial -InputList3Cue225=Set Item 214 Text -InputList3SigType225=Serial -InputList3Cue226=Set Item 215 Text -InputList3SigType226=Serial -InputList3Cue227=Set Item 216 Text -InputList3SigType227=Serial -InputList3Cue228=Set Item 217 Text -InputList3SigType228=Serial -InputList3Cue229=Set Item 218 Text -InputList3SigType229=Serial -InputList3Cue230=Set Item 219 Text -InputList3SigType230=Serial -InputList3Cue231=Set Item 220 Text -InputList3SigType231=Serial -InputList3Cue232=Set Item 221 Text -InputList3SigType232=Serial -InputList3Cue233=Set Item 222 Text -InputList3SigType233=Serial -InputList3Cue234=Set Item 223 Text -InputList3SigType234=Serial -InputList3Cue235=Set Item 224 Text -InputList3SigType235=Serial -InputList3Cue236=Set Item 225 Text -InputList3SigType236=Serial -InputList3Cue237=Set Item 226 Text -InputList3SigType237=Serial -InputList3Cue238=Set Item 227 Text -InputList3SigType238=Serial -InputList3Cue239=Set Item 228 Text -InputList3SigType239=Serial -InputList3Cue240=Set Item 229 Text -InputList3SigType240=Serial -InputList3Cue241=Set Item 230 Text -InputList3SigType241=Serial -InputList3Cue242=Set Item 231 Text -InputList3SigType242=Serial -InputList3Cue243=Set Item 232 Text -InputList3SigType243=Serial -InputList3Cue244=Set Item 233 Text -InputList3SigType244=Serial -InputList3Cue245=Set Item 234 Text -InputList3SigType245=Serial -InputList3Cue246=Set Item 235 Text -InputList3SigType246=Serial -InputList3Cue247=Set Item 236 Text -InputList3SigType247=Serial -InputList3Cue248=Set Item 237 Text -InputList3SigType248=Serial -InputList3Cue249=Set Item 238 Text -InputList3SigType249=Serial -InputList3Cue250=Set Item 239 Text -InputList3SigType250=Serial -InputList3Cue251=Set Item 240 Text -InputList3SigType251=Serial -InputList3Cue252=Set Item 241 Text -InputList3SigType252=Serial -InputList3Cue253=Set Item 242 Text -InputList3SigType253=Serial -InputList3Cue254=Set Item 243 Text -InputList3SigType254=Serial -InputList3Cue255=Set Item 244 Text -InputList3SigType255=Serial -InputList3Cue256=Set Item 245 Text -InputList3SigType256=Serial -InputList3Cue257=Set Item 246 Text -InputList3SigType257=Serial -InputList3Cue258=Set Item 247 Text -InputList3SigType258=Serial -InputList3Cue259=Set Item 248 Text -InputList3SigType259=Serial -InputList3Cue260=Set Item 249 Text -InputList3SigType260=Serial -InputList3Cue261=Set Item 250 Text -InputList3SigType261=Serial -InputList3Cue262=Set Item 251 Text -InputList3SigType262=Serial -InputList3Cue263=Set Item 252 Text -InputList3SigType263=Serial -InputList3Cue264=Set Item 253 Text -InputList3SigType264=Serial -InputList3Cue265=Set Item 254 Text -InputList3SigType265=Serial -InputList3Cue266=Set Item 255 Text -InputList3SigType266=Serial -InputList3Cue267=[~UNUSED2~] -InputList3SigType267=Digital|Analog|Serial|String -InputList3Cue2012=[~EndGroup~]Item Texts -InputList3SigType2012=Serial -InputList3Cue2013=[~BeginGroup~]Item Icons -InputList3SigType2013=Serial -InputList3Cue2014=Set Item 1 Icon Serial -InputList3SigType2014=Serial -InputList3Cue2015=Set Item 2 Icon Serial -InputList3SigType2015=Serial -InputList3Cue2016=Set Item 3 Icon Serial -InputList3SigType2016=Serial -InputList3Cue2017=Set Item 4 Icon Serial -InputList3SigType2017=Serial -InputList3Cue2018=Set Item 5 Icon Serial -InputList3SigType2018=Serial -InputList3Cue2019=Set Item 6 Icon Serial -InputList3SigType2019=Serial -InputList3Cue2020=Set Item 7 Icon Serial -InputList3SigType2020=Serial -InputList3Cue2021=Set Item 8 Icon Serial -InputList3SigType2021=Serial -InputList3Cue2022=Set Item 9 Icon Serial -InputList3SigType2022=Serial -InputList3Cue2023=Set Item 10 Icon Serial -InputList3SigType2023=Serial -InputList3Cue2024=Set Item 11 Icon Serial -InputList3SigType2024=Serial -InputList3Cue2025=Set Item 12 Icon Serial -InputList3SigType2025=Serial -InputList3Cue2026=Set Item 13 Icon Serial -InputList3SigType2026=Serial -InputList3Cue2027=Set Item 14 Icon Serial -InputList3SigType2027=Serial -InputList3Cue2028=Set Item 15 Icon Serial -InputList3SigType2028=Serial -InputList3Cue2029=Set Item 16 Icon Serial -InputList3SigType2029=Serial -InputList3Cue2030=Set Item 17 Icon Serial -InputList3SigType2030=Serial -InputList3Cue2031=Set Item 18 Icon Serial -InputList3SigType2031=Serial -InputList3Cue2032=Set Item 19 Icon Serial -InputList3SigType2032=Serial -InputList3Cue2033=Set Item 20 Icon Serial -InputList3SigType2033=Serial -InputList3Cue2034=Set Item 21 Icon Serial -InputList3SigType2034=Serial -InputList3Cue2035=Set Item 22 Icon Serial -InputList3SigType2035=Serial -InputList3Cue2036=Set Item 23 Icon Serial -InputList3SigType2036=Serial -InputList3Cue2037=Set Item 24 Icon Serial -InputList3SigType2037=Serial -InputList3Cue2038=Set Item 25 Icon Serial -InputList3SigType2038=Serial -InputList3Cue2039=Set Item 26 Icon Serial -InputList3SigType2039=Serial -InputList3Cue2040=Set Item 27 Icon Serial -InputList3SigType2040=Serial -InputList3Cue2041=Set Item 28 Icon Serial -InputList3SigType2041=Serial -InputList3Cue2042=Set Item 29 Icon Serial -InputList3SigType2042=Serial -InputList3Cue2043=Set Item 30 Icon Serial -InputList3SigType2043=Serial -InputList3Cue2044=Set Item 31 Icon Serial -InputList3SigType2044=Serial -InputList3Cue2045=Set Item 32 Icon Serial -InputList3SigType2045=Serial -InputList3Cue2046=Set Item 33 Icon Serial -InputList3SigType2046=Serial -InputList3Cue2047=Set Item 34 Icon Serial -InputList3SigType2047=Serial -InputList3Cue2048=Set Item 35 Icon Serial -InputList3SigType2048=Serial -InputList3Cue2049=Set Item 36 Icon Serial -InputList3SigType2049=Serial -InputList3Cue2050=Set Item 37 Icon Serial -InputList3SigType2050=Serial -InputList3Cue2051=Set Item 38 Icon Serial -InputList3SigType2051=Serial -InputList3Cue2052=Set Item 39 Icon Serial -InputList3SigType2052=Serial -InputList3Cue2053=Set Item 40 Icon Serial -InputList3SigType2053=Serial -InputList3Cue2054=Set Item 41 Icon Serial -InputList3SigType2054=Serial -InputList3Cue2055=Set Item 42 Icon Serial -InputList3SigType2055=Serial -InputList3Cue2056=Set Item 43 Icon Serial -InputList3SigType2056=Serial -InputList3Cue2057=Set Item 44 Icon Serial -InputList3SigType2057=Serial -InputList3Cue2058=Set Item 45 Icon Serial -InputList3SigType2058=Serial -InputList3Cue2059=Set Item 46 Icon Serial -InputList3SigType2059=Serial -InputList3Cue2060=Set Item 47 Icon Serial -InputList3SigType2060=Serial -InputList3Cue2061=Set Item 48 Icon Serial -InputList3SigType2061=Serial -InputList3Cue2062=Set Item 49 Icon Serial -InputList3SigType2062=Serial -InputList3Cue2063=Set Item 50 Icon Serial -InputList3SigType2063=Serial -InputList3Cue2064=Set Item 51 Icon Serial -InputList3SigType2064=Serial -InputList3Cue2065=Set Item 52 Icon Serial -InputList3SigType2065=Serial -InputList3Cue2066=Set Item 53 Icon Serial -InputList3SigType2066=Serial -InputList3Cue2067=Set Item 54 Icon Serial -InputList3SigType2067=Serial -InputList3Cue2068=Set Item 55 Icon Serial -InputList3SigType2068=Serial -InputList3Cue2069=Set Item 56 Icon Serial -InputList3SigType2069=Serial -InputList3Cue2070=Set Item 57 Icon Serial -InputList3SigType2070=Serial -InputList3Cue2071=Set Item 58 Icon Serial -InputList3SigType2071=Serial -InputList3Cue2072=Set Item 59 Icon Serial -InputList3SigType2072=Serial -InputList3Cue2073=Set Item 60 Icon Serial -InputList3SigType2073=Serial -InputList3Cue2074=Set Item 61 Icon Serial -InputList3SigType2074=Serial -InputList3Cue2075=Set Item 62 Icon Serial -InputList3SigType2075=Serial -InputList3Cue2076=Set Item 63 Icon Serial -InputList3SigType2076=Serial -InputList3Cue2077=Set Item 64 Icon Serial -InputList3SigType2077=Serial -InputList3Cue2078=Set Item 65 Icon Serial -InputList3SigType2078=Serial -InputList3Cue2079=Set Item 66 Icon Serial -InputList3SigType2079=Serial -InputList3Cue2080=Set Item 67 Icon Serial -InputList3SigType2080=Serial -InputList3Cue2081=Set Item 68 Icon Serial -InputList3SigType2081=Serial -InputList3Cue2082=Set Item 69 Icon Serial -InputList3SigType2082=Serial -InputList3Cue2083=Set Item 70 Icon Serial -InputList3SigType2083=Serial -InputList3Cue2084=Set Item 71 Icon Serial -InputList3SigType2084=Serial -InputList3Cue2085=Set Item 72 Icon Serial -InputList3SigType2085=Serial -InputList3Cue2086=Set Item 73 Icon Serial -InputList3SigType2086=Serial -InputList3Cue2087=Set Item 74 Icon Serial -InputList3SigType2087=Serial -InputList3Cue2088=Set Item 75 Icon Serial -InputList3SigType2088=Serial -InputList3Cue2089=Set Item 76 Icon Serial -InputList3SigType2089=Serial -InputList3Cue2090=Set Item 77 Icon Serial -InputList3SigType2090=Serial -InputList3Cue2091=Set Item 78 Icon Serial -InputList3SigType2091=Serial -InputList3Cue2092=Set Item 79 Icon Serial -InputList3SigType2092=Serial -InputList3Cue2093=Set Item 80 Icon Serial -InputList3SigType2093=Serial -InputList3Cue2094=Set Item 81 Icon Serial -InputList3SigType2094=Serial -InputList3Cue2095=Set Item 82 Icon Serial -InputList3SigType2095=Serial -InputList3Cue2096=Set Item 83 Icon Serial -InputList3SigType2096=Serial -InputList3Cue2097=Set Item 84 Icon Serial -InputList3SigType2097=Serial -InputList3Cue2098=Set Item 85 Icon Serial -InputList3SigType2098=Serial -InputList3Cue2099=Set Item 86 Icon Serial -InputList3SigType2099=Serial -InputList3Cue2100=Set Item 87 Icon Serial -InputList3SigType2100=Serial -InputList3Cue2101=Set Item 88 Icon Serial -InputList3SigType2101=Serial -InputList3Cue2102=Set Item 89 Icon Serial -InputList3SigType2102=Serial -InputList3Cue2103=Set Item 90 Icon Serial -InputList3SigType2103=Serial -InputList3Cue2104=Set Item 91 Icon Serial -InputList3SigType2104=Serial -InputList3Cue2105=Set Item 92 Icon Serial -InputList3SigType2105=Serial -InputList3Cue2106=Set Item 93 Icon Serial -InputList3SigType2106=Serial -InputList3Cue2107=Set Item 94 Icon Serial -InputList3SigType2107=Serial -InputList3Cue2108=Set Item 95 Icon Serial -InputList3SigType2108=Serial -InputList3Cue2109=Set Item 96 Icon Serial -InputList3SigType2109=Serial -InputList3Cue2110=Set Item 97 Icon Serial -InputList3SigType2110=Serial -InputList3Cue2111=Set Item 98 Icon Serial -InputList3SigType2111=Serial -InputList3Cue2112=Set Item 99 Icon Serial -InputList3SigType2112=Serial -InputList3Cue2113=Set Item 100 Icon Serial -InputList3SigType2113=Serial -InputList3Cue2114=Set Item 101 Icon Serial -InputList3SigType2114=Serial -InputList3Cue2115=Set Item 102 Icon Serial -InputList3SigType2115=Serial -InputList3Cue2116=Set Item 103 Icon Serial -InputList3SigType2116=Serial -InputList3Cue2117=Set Item 104 Icon Serial -InputList3SigType2117=Serial -InputList3Cue2118=Set Item 105 Icon Serial -InputList3SigType2118=Serial -InputList3Cue2119=Set Item 106 Icon Serial -InputList3SigType2119=Serial -InputList3Cue2120=Set Item 107 Icon Serial -InputList3SigType2120=Serial -InputList3Cue2121=Set Item 108 Icon Serial -InputList3SigType2121=Serial -InputList3Cue2122=Set Item 109 Icon Serial -InputList3SigType2122=Serial -InputList3Cue2123=Set Item 110 Icon Serial -InputList3SigType2123=Serial -InputList3Cue2124=Set Item 111 Icon Serial -InputList3SigType2124=Serial -InputList3Cue2125=Set Item 112 Icon Serial -InputList3SigType2125=Serial -InputList3Cue2126=Set Item 113 Icon Serial -InputList3SigType2126=Serial -InputList3Cue2127=Set Item 114 Icon Serial -InputList3SigType2127=Serial -InputList3Cue2128=Set Item 115 Icon Serial -InputList3SigType2128=Serial -InputList3Cue2129=Set Item 116 Icon Serial -InputList3SigType2129=Serial -InputList3Cue2130=Set Item 117 Icon Serial -InputList3SigType2130=Serial -InputList3Cue2131=Set Item 118 Icon Serial -InputList3SigType2131=Serial -InputList3Cue2132=Set Item 119 Icon Serial -InputList3SigType2132=Serial -InputList3Cue2133=Set Item 120 Icon Serial -InputList3SigType2133=Serial -InputList3Cue2134=Set Item 121 Icon Serial -InputList3SigType2134=Serial -InputList3Cue2135=Set Item 122 Icon Serial -InputList3SigType2135=Serial -InputList3Cue2136=Set Item 123 Icon Serial -InputList3SigType2136=Serial -InputList3Cue2137=Set Item 124 Icon Serial -InputList3SigType2137=Serial -InputList3Cue2138=Set Item 125 Icon Serial -InputList3SigType2138=Serial -InputList3Cue2139=Set Item 126 Icon Serial -InputList3SigType2139=Serial -InputList3Cue2140=Set Item 127 Icon Serial -InputList3SigType2140=Serial -InputList3Cue2141=Set Item 128 Icon Serial -InputList3SigType2141=Serial -InputList3Cue2142=Set Item 129 Icon Serial -InputList3SigType2142=Serial -InputList3Cue2143=Set Item 130 Icon Serial -InputList3SigType2143=Serial -InputList3Cue2144=Set Item 131 Icon Serial -InputList3SigType2144=Serial -InputList3Cue2145=Set Item 132 Icon Serial -InputList3SigType2145=Serial -InputList3Cue2146=Set Item 133 Icon Serial -InputList3SigType2146=Serial -InputList3Cue2147=Set Item 134 Icon Serial -InputList3SigType2147=Serial -InputList3Cue2148=Set Item 135 Icon Serial -InputList3SigType2148=Serial -InputList3Cue2149=Set Item 136 Icon Serial -InputList3SigType2149=Serial -InputList3Cue2150=Set Item 137 Icon Serial -InputList3SigType2150=Serial -InputList3Cue2151=Set Item 138 Icon Serial -InputList3SigType2151=Serial -InputList3Cue2152=Set Item 139 Icon Serial -InputList3SigType2152=Serial -InputList3Cue2153=Set Item 140 Icon Serial -InputList3SigType2153=Serial -InputList3Cue2154=Set Item 141 Icon Serial -InputList3SigType2154=Serial -InputList3Cue2155=Set Item 142 Icon Serial -InputList3SigType2155=Serial -InputList3Cue2156=Set Item 143 Icon Serial -InputList3SigType2156=Serial -InputList3Cue2157=Set Item 144 Icon Serial -InputList3SigType2157=Serial -InputList3Cue2158=Set Item 145 Icon Serial -InputList3SigType2158=Serial -InputList3Cue2159=Set Item 146 Icon Serial -InputList3SigType2159=Serial -InputList3Cue2160=Set Item 147 Icon Serial -InputList3SigType2160=Serial -InputList3Cue2161=Set Item 148 Icon Serial -InputList3SigType2161=Serial -InputList3Cue2162=Set Item 149 Icon Serial -InputList3SigType2162=Serial -InputList3Cue2163=Set Item 150 Icon Serial -InputList3SigType2163=Serial -InputList3Cue2164=Set Item 151 Icon Serial -InputList3SigType2164=Serial -InputList3Cue2165=Set Item 152 Icon Serial -InputList3SigType2165=Serial -InputList3Cue2166=Set Item 153 Icon Serial -InputList3SigType2166=Serial -InputList3Cue2167=Set Item 154 Icon Serial -InputList3SigType2167=Serial -InputList3Cue2168=Set Item 155 Icon Serial -InputList3SigType2168=Serial -InputList3Cue2169=Set Item 156 Icon Serial -InputList3SigType2169=Serial -InputList3Cue2170=Set Item 157 Icon Serial -InputList3SigType2170=Serial -InputList3Cue2171=Set Item 158 Icon Serial -InputList3SigType2171=Serial -InputList3Cue2172=Set Item 159 Icon Serial -InputList3SigType2172=Serial -InputList3Cue2173=Set Item 160 Icon Serial -InputList3SigType2173=Serial -InputList3Cue2174=Set Item 161 Icon Serial -InputList3SigType2174=Serial -InputList3Cue2175=Set Item 162 Icon Serial -InputList3SigType2175=Serial -InputList3Cue2176=Set Item 163 Icon Serial -InputList3SigType2176=Serial -InputList3Cue2177=Set Item 164 Icon Serial -InputList3SigType2177=Serial -InputList3Cue2178=Set Item 165 Icon Serial -InputList3SigType2178=Serial -InputList3Cue2179=Set Item 166 Icon Serial -InputList3SigType2179=Serial -InputList3Cue2180=Set Item 167 Icon Serial -InputList3SigType2180=Serial -InputList3Cue2181=Set Item 168 Icon Serial -InputList3SigType2181=Serial -InputList3Cue2182=Set Item 169 Icon Serial -InputList3SigType2182=Serial -InputList3Cue2183=Set Item 170 Icon Serial -InputList3SigType2183=Serial -InputList3Cue2184=Set Item 171 Icon Serial -InputList3SigType2184=Serial -InputList3Cue2185=Set Item 172 Icon Serial -InputList3SigType2185=Serial -InputList3Cue2186=Set Item 173 Icon Serial -InputList3SigType2186=Serial -InputList3Cue2187=Set Item 174 Icon Serial -InputList3SigType2187=Serial -InputList3Cue2188=Set Item 175 Icon Serial -InputList3SigType2188=Serial -InputList3Cue2189=Set Item 176 Icon Serial -InputList3SigType2189=Serial -InputList3Cue2190=Set Item 177 Icon Serial -InputList3SigType2190=Serial -InputList3Cue2191=Set Item 178 Icon Serial -InputList3SigType2191=Serial -InputList3Cue2192=Set Item 179 Icon Serial -InputList3SigType2192=Serial -InputList3Cue2193=Set Item 180 Icon Serial -InputList3SigType2193=Serial -InputList3Cue2194=Set Item 181 Icon Serial -InputList3SigType2194=Serial -InputList3Cue2195=Set Item 182 Icon Serial -InputList3SigType2195=Serial -InputList3Cue2196=Set Item 183 Icon Serial -InputList3SigType2196=Serial -InputList3Cue2197=Set Item 184 Icon Serial -InputList3SigType2197=Serial -InputList3Cue2198=Set Item 185 Icon Serial -InputList3SigType2198=Serial -InputList3Cue2199=Set Item 186 Icon Serial -InputList3SigType2199=Serial -InputList3Cue2200=Set Item 187 Icon Serial -InputList3SigType2200=Serial -InputList3Cue2201=Set Item 188 Icon Serial -InputList3SigType2201=Serial -InputList3Cue2202=Set Item 189 Icon Serial -InputList3SigType2202=Serial -InputList3Cue2203=Set Item 190 Icon Serial -InputList3SigType2203=Serial -InputList3Cue2204=Set Item 191 Icon Serial -InputList3SigType2204=Serial -InputList3Cue2205=Set Item 192 Icon Serial -InputList3SigType2205=Serial -InputList3Cue2206=Set Item 193 Icon Serial -InputList3SigType2206=Serial -InputList3Cue2207=Set Item 194 Icon Serial -InputList3SigType2207=Serial -InputList3Cue2208=Set Item 195 Icon Serial -InputList3SigType2208=Serial -InputList3Cue2209=Set Item 196 Icon Serial -InputList3SigType2209=Serial -InputList3Cue2210=Set Item 197 Icon Serial -InputList3SigType2210=Serial -InputList3Cue2211=Set Item 198 Icon Serial -InputList3SigType2211=Serial -InputList3Cue2212=Set Item 199 Icon Serial -InputList3SigType2212=Serial -InputList3Cue2213=Set Item 200 Icon Serial -InputList3SigType2213=Serial -InputList3Cue2214=Set Item 201 Icon Serial -InputList3SigType2214=Serial -InputList3Cue2215=Set Item 202 Icon Serial -InputList3SigType2215=Serial -InputList3Cue2216=Set Item 203 Icon Serial -InputList3SigType2216=Serial -InputList3Cue2217=Set Item 204 Icon Serial -InputList3SigType2217=Serial -InputList3Cue2218=Set Item 205 Icon Serial -InputList3SigType2218=Serial -InputList3Cue2219=Set Item 206 Icon Serial -InputList3SigType2219=Serial -InputList3Cue2220=Set Item 207 Icon Serial -InputList3SigType2220=Serial -InputList3Cue2221=Set Item 208 Icon Serial -InputList3SigType2221=Serial -InputList3Cue2222=Set Item 209 Icon Serial -InputList3SigType2222=Serial -InputList3Cue2223=Set Item 210 Icon Serial -InputList3SigType2223=Serial -InputList3Cue2224=Set Item 211 Icon Serial -InputList3SigType2224=Serial -InputList3Cue2225=Set Item 212 Icon Serial -InputList3SigType2225=Serial -InputList3Cue2226=Set Item 213 Icon Serial -InputList3SigType2226=Serial -InputList3Cue2227=Set Item 214 Icon Serial -InputList3SigType2227=Serial -InputList3Cue2228=Set Item 215 Icon Serial -InputList3SigType2228=Serial -InputList3Cue2229=Set Item 216 Icon Serial -InputList3SigType2229=Serial -InputList3Cue2230=Set Item 217 Icon Serial -InputList3SigType2230=Serial -InputList3Cue2231=Set Item 218 Icon Serial -InputList3SigType2231=Serial -InputList3Cue2232=Set Item 219 Icon Serial -InputList3SigType2232=Serial -InputList3Cue2233=Set Item 220 Icon Serial -InputList3SigType2233=Serial -InputList3Cue2234=Set Item 221 Icon Serial -InputList3SigType2234=Serial -InputList3Cue2235=Set Item 222 Icon Serial -InputList3SigType2235=Serial -InputList3Cue2236=Set Item 223 Icon Serial -InputList3SigType2236=Serial -InputList3Cue2237=Set Item 224 Icon Serial -InputList3SigType2237=Serial -InputList3Cue2238=Set Item 225 Icon Serial -InputList3SigType2238=Serial -InputList3Cue2239=Set Item 226 Icon Serial -InputList3SigType2239=Serial -InputList3Cue2240=Set Item 227 Icon Serial -InputList3SigType2240=Serial -InputList3Cue2241=Set Item 228 Icon Serial -InputList3SigType2241=Serial -InputList3Cue2242=Set Item 229 Icon Serial -InputList3SigType2242=Serial -InputList3Cue2243=Set Item 230 Icon Serial -InputList3SigType2243=Serial -InputList3Cue2244=Set Item 231 Icon Serial -InputList3SigType2244=Serial -InputList3Cue2245=Set Item 232 Icon Serial -InputList3SigType2245=Serial -InputList3Cue2246=Set Item 233 Icon Serial -InputList3SigType2246=Serial -InputList3Cue2247=Set Item 234 Icon Serial -InputList3SigType2247=Serial -InputList3Cue2248=Set Item 235 Icon Serial -InputList3SigType2248=Serial -InputList3Cue2249=Set Item 236 Icon Serial -InputList3SigType2249=Serial -InputList3Cue2250=Set Item 237 Icon Serial -InputList3SigType2250=Serial -InputList3Cue2251=Set Item 238 Icon Serial -InputList3SigType2251=Serial -InputList3Cue2252=Set Item 239 Icon Serial -InputList3SigType2252=Serial -InputList3Cue2253=Set Item 240 Icon Serial -InputList3SigType2253=Serial -InputList3Cue2254=Set Item 241 Icon Serial -InputList3SigType2254=Serial -InputList3Cue2255=Set Item 242 Icon Serial -InputList3SigType2255=Serial -InputList3Cue2256=Set Item 243 Icon Serial -InputList3SigType2256=Serial -InputList3Cue2257=Set Item 244 Icon Serial -InputList3SigType2257=Serial -InputList3Cue2258=Set Item 245 Icon Serial -InputList3SigType2258=Serial -InputList3Cue2259=Set Item 246 Icon Serial -InputList3SigType2259=Serial -InputList3Cue2260=Set Item 247 Icon Serial -InputList3SigType2260=Serial -InputList3Cue2261=Set Item 248 Icon Serial -InputList3SigType2261=Serial -InputList3Cue2262=Set Item 249 Icon Serial -InputList3SigType2262=Serial -InputList3Cue2263=Set Item 250 Icon Serial -InputList3SigType2263=Serial -InputList3Cue2264=Set Item 251 Icon Serial -InputList3SigType2264=Serial -InputList3Cue2265=Set Item 252 Icon Serial -InputList3SigType2265=Serial -InputList3Cue2266=Set Item 253 Icon Serial -InputList3SigType2266=Serial -InputList3Cue2267=Set Item 254 Icon Serial -InputList3SigType2267=Serial -InputList3Cue2268=Set Item 255 Icon Serial -InputList3SigType2268=Serial -InputList3Cue2269=[~UNUSED2~] -InputList3SigType2269=Digital|Analog|Serial|String -InputList3Cue4014=[~EndGroup~]Item Icons -InputList3SigType4014=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]Item Texts -OutputList3SigType11=Serial -OutputList3Cue12=[~UNUSED3~] -OutputList3SigType12=Serial -OutputList3Cue13=[~UNUSED3~] -OutputList3SigType13=Serial -OutputList3Cue14=[~UNUSED3~] -OutputList3SigType14=Serial -OutputList3Cue15=[~UNUSED3~] -OutputList3SigType15=Serial -OutputList3Cue16=[~UNUSED3~] -OutputList3SigType16=Serial -OutputList3Cue17=[~UNUSED3~] -OutputList3SigType17=Serial -OutputList3Cue18=[~UNUSED3~] -OutputList3SigType18=Serial -OutputList3Cue19=[~UNUSED3~] -OutputList3SigType19=Serial -OutputList3Cue20=[~UNUSED3~] -OutputList3SigType20=Serial -OutputList3Cue21=[~UNUSED3~] -OutputList3SigType21=Serial -OutputList3Cue22=[~UNUSED3~] -OutputList3SigType22=Serial -OutputList3Cue23=[~UNUSED3~] -OutputList3SigType23=Serial -OutputList3Cue24=[~UNUSED3~] -OutputList3SigType24=Serial -OutputList3Cue25=[~UNUSED3~] -OutputList3SigType25=Serial -OutputList3Cue26=[~UNUSED3~] -OutputList3SigType26=Serial -OutputList3Cue27=[~UNUSED3~] -OutputList3SigType27=Serial -OutputList3Cue28=[~UNUSED3~] -OutputList3SigType28=Serial -OutputList3Cue29=[~UNUSED3~] -OutputList3SigType29=Serial -OutputList3Cue30=[~UNUSED3~] -OutputList3SigType30=Serial -OutputList3Cue31=[~UNUSED3~] -OutputList3SigType31=Serial -OutputList3Cue32=[~UNUSED3~] -OutputList3SigType32=Serial -OutputList3Cue33=[~UNUSED3~] -OutputList3SigType33=Serial -OutputList3Cue34=[~UNUSED3~] -OutputList3SigType34=Serial -OutputList3Cue35=[~UNUSED3~] -OutputList3SigType35=Serial -OutputList3Cue36=[~UNUSED3~] -OutputList3SigType36=Serial -OutputList3Cue37=[~UNUSED3~] -OutputList3SigType37=Serial -OutputList3Cue38=[~UNUSED3~] -OutputList3SigType38=Serial -OutputList3Cue39=[~UNUSED3~] -OutputList3SigType39=Serial -OutputList3Cue40=[~UNUSED3~] -OutputList3SigType40=Serial -OutputList3Cue41=[~UNUSED3~] -OutputList3SigType41=Serial -OutputList3Cue42=[~UNUSED3~] -OutputList3SigType42=Serial -OutputList3Cue43=[~UNUSED3~] -OutputList3SigType43=Serial -OutputList3Cue44=[~UNUSED3~] -OutputList3SigType44=Serial -OutputList3Cue45=[~UNUSED3~] -OutputList3SigType45=Serial -OutputList3Cue46=[~UNUSED3~] -OutputList3SigType46=Serial -OutputList3Cue47=[~UNUSED3~] -OutputList3SigType47=Serial -OutputList3Cue48=[~UNUSED3~] -OutputList3SigType48=Serial -OutputList3Cue49=[~UNUSED3~] -OutputList3SigType49=Serial -OutputList3Cue50=[~UNUSED3~] -OutputList3SigType50=Serial -OutputList3Cue51=[~UNUSED3~] -OutputList3SigType51=Serial -OutputList3Cue52=[~UNUSED3~] -OutputList3SigType52=Serial -OutputList3Cue53=[~UNUSED3~] -OutputList3SigType53=Serial -OutputList3Cue54=[~UNUSED3~] -OutputList3SigType54=Serial -OutputList3Cue55=[~UNUSED3~] -OutputList3SigType55=Serial -OutputList3Cue56=[~UNUSED3~] -OutputList3SigType56=Serial -OutputList3Cue57=[~UNUSED3~] -OutputList3SigType57=Serial -OutputList3Cue58=[~UNUSED3~] -OutputList3SigType58=Serial -OutputList3Cue59=[~UNUSED3~] -OutputList3SigType59=Serial -OutputList3Cue60=[~UNUSED3~] -OutputList3SigType60=Serial -OutputList3Cue61=[~UNUSED3~] -OutputList3SigType61=Serial -OutputList3Cue62=[~UNUSED3~] -OutputList3SigType62=Serial -OutputList3Cue63=[~UNUSED3~] -OutputList3SigType63=Serial -OutputList3Cue64=[~UNUSED3~] -OutputList3SigType64=Serial -OutputList3Cue65=[~UNUSED3~] -OutputList3SigType65=Serial -OutputList3Cue66=[~UNUSED3~] -OutputList3SigType66=Serial -OutputList3Cue67=[~UNUSED3~] -OutputList3SigType67=Serial -OutputList3Cue68=[~UNUSED3~] -OutputList3SigType68=Serial -OutputList3Cue69=[~UNUSED3~] -OutputList3SigType69=Serial -OutputList3Cue70=[~UNUSED3~] -OutputList3SigType70=Serial -OutputList3Cue71=[~UNUSED3~] -OutputList3SigType71=Serial -OutputList3Cue72=[~UNUSED3~] -OutputList3SigType72=Serial -OutputList3Cue73=[~UNUSED3~] -OutputList3SigType73=Serial -OutputList3Cue74=[~UNUSED3~] -OutputList3SigType74=Serial -OutputList3Cue75=[~UNUSED3~] -OutputList3SigType75=Serial -OutputList3Cue76=[~UNUSED3~] -OutputList3SigType76=Serial -OutputList3Cue77=[~UNUSED3~] -OutputList3SigType77=Serial -OutputList3Cue78=[~UNUSED3~] -OutputList3SigType78=Serial -OutputList3Cue79=[~UNUSED3~] -OutputList3SigType79=Serial -OutputList3Cue80=[~UNUSED3~] -OutputList3SigType80=Serial -OutputList3Cue81=[~UNUSED3~] -OutputList3SigType81=Serial -OutputList3Cue82=[~UNUSED3~] -OutputList3SigType82=Serial -OutputList3Cue83=[~UNUSED3~] -OutputList3SigType83=Serial -OutputList3Cue84=[~UNUSED3~] -OutputList3SigType84=Serial -OutputList3Cue85=[~UNUSED3~] -OutputList3SigType85=Serial -OutputList3Cue86=[~UNUSED3~] -OutputList3SigType86=Serial -OutputList3Cue87=[~UNUSED3~] -OutputList3SigType87=Serial -OutputList3Cue88=[~UNUSED3~] -OutputList3SigType88=Serial -OutputList3Cue89=[~UNUSED3~] -OutputList3SigType89=Serial -OutputList3Cue90=[~UNUSED3~] -OutputList3SigType90=Serial -OutputList3Cue91=[~UNUSED3~] -OutputList3SigType91=Serial -OutputList3Cue92=[~UNUSED3~] -OutputList3SigType92=Serial -OutputList3Cue93=[~UNUSED3~] -OutputList3SigType93=Serial -OutputList3Cue94=[~UNUSED3~] -OutputList3SigType94=Serial -OutputList3Cue95=[~UNUSED3~] -OutputList3SigType95=Serial -OutputList3Cue96=[~UNUSED3~] -OutputList3SigType96=Serial -OutputList3Cue97=[~UNUSED3~] -OutputList3SigType97=Serial -OutputList3Cue98=[~UNUSED3~] -OutputList3SigType98=Serial -OutputList3Cue99=[~UNUSED3~] -OutputList3SigType99=Serial -OutputList3Cue100=[~UNUSED3~] -OutputList3SigType100=Serial -OutputList3Cue101=[~UNUSED3~] -OutputList3SigType101=Serial -OutputList3Cue102=[~UNUSED3~] -OutputList3SigType102=Serial -OutputList3Cue103=[~UNUSED3~] -OutputList3SigType103=Serial -OutputList3Cue104=[~UNUSED3~] -OutputList3SigType104=Serial -OutputList3Cue105=[~UNUSED3~] -OutputList3SigType105=Serial -OutputList3Cue106=[~UNUSED3~] -OutputList3SigType106=Serial -OutputList3Cue107=[~UNUSED3~] -OutputList3SigType107=Serial -OutputList3Cue108=[~UNUSED3~] -OutputList3SigType108=Serial -OutputList3Cue109=[~UNUSED3~] -OutputList3SigType109=Serial -OutputList3Cue110=[~UNUSED3~] -OutputList3SigType110=Serial -OutputList3Cue111=[~UNUSED3~] -OutputList3SigType111=Serial -OutputList3Cue112=[~UNUSED3~] -OutputList3SigType112=Serial -OutputList3Cue113=[~UNUSED3~] -OutputList3SigType113=Serial -OutputList3Cue114=[~UNUSED3~] -OutputList3SigType114=Serial -OutputList3Cue115=[~UNUSED3~] -OutputList3SigType115=Serial -OutputList3Cue116=[~UNUSED3~] -OutputList3SigType116=Serial -OutputList3Cue117=[~UNUSED3~] -OutputList3SigType117=Serial -OutputList3Cue118=[~UNUSED3~] -OutputList3SigType118=Serial -OutputList3Cue119=[~UNUSED3~] -OutputList3SigType119=Serial -OutputList3Cue120=[~UNUSED3~] -OutputList3SigType120=Serial -OutputList3Cue121=[~UNUSED3~] -OutputList3SigType121=Serial -OutputList3Cue122=[~UNUSED3~] -OutputList3SigType122=Serial -OutputList3Cue123=[~UNUSED3~] -OutputList3SigType123=Serial -OutputList3Cue124=[~UNUSED3~] -OutputList3SigType124=Serial -OutputList3Cue125=[~UNUSED3~] -OutputList3SigType125=Serial -OutputList3Cue126=[~UNUSED3~] -OutputList3SigType126=Serial -OutputList3Cue127=[~UNUSED3~] -OutputList3SigType127=Serial -OutputList3Cue128=[~UNUSED3~] -OutputList3SigType128=Serial -OutputList3Cue129=[~UNUSED3~] -OutputList3SigType129=Serial -OutputList3Cue130=[~UNUSED3~] -OutputList3SigType130=Serial -OutputList3Cue131=[~UNUSED3~] -OutputList3SigType131=Serial -OutputList3Cue132=[~UNUSED3~] -OutputList3SigType132=Serial -OutputList3Cue133=[~UNUSED3~] -OutputList3SigType133=Serial -OutputList3Cue134=[~UNUSED3~] -OutputList3SigType134=Serial -OutputList3Cue135=[~UNUSED3~] -OutputList3SigType135=Serial -OutputList3Cue136=[~UNUSED3~] -OutputList3SigType136=Serial -OutputList3Cue137=[~UNUSED3~] -OutputList3SigType137=Serial -OutputList3Cue138=[~UNUSED3~] -OutputList3SigType138=Serial -OutputList3Cue139=[~UNUSED3~] -OutputList3SigType139=Serial -OutputList3Cue140=[~UNUSED3~] -OutputList3SigType140=Serial -OutputList3Cue141=[~UNUSED3~] -OutputList3SigType141=Serial -OutputList3Cue142=[~UNUSED3~] -OutputList3SigType142=Serial -OutputList3Cue143=[~UNUSED3~] -OutputList3SigType143=Serial -OutputList3Cue144=[~UNUSED3~] -OutputList3SigType144=Serial -OutputList3Cue145=[~UNUSED3~] -OutputList3SigType145=Serial -OutputList3Cue146=[~UNUSED3~] -OutputList3SigType146=Serial -OutputList3Cue147=[~UNUSED3~] -OutputList3SigType147=Serial -OutputList3Cue148=[~UNUSED3~] -OutputList3SigType148=Serial -OutputList3Cue149=[~UNUSED3~] -OutputList3SigType149=Serial -OutputList3Cue150=[~UNUSED3~] -OutputList3SigType150=Serial -OutputList3Cue151=[~UNUSED3~] -OutputList3SigType151=Serial -OutputList3Cue152=[~UNUSED3~] -OutputList3SigType152=Serial -OutputList3Cue153=[~UNUSED3~] -OutputList3SigType153=Serial -OutputList3Cue154=[~UNUSED3~] -OutputList3SigType154=Serial -OutputList3Cue155=[~UNUSED3~] -OutputList3SigType155=Serial -OutputList3Cue156=[~UNUSED3~] -OutputList3SigType156=Serial -OutputList3Cue157=[~UNUSED3~] -OutputList3SigType157=Serial -OutputList3Cue158=[~UNUSED3~] -OutputList3SigType158=Serial -OutputList3Cue159=[~UNUSED3~] -OutputList3SigType159=Serial -OutputList3Cue160=[~UNUSED3~] -OutputList3SigType160=Serial -OutputList3Cue161=[~UNUSED3~] -OutputList3SigType161=Serial -OutputList3Cue162=[~UNUSED3~] -OutputList3SigType162=Serial -OutputList3Cue163=[~UNUSED3~] -OutputList3SigType163=Serial -OutputList3Cue164=[~UNUSED3~] -OutputList3SigType164=Serial -OutputList3Cue165=[~UNUSED3~] -OutputList3SigType165=Serial -OutputList3Cue166=[~UNUSED3~] -OutputList3SigType166=Serial -OutputList3Cue167=[~UNUSED3~] -OutputList3SigType167=Serial -OutputList3Cue168=[~UNUSED3~] -OutputList3SigType168=Serial -OutputList3Cue169=[~UNUSED3~] -OutputList3SigType169=Serial -OutputList3Cue170=[~UNUSED3~] -OutputList3SigType170=Serial -OutputList3Cue171=[~UNUSED3~] -OutputList3SigType171=Serial -OutputList3Cue172=[~UNUSED3~] -OutputList3SigType172=Serial -OutputList3Cue173=[~UNUSED3~] -OutputList3SigType173=Serial -OutputList3Cue174=[~UNUSED3~] -OutputList3SigType174=Serial -OutputList3Cue175=[~UNUSED3~] -OutputList3SigType175=Serial -OutputList3Cue176=[~UNUSED3~] -OutputList3SigType176=Serial -OutputList3Cue177=[~UNUSED3~] -OutputList3SigType177=Serial -OutputList3Cue178=[~UNUSED3~] -OutputList3SigType178=Serial -OutputList3Cue179=[~UNUSED3~] -OutputList3SigType179=Serial -OutputList3Cue180=[~UNUSED3~] -OutputList3SigType180=Serial -OutputList3Cue181=[~UNUSED3~] -OutputList3SigType181=Serial -OutputList3Cue182=[~UNUSED3~] -OutputList3SigType182=Serial -OutputList3Cue183=[~UNUSED3~] -OutputList3SigType183=Serial -OutputList3Cue184=[~UNUSED3~] -OutputList3SigType184=Serial -OutputList3Cue185=[~UNUSED3~] -OutputList3SigType185=Serial -OutputList3Cue186=[~UNUSED3~] -OutputList3SigType186=Serial -OutputList3Cue187=[~UNUSED3~] -OutputList3SigType187=Serial -OutputList3Cue188=[~UNUSED3~] -OutputList3SigType188=Serial -OutputList3Cue189=[~UNUSED3~] -OutputList3SigType189=Serial -OutputList3Cue190=[~UNUSED3~] -OutputList3SigType190=Serial -OutputList3Cue191=[~UNUSED3~] -OutputList3SigType191=Serial -OutputList3Cue192=[~UNUSED3~] -OutputList3SigType192=Serial -OutputList3Cue193=[~UNUSED3~] -OutputList3SigType193=Serial -OutputList3Cue194=[~UNUSED3~] -OutputList3SigType194=Serial -OutputList3Cue195=[~UNUSED3~] -OutputList3SigType195=Serial -OutputList3Cue196=[~UNUSED3~] -OutputList3SigType196=Serial -OutputList3Cue197=[~UNUSED3~] -OutputList3SigType197=Serial -OutputList3Cue198=[~UNUSED3~] -OutputList3SigType198=Serial -OutputList3Cue199=[~UNUSED3~] -OutputList3SigType199=Serial -OutputList3Cue200=[~UNUSED3~] -OutputList3SigType200=Serial -OutputList3Cue201=[~UNUSED3~] -OutputList3SigType201=Serial -OutputList3Cue202=[~UNUSED3~] -OutputList3SigType202=Serial -OutputList3Cue203=[~UNUSED3~] -OutputList3SigType203=Serial -OutputList3Cue204=[~UNUSED3~] -OutputList3SigType204=Serial -OutputList3Cue205=[~UNUSED3~] -OutputList3SigType205=Serial -OutputList3Cue206=[~UNUSED3~] -OutputList3SigType206=Serial -OutputList3Cue207=[~UNUSED3~] -OutputList3SigType207=Serial -OutputList3Cue208=[~UNUSED3~] -OutputList3SigType208=Serial -OutputList3Cue209=[~UNUSED3~] -OutputList3SigType209=Serial -OutputList3Cue210=[~UNUSED3~] -OutputList3SigType210=Serial -OutputList3Cue211=[~UNUSED3~] -OutputList3SigType211=Serial -OutputList3Cue212=[~UNUSED3~] -OutputList3SigType212=Serial -OutputList3Cue213=[~UNUSED3~] -OutputList3SigType213=Serial -OutputList3Cue214=[~UNUSED3~] -OutputList3SigType214=Serial -OutputList3Cue215=[~UNUSED3~] -OutputList3SigType215=Serial -OutputList3Cue216=[~UNUSED3~] -OutputList3SigType216=Serial -OutputList3Cue217=[~UNUSED3~] -OutputList3SigType217=Serial -OutputList3Cue218=[~UNUSED3~] -OutputList3SigType218=Serial -OutputList3Cue219=[~UNUSED3~] -OutputList3SigType219=Serial -OutputList3Cue220=[~UNUSED3~] -OutputList3SigType220=Serial -OutputList3Cue221=[~UNUSED3~] -OutputList3SigType221=Serial -OutputList3Cue222=[~UNUSED3~] -OutputList3SigType222=Serial -OutputList3Cue223=[~UNUSED3~] -OutputList3SigType223=Serial -OutputList3Cue224=[~UNUSED3~] -OutputList3SigType224=Serial -OutputList3Cue225=[~UNUSED3~] -OutputList3SigType225=Serial -OutputList3Cue226=[~UNUSED3~] -OutputList3SigType226=Serial -OutputList3Cue227=[~UNUSED3~] -OutputList3SigType227=Serial -OutputList3Cue228=[~UNUSED3~] -OutputList3SigType228=Serial -OutputList3Cue229=[~UNUSED3~] -OutputList3SigType229=Serial -OutputList3Cue230=[~UNUSED3~] -OutputList3SigType230=Serial -OutputList3Cue231=[~UNUSED3~] -OutputList3SigType231=Serial -OutputList3Cue232=[~UNUSED3~] -OutputList3SigType232=Serial -OutputList3Cue233=[~UNUSED3~] -OutputList3SigType233=Serial -OutputList3Cue234=[~UNUSED3~] -OutputList3SigType234=Serial -OutputList3Cue235=[~UNUSED3~] -OutputList3SigType235=Serial -OutputList3Cue236=[~UNUSED3~] -OutputList3SigType236=Serial -OutputList3Cue237=[~UNUSED3~] -OutputList3SigType237=Serial -OutputList3Cue238=[~UNUSED3~] -OutputList3SigType238=Serial -OutputList3Cue239=[~UNUSED3~] -OutputList3SigType239=Serial -OutputList3Cue240=[~UNUSED3~] -OutputList3SigType240=Serial -OutputList3Cue241=[~UNUSED3~] -OutputList3SigType241=Serial -OutputList3Cue242=[~UNUSED3~] -OutputList3SigType242=Serial -OutputList3Cue243=[~UNUSED3~] -OutputList3SigType243=Serial -OutputList3Cue244=[~UNUSED3~] -OutputList3SigType244=Serial -OutputList3Cue245=[~UNUSED3~] -OutputList3SigType245=Serial -OutputList3Cue246=[~UNUSED3~] -OutputList3SigType246=Serial -OutputList3Cue247=[~UNUSED3~] -OutputList3SigType247=Serial -OutputList3Cue248=[~UNUSED3~] -OutputList3SigType248=Serial -OutputList3Cue249=[~UNUSED3~] -OutputList3SigType249=Serial -OutputList3Cue250=[~UNUSED3~] -OutputList3SigType250=Serial -OutputList3Cue251=[~UNUSED3~] -OutputList3SigType251=Serial -OutputList3Cue252=[~UNUSED3~] -OutputList3SigType252=Serial -OutputList3Cue253=[~UNUSED3~] -OutputList3SigType253=Serial -OutputList3Cue254=[~UNUSED3~] -OutputList3SigType254=Serial -OutputList3Cue255=[~UNUSED3~] -OutputList3SigType255=Serial -OutputList3Cue256=[~UNUSED3~] -OutputList3SigType256=Serial -OutputList3Cue257=[~UNUSED3~] -OutputList3SigType257=Serial -OutputList3Cue258=[~UNUSED3~] -OutputList3SigType258=Serial -OutputList3Cue259=[~UNUSED3~] -OutputList3SigType259=Serial -OutputList3Cue260=[~UNUSED3~] -OutputList3SigType260=Serial -OutputList3Cue261=[~UNUSED3~] -OutputList3SigType261=Serial -OutputList3Cue262=[~UNUSED3~] -OutputList3SigType262=Serial -OutputList3Cue263=[~UNUSED3~] -OutputList3SigType263=Serial -OutputList3Cue264=[~UNUSED3~] -OutputList3SigType264=Serial -OutputList3Cue265=[~UNUSED3~] -OutputList3SigType265=Serial -OutputList3Cue266=[~UNUSED3~] -OutputList3SigType266=Serial -OutputList3Cue267=[~UNUSED2~] -OutputList3SigType267=Digital|Analog|Serial|String -OutputList3Cue2012=[~EndGroup~]Item Texts -OutputList3SigType2012=Serial -OutputList3Cue2013=[~BeginGroup~]Item Icons -OutputList3SigType2013=Serial -OutputList3Cue2014=[~UNUSED3~] -OutputList3SigType2014=Serial -OutputList3Cue2015=[~UNUSED3~] -OutputList3SigType2015=Serial -OutputList3Cue2016=[~UNUSED3~] -OutputList3SigType2016=Serial -OutputList3Cue2017=[~UNUSED3~] -OutputList3SigType2017=Serial -OutputList3Cue2018=[~UNUSED3~] -OutputList3SigType2018=Serial -OutputList3Cue2019=[~UNUSED3~] -OutputList3SigType2019=Serial -OutputList3Cue2020=[~UNUSED3~] -OutputList3SigType2020=Serial -OutputList3Cue2021=[~UNUSED3~] -OutputList3SigType2021=Serial -OutputList3Cue2022=[~UNUSED3~] -OutputList3SigType2022=Serial -OutputList3Cue2023=[~UNUSED3~] -OutputList3SigType2023=Serial -OutputList3Cue2024=[~UNUSED3~] -OutputList3SigType2024=Serial -OutputList3Cue2025=[~UNUSED3~] -OutputList3SigType2025=Serial -OutputList3Cue2026=[~UNUSED3~] -OutputList3SigType2026=Serial -OutputList3Cue2027=[~UNUSED3~] -OutputList3SigType2027=Serial -OutputList3Cue2028=[~UNUSED3~] -OutputList3SigType2028=Serial -OutputList3Cue2029=[~UNUSED3~] -OutputList3SigType2029=Serial -OutputList3Cue2030=[~UNUSED3~] -OutputList3SigType2030=Serial -OutputList3Cue2031=[~UNUSED3~] -OutputList3SigType2031=Serial -OutputList3Cue2032=[~UNUSED3~] -OutputList3SigType2032=Serial -OutputList3Cue2033=[~UNUSED3~] -OutputList3SigType2033=Serial -OutputList3Cue2034=[~UNUSED3~] -OutputList3SigType2034=Serial -OutputList3Cue2035=[~UNUSED3~] -OutputList3SigType2035=Serial -OutputList3Cue2036=[~UNUSED3~] -OutputList3SigType2036=Serial -OutputList3Cue2037=[~UNUSED3~] -OutputList3SigType2037=Serial -OutputList3Cue2038=[~UNUSED3~] -OutputList3SigType2038=Serial -OutputList3Cue2039=[~UNUSED3~] -OutputList3SigType2039=Serial -OutputList3Cue2040=[~UNUSED3~] -OutputList3SigType2040=Serial -OutputList3Cue2041=[~UNUSED3~] -OutputList3SigType2041=Serial -OutputList3Cue2042=[~UNUSED3~] -OutputList3SigType2042=Serial -OutputList3Cue2043=[~UNUSED3~] -OutputList3SigType2043=Serial -OutputList3Cue2044=[~UNUSED3~] -OutputList3SigType2044=Serial -OutputList3Cue2045=[~UNUSED3~] -OutputList3SigType2045=Serial -OutputList3Cue2046=[~UNUSED3~] -OutputList3SigType2046=Serial -OutputList3Cue2047=[~UNUSED3~] -OutputList3SigType2047=Serial -OutputList3Cue2048=[~UNUSED3~] -OutputList3SigType2048=Serial -OutputList3Cue2049=[~UNUSED3~] -OutputList3SigType2049=Serial -OutputList3Cue2050=[~UNUSED3~] -OutputList3SigType2050=Serial -OutputList3Cue2051=[~UNUSED3~] -OutputList3SigType2051=Serial -OutputList3Cue2052=[~UNUSED3~] -OutputList3SigType2052=Serial -OutputList3Cue2053=[~UNUSED3~] -OutputList3SigType2053=Serial -OutputList3Cue2054=[~UNUSED3~] -OutputList3SigType2054=Serial -OutputList3Cue2055=[~UNUSED3~] -OutputList3SigType2055=Serial -OutputList3Cue2056=[~UNUSED3~] -OutputList3SigType2056=Serial -OutputList3Cue2057=[~UNUSED3~] -OutputList3SigType2057=Serial -OutputList3Cue2058=[~UNUSED3~] -OutputList3SigType2058=Serial -OutputList3Cue2059=[~UNUSED3~] -OutputList3SigType2059=Serial -OutputList3Cue2060=[~UNUSED3~] -OutputList3SigType2060=Serial -OutputList3Cue2061=[~UNUSED3~] -OutputList3SigType2061=Serial -OutputList3Cue2062=[~UNUSED3~] -OutputList3SigType2062=Serial -OutputList3Cue2063=[~UNUSED3~] -OutputList3SigType2063=Serial -OutputList3Cue2064=[~UNUSED3~] -OutputList3SigType2064=Serial -OutputList3Cue2065=[~UNUSED3~] -OutputList3SigType2065=Serial -OutputList3Cue2066=[~UNUSED3~] -OutputList3SigType2066=Serial -OutputList3Cue2067=[~UNUSED3~] -OutputList3SigType2067=Serial -OutputList3Cue2068=[~UNUSED3~] -OutputList3SigType2068=Serial -OutputList3Cue2069=[~UNUSED3~] -OutputList3SigType2069=Serial -OutputList3Cue2070=[~UNUSED3~] -OutputList3SigType2070=Serial -OutputList3Cue2071=[~UNUSED3~] -OutputList3SigType2071=Serial -OutputList3Cue2072=[~UNUSED3~] -OutputList3SigType2072=Serial -OutputList3Cue2073=[~UNUSED3~] -OutputList3SigType2073=Serial -OutputList3Cue2074=[~UNUSED3~] -OutputList3SigType2074=Serial -OutputList3Cue2075=[~UNUSED3~] -OutputList3SigType2075=Serial -OutputList3Cue2076=[~UNUSED3~] -OutputList3SigType2076=Serial -OutputList3Cue2077=[~UNUSED3~] -OutputList3SigType2077=Serial -OutputList3Cue2078=[~UNUSED3~] -OutputList3SigType2078=Serial -OutputList3Cue2079=[~UNUSED3~] -OutputList3SigType2079=Serial -OutputList3Cue2080=[~UNUSED3~] -OutputList3SigType2080=Serial -OutputList3Cue2081=[~UNUSED3~] -OutputList3SigType2081=Serial -OutputList3Cue2082=[~UNUSED3~] -OutputList3SigType2082=Serial -OutputList3Cue2083=[~UNUSED3~] -OutputList3SigType2083=Serial -OutputList3Cue2084=[~UNUSED3~] -OutputList3SigType2084=Serial -OutputList3Cue2085=[~UNUSED3~] -OutputList3SigType2085=Serial -OutputList3Cue2086=[~UNUSED3~] -OutputList3SigType2086=Serial -OutputList3Cue2087=[~UNUSED3~] -OutputList3SigType2087=Serial -OutputList3Cue2088=[~UNUSED3~] -OutputList3SigType2088=Serial -OutputList3Cue2089=[~UNUSED3~] -OutputList3SigType2089=Serial -OutputList3Cue2090=[~UNUSED3~] -OutputList3SigType2090=Serial -OutputList3Cue2091=[~UNUSED3~] -OutputList3SigType2091=Serial -OutputList3Cue2092=[~UNUSED3~] -OutputList3SigType2092=Serial -OutputList3Cue2093=[~UNUSED3~] -OutputList3SigType2093=Serial -OutputList3Cue2094=[~UNUSED3~] -OutputList3SigType2094=Serial -OutputList3Cue2095=[~UNUSED3~] -OutputList3SigType2095=Serial -OutputList3Cue2096=[~UNUSED3~] -OutputList3SigType2096=Serial -OutputList3Cue2097=[~UNUSED3~] -OutputList3SigType2097=Serial -OutputList3Cue2098=[~UNUSED3~] -OutputList3SigType2098=Serial -OutputList3Cue2099=[~UNUSED3~] -OutputList3SigType2099=Serial -OutputList3Cue2100=[~UNUSED3~] -OutputList3SigType2100=Serial -OutputList3Cue2101=[~UNUSED3~] -OutputList3SigType2101=Serial -OutputList3Cue2102=[~UNUSED3~] -OutputList3SigType2102=Serial -OutputList3Cue2103=[~UNUSED3~] -OutputList3SigType2103=Serial -OutputList3Cue2104=[~UNUSED3~] -OutputList3SigType2104=Serial -OutputList3Cue2105=[~UNUSED3~] -OutputList3SigType2105=Serial -OutputList3Cue2106=[~UNUSED3~] -OutputList3SigType2106=Serial -OutputList3Cue2107=[~UNUSED3~] -OutputList3SigType2107=Serial -OutputList3Cue2108=[~UNUSED3~] -OutputList3SigType2108=Serial -OutputList3Cue2109=[~UNUSED3~] -OutputList3SigType2109=Serial -OutputList3Cue2110=[~UNUSED3~] -OutputList3SigType2110=Serial -OutputList3Cue2111=[~UNUSED3~] -OutputList3SigType2111=Serial -OutputList3Cue2112=[~UNUSED3~] -OutputList3SigType2112=Serial -OutputList3Cue2113=[~UNUSED3~] -OutputList3SigType2113=Serial -OutputList3Cue2114=[~UNUSED3~] -OutputList3SigType2114=Serial -OutputList3Cue2115=[~UNUSED3~] -OutputList3SigType2115=Serial -OutputList3Cue2116=[~UNUSED3~] -OutputList3SigType2116=Serial -OutputList3Cue2117=[~UNUSED3~] -OutputList3SigType2117=Serial -OutputList3Cue2118=[~UNUSED3~] -OutputList3SigType2118=Serial -OutputList3Cue2119=[~UNUSED3~] -OutputList3SigType2119=Serial -OutputList3Cue2120=[~UNUSED3~] -OutputList3SigType2120=Serial -OutputList3Cue2121=[~UNUSED3~] -OutputList3SigType2121=Serial -OutputList3Cue2122=[~UNUSED3~] -OutputList3SigType2122=Serial -OutputList3Cue2123=[~UNUSED3~] -OutputList3SigType2123=Serial -OutputList3Cue2124=[~UNUSED3~] -OutputList3SigType2124=Serial -OutputList3Cue2125=[~UNUSED3~] -OutputList3SigType2125=Serial -OutputList3Cue2126=[~UNUSED3~] -OutputList3SigType2126=Serial -OutputList3Cue2127=[~UNUSED3~] -OutputList3SigType2127=Serial -OutputList3Cue2128=[~UNUSED3~] -OutputList3SigType2128=Serial -OutputList3Cue2129=[~UNUSED3~] -OutputList3SigType2129=Serial -OutputList3Cue2130=[~UNUSED3~] -OutputList3SigType2130=Serial -OutputList3Cue2131=[~UNUSED3~] -OutputList3SigType2131=Serial -OutputList3Cue2132=[~UNUSED3~] -OutputList3SigType2132=Serial -OutputList3Cue2133=[~UNUSED3~] -OutputList3SigType2133=Serial -OutputList3Cue2134=[~UNUSED3~] -OutputList3SigType2134=Serial -OutputList3Cue2135=[~UNUSED3~] -OutputList3SigType2135=Serial -OutputList3Cue2136=[~UNUSED3~] -OutputList3SigType2136=Serial -OutputList3Cue2137=[~UNUSED3~] -OutputList3SigType2137=Serial -OutputList3Cue2138=[~UNUSED3~] -OutputList3SigType2138=Serial -OutputList3Cue2139=[~UNUSED3~] -OutputList3SigType2139=Serial -OutputList3Cue2140=[~UNUSED3~] -OutputList3SigType2140=Serial -OutputList3Cue2141=[~UNUSED3~] -OutputList3SigType2141=Serial -OutputList3Cue2142=[~UNUSED3~] -OutputList3SigType2142=Serial -OutputList3Cue2143=[~UNUSED3~] -OutputList3SigType2143=Serial -OutputList3Cue2144=[~UNUSED3~] -OutputList3SigType2144=Serial -OutputList3Cue2145=[~UNUSED3~] -OutputList3SigType2145=Serial -OutputList3Cue2146=[~UNUSED3~] -OutputList3SigType2146=Serial -OutputList3Cue2147=[~UNUSED3~] -OutputList3SigType2147=Serial -OutputList3Cue2148=[~UNUSED3~] -OutputList3SigType2148=Serial -OutputList3Cue2149=[~UNUSED3~] -OutputList3SigType2149=Serial -OutputList3Cue2150=[~UNUSED3~] -OutputList3SigType2150=Serial -OutputList3Cue2151=[~UNUSED3~] -OutputList3SigType2151=Serial -OutputList3Cue2152=[~UNUSED3~] -OutputList3SigType2152=Serial -OutputList3Cue2153=[~UNUSED3~] -OutputList3SigType2153=Serial -OutputList3Cue2154=[~UNUSED3~] -OutputList3SigType2154=Serial -OutputList3Cue2155=[~UNUSED3~] -OutputList3SigType2155=Serial -OutputList3Cue2156=[~UNUSED3~] -OutputList3SigType2156=Serial -OutputList3Cue2157=[~UNUSED3~] -OutputList3SigType2157=Serial -OutputList3Cue2158=[~UNUSED3~] -OutputList3SigType2158=Serial -OutputList3Cue2159=[~UNUSED3~] -OutputList3SigType2159=Serial -OutputList3Cue2160=[~UNUSED3~] -OutputList3SigType2160=Serial -OutputList3Cue2161=[~UNUSED3~] -OutputList3SigType2161=Serial -OutputList3Cue2162=[~UNUSED3~] -OutputList3SigType2162=Serial -OutputList3Cue2163=[~UNUSED3~] -OutputList3SigType2163=Serial -OutputList3Cue2164=[~UNUSED3~] -OutputList3SigType2164=Serial -OutputList3Cue2165=[~UNUSED3~] -OutputList3SigType2165=Serial -OutputList3Cue2166=[~UNUSED3~] -OutputList3SigType2166=Serial -OutputList3Cue2167=[~UNUSED3~] -OutputList3SigType2167=Serial -OutputList3Cue2168=[~UNUSED3~] -OutputList3SigType2168=Serial -OutputList3Cue2169=[~UNUSED3~] -OutputList3SigType2169=Serial -OutputList3Cue2170=[~UNUSED3~] -OutputList3SigType2170=Serial -OutputList3Cue2171=[~UNUSED3~] -OutputList3SigType2171=Serial -OutputList3Cue2172=[~UNUSED3~] -OutputList3SigType2172=Serial -OutputList3Cue2173=[~UNUSED3~] -OutputList3SigType2173=Serial -OutputList3Cue2174=[~UNUSED3~] -OutputList3SigType2174=Serial -OutputList3Cue2175=[~UNUSED3~] -OutputList3SigType2175=Serial -OutputList3Cue2176=[~UNUSED3~] -OutputList3SigType2176=Serial -OutputList3Cue2177=[~UNUSED3~] -OutputList3SigType2177=Serial -OutputList3Cue2178=[~UNUSED3~] -OutputList3SigType2178=Serial -OutputList3Cue2179=[~UNUSED3~] -OutputList3SigType2179=Serial -OutputList3Cue2180=[~UNUSED3~] -OutputList3SigType2180=Serial -OutputList3Cue2181=[~UNUSED3~] -OutputList3SigType2181=Serial -OutputList3Cue2182=[~UNUSED3~] -OutputList3SigType2182=Serial -OutputList3Cue2183=[~UNUSED3~] -OutputList3SigType2183=Serial -OutputList3Cue2184=[~UNUSED3~] -OutputList3SigType2184=Serial -OutputList3Cue2185=[~UNUSED3~] -OutputList3SigType2185=Serial -OutputList3Cue2186=[~UNUSED3~] -OutputList3SigType2186=Serial -OutputList3Cue2187=[~UNUSED3~] -OutputList3SigType2187=Serial -OutputList3Cue2188=[~UNUSED3~] -OutputList3SigType2188=Serial -OutputList3Cue2189=[~UNUSED3~] -OutputList3SigType2189=Serial -OutputList3Cue2190=[~UNUSED3~] -OutputList3SigType2190=Serial -OutputList3Cue2191=[~UNUSED3~] -OutputList3SigType2191=Serial -OutputList3Cue2192=[~UNUSED3~] -OutputList3SigType2192=Serial -OutputList3Cue2193=[~UNUSED3~] -OutputList3SigType2193=Serial -OutputList3Cue2194=[~UNUSED3~] -OutputList3SigType2194=Serial -OutputList3Cue2195=[~UNUSED3~] -OutputList3SigType2195=Serial -OutputList3Cue2196=[~UNUSED3~] -OutputList3SigType2196=Serial -OutputList3Cue2197=[~UNUSED3~] -OutputList3SigType2197=Serial -OutputList3Cue2198=[~UNUSED3~] -OutputList3SigType2198=Serial -OutputList3Cue2199=[~UNUSED3~] -OutputList3SigType2199=Serial -OutputList3Cue2200=[~UNUSED3~] -OutputList3SigType2200=Serial -OutputList3Cue2201=[~UNUSED3~] -OutputList3SigType2201=Serial -OutputList3Cue2202=[~UNUSED3~] -OutputList3SigType2202=Serial -OutputList3Cue2203=[~UNUSED3~] -OutputList3SigType2203=Serial -OutputList3Cue2204=[~UNUSED3~] -OutputList3SigType2204=Serial -OutputList3Cue2205=[~UNUSED3~] -OutputList3SigType2205=Serial -OutputList3Cue2206=[~UNUSED3~] -OutputList3SigType2206=Serial -OutputList3Cue2207=[~UNUSED3~] -OutputList3SigType2207=Serial -OutputList3Cue2208=[~UNUSED3~] -OutputList3SigType2208=Serial -OutputList3Cue2209=[~UNUSED3~] -OutputList3SigType2209=Serial -OutputList3Cue2210=[~UNUSED3~] -OutputList3SigType2210=Serial -OutputList3Cue2211=[~UNUSED3~] -OutputList3SigType2211=Serial -OutputList3Cue2212=[~UNUSED3~] -OutputList3SigType2212=Serial -OutputList3Cue2213=[~UNUSED3~] -OutputList3SigType2213=Serial -OutputList3Cue2214=[~UNUSED3~] -OutputList3SigType2214=Serial -OutputList3Cue2215=[~UNUSED3~] -OutputList3SigType2215=Serial -OutputList3Cue2216=[~UNUSED3~] -OutputList3SigType2216=Serial -OutputList3Cue2217=[~UNUSED3~] -OutputList3SigType2217=Serial -OutputList3Cue2218=[~UNUSED3~] -OutputList3SigType2218=Serial -OutputList3Cue2219=[~UNUSED3~] -OutputList3SigType2219=Serial -OutputList3Cue2220=[~UNUSED3~] -OutputList3SigType2220=Serial -OutputList3Cue2221=[~UNUSED3~] -OutputList3SigType2221=Serial -OutputList3Cue2222=[~UNUSED3~] -OutputList3SigType2222=Serial -OutputList3Cue2223=[~UNUSED3~] -OutputList3SigType2223=Serial -OutputList3Cue2224=[~UNUSED3~] -OutputList3SigType2224=Serial -OutputList3Cue2225=[~UNUSED3~] -OutputList3SigType2225=Serial -OutputList3Cue2226=[~UNUSED3~] -OutputList3SigType2226=Serial -OutputList3Cue2227=[~UNUSED3~] -OutputList3SigType2227=Serial -OutputList3Cue2228=[~UNUSED3~] -OutputList3SigType2228=Serial -OutputList3Cue2229=[~UNUSED3~] -OutputList3SigType2229=Serial -OutputList3Cue2230=[~UNUSED3~] -OutputList3SigType2230=Serial -OutputList3Cue2231=[~UNUSED3~] -OutputList3SigType2231=Serial -OutputList3Cue2232=[~UNUSED3~] -OutputList3SigType2232=Serial -OutputList3Cue2233=[~UNUSED3~] -OutputList3SigType2233=Serial -OutputList3Cue2234=[~UNUSED3~] -OutputList3SigType2234=Serial -OutputList3Cue2235=[~UNUSED3~] -OutputList3SigType2235=Serial -OutputList3Cue2236=[~UNUSED3~] -OutputList3SigType2236=Serial -OutputList3Cue2237=[~UNUSED3~] -OutputList3SigType2237=Serial -OutputList3Cue2238=[~UNUSED3~] -OutputList3SigType2238=Serial -OutputList3Cue2239=[~UNUSED3~] -OutputList3SigType2239=Serial -OutputList3Cue2240=[~UNUSED3~] -OutputList3SigType2240=Serial -OutputList3Cue2241=[~UNUSED3~] -OutputList3SigType2241=Serial -OutputList3Cue2242=[~UNUSED3~] -OutputList3SigType2242=Serial -OutputList3Cue2243=[~UNUSED3~] -OutputList3SigType2243=Serial -OutputList3Cue2244=[~UNUSED3~] -OutputList3SigType2244=Serial -OutputList3Cue2245=[~UNUSED3~] -OutputList3SigType2245=Serial -OutputList3Cue2246=[~UNUSED3~] -OutputList3SigType2246=Serial -OutputList3Cue2247=[~UNUSED3~] -OutputList3SigType2247=Serial -OutputList3Cue2248=[~UNUSED3~] -OutputList3SigType2248=Serial -OutputList3Cue2249=[~UNUSED3~] -OutputList3SigType2249=Serial -OutputList3Cue2250=[~UNUSED3~] -OutputList3SigType2250=Serial -OutputList3Cue2251=[~UNUSED3~] -OutputList3SigType2251=Serial -OutputList3Cue2252=[~UNUSED3~] -OutputList3SigType2252=Serial -OutputList3Cue2253=[~UNUSED3~] -OutputList3SigType2253=Serial -OutputList3Cue2254=[~UNUSED3~] -OutputList3SigType2254=Serial -OutputList3Cue2255=[~UNUSED3~] -OutputList3SigType2255=Serial -OutputList3Cue2256=[~UNUSED3~] -OutputList3SigType2256=Serial -OutputList3Cue2257=[~UNUSED3~] -OutputList3SigType2257=Serial -OutputList3Cue2258=[~UNUSED3~] -OutputList3SigType2258=Serial -OutputList3Cue2259=[~UNUSED3~] -OutputList3SigType2259=Serial -OutputList3Cue2260=[~UNUSED3~] -OutputList3SigType2260=Serial -OutputList3Cue2261=[~UNUSED3~] -OutputList3SigType2261=Serial -OutputList3Cue2262=[~UNUSED3~] -OutputList3SigType2262=Serial -OutputList3Cue2263=[~UNUSED3~] -OutputList3SigType2263=Serial -OutputList3Cue2264=[~UNUSED3~] -OutputList3SigType2264=Serial -OutputList3Cue2265=[~UNUSED3~] -OutputList3SigType2265=Serial -OutputList3Cue2266=[~UNUSED3~] -OutputList3SigType2266=Serial -OutputList3Cue2267=[~UNUSED3~] -OutputList3SigType2267=Serial -OutputList3Cue2268=[~UNUSED3~] -OutputList3SigType2268=Serial -OutputList3Cue2269=[~UNUSED2~] -OutputList3SigType2269=Digital|Analog|Serial|String -OutputList3Cue4014=[~EndGroup~]Item Icons -OutputList3SigType4014=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=2 -CedH=2 -SmartObjId=1202d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=2 -Tp=1 -HD=TRUE -DV=1202d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=2 -Name=PepperDash Essentials iPad_[D.VC] Directory_Dynamic Button List Vertical_2.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[D.VC] Keypad with favorites_VC DTMF Keypad.ced -Hint=VC DTMF Keypad (Smart Object ID=1201) -Code=3 -SGControlType=Simple Keypad -SGControlName=VC DTMF Keypad -GUID=B4D53525-26EF-4326-8234-1D53F6E9BF04 -SmplCName=PepperDash Essentials iPad_[D.VC] Keypad with favorites_VC DTMF Keypad.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10061 -;Define the number of inputs, outputs and parameters -MinVariableInputs=12 -MaxVariableInputs=12 -MinVariableOutputs=12 -MaxVariableOutputs=12 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=1 -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=2 -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=3 -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=4 -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=5 -OutputSigType5=Digital -InputCue6=[~UNUSED3~] -InputSigType6=Digital -OutputCue6=6 -OutputSigType6=Digital -InputCue7=[~UNUSED3~] -InputSigType7=Digital -OutputCue7=7 -OutputSigType7=Digital -InputCue8=[~UNUSED3~] -InputSigType8=Digital -OutputCue8=8 -OutputSigType8=Digital -InputCue9=[~UNUSED3~] -InputSigType9=Digital -OutputCue9=9 -OutputSigType9=Digital -InputCue10=[~UNUSED3~] -InputSigType10=Digital -OutputCue10=0 -OutputSigType10=Digital -InputCue11=[~UNUSED3~] -InputSigType11=Digital -OutputCue11=* -OutputSigType11=Digital -InputCue12=[~UNUSED3~] -InputSigType12=Digital -OutputCue12=/# -OutputSigType12=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=3 -CedH=3 -SmartObjId=1201d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=3 -Tp=1 -HD=TRUE -DV=1201d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=3 -Name=PepperDash Essentials iPad_[D.VC] Keypad with favorites_VC DTMF Keypad.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[Z.Dialogs] PIN_PIN Keypad.ced -Hint=PIN Keypad (Smart Object ID=3903) -Code=4 -SGControlType=Simple Keypad -SGControlName=PIN Keypad -GUID=D85E5DFB-DE45-45FE-93C5-2FA177B68BFB -SmplCName=PepperDash Essentials iPad_[Z.Dialogs] PIN_PIN Keypad.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10061 -;Define the number of inputs, outputs and parameters -MinVariableInputs=12 -MaxVariableInputs=12 -MinVariableOutputs=12 -MaxVariableOutputs=12 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=1 -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=2 -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=3 -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=4 -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=5 -OutputSigType5=Digital -InputCue6=[~UNUSED3~] -InputSigType6=Digital -OutputCue6=6 -OutputSigType6=Digital -InputCue7=[~UNUSED3~] -InputSigType7=Digital -OutputCue7=7 -OutputSigType7=Digital -InputCue8=[~UNUSED3~] -InputSigType8=Digital -OutputCue8=8 -OutputSigType8=Digital -InputCue9=[~UNUSED3~] -InputSigType9=Digital -OutputCue9=9 -OutputSigType9=Digital -InputCue10=[~UNUSED3~] -InputSigType10=Digital -OutputCue10=0 -OutputSigType10=Digital -InputCue11=[~UNUSED3~] -InputSigType11=Digital -OutputCue11=Misc_1 -OutputSigType11=Digital -InputCue12=[~UNUSED3~] -InputSigType12=Digital -OutputCue12=Misc_2 -OutputSigType12=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=4 -CedH=4 -SmartObjId=3903d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=4 -Tp=1 -HD=TRUE -DV=3903d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=4 -Name=PepperDash Essentials iPad_[Z.Dialogs] PIN_PIN Keypad.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[E.Technician Controls] Sys Status_Subpage Reference List Vertical_3.ced -Hint=Subpage Reference List Vertical_3 (Smart Object ID=3902) -Code=5 -SGControlType=Subpage Reference List Vertical -SGControlName=Subpage Reference List Vertical_3 -GUID=3490D547-0B98-444B-A284-D6C1BAB2FDCE -SmplCName=PepperDash Essentials iPad_[E.Technician Controls] Sys Status_Subpage Reference List Vertical_3.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4076 -MaxVariableInputs=4076 -MinVariableOutputs=4076 -MaxVariableOutputs=4076 -NumFixedParams=1 -MinVariableInputsList2=72 -MaxVariableInputsList2=72 -MinVariableOutputsList2=72 -MaxVariableOutputsList2=72 -MinVariableInputsList3=72 -MaxVariableInputsList3=72 -MinVariableOutputsList3=72 -MaxVariableOutputsList3=72 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=Item 13 Enable -InputSigType24=Digital -InputCue25=Item 14 Enable -InputSigType25=Digital -InputCue26=Item 15 Enable -InputSigType26=Digital -InputCue27=Item 16 Enable -InputSigType27=Digital -InputCue28=Item 17 Enable -InputSigType28=Digital -InputCue29=Item 18 Enable -InputSigType29=Digital -InputCue30=Item 19 Enable -InputSigType30=Digital -InputCue31=Item 20 Enable -InputSigType31=Digital -InputCue32=[~UNUSED2~] -InputSigType32=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=Item 13 Visible -InputSigType2026=Digital -InputCue2027=Item 14 Visible -InputSigType2027=Digital -InputCue2028=Item 15 Visible -InputSigType2028=Digital -InputCue2029=Item 16 Visible -InputSigType2029=Digital -InputCue2030=Item 17 Visible -InputSigType2030=Digital -InputCue2031=Item 18 Visible -InputSigType2031=Digital -InputCue2032=Item 19 Visible -InputSigType2032=Digital -InputCue2033=Item 20 Visible -InputSigType2033=Digital -InputCue2034=[~UNUSED2~] -InputSigType2034=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=[~EndGroup~]fb -InputSigType4076=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED3~] -OutputSigType24=Digital -OutputCue25=[~UNUSED3~] -OutputSigType25=Digital -OutputCue26=[~UNUSED3~] -OutputSigType26=Digital -OutputCue27=[~UNUSED3~] -OutputSigType27=Digital -OutputCue28=[~UNUSED3~] -OutputSigType28=Digital -OutputCue29=[~UNUSED3~] -OutputSigType29=Digital -OutputCue30=[~UNUSED3~] -OutputSigType30=Digital -OutputCue31=[~UNUSED3~] -OutputSigType31=Digital -OutputCue32=[~UNUSED2~] -OutputSigType32=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED2~] -OutputSigType2034=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=[~EndGroup~]Press -OutputSigType4076=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=an_fb13 -InputList2SigType24=Analog -InputList2Cue25=an_fb14 -InputList2SigType25=Analog -InputList2Cue26=an_fb15 -InputList2SigType26=Analog -InputList2Cue27=an_fb16 -InputList2SigType27=Analog -InputList2Cue28=an_fb17 -InputList2SigType28=Analog -InputList2Cue29=an_fb18 -InputList2SigType29=Analog -InputList2Cue30=an_fb19 -InputList2SigType30=Analog -InputList2Cue31=an_fb20 -InputList2SigType31=Analog -InputList2Cue32=an_fb21 -InputList2SigType32=Analog -InputList2Cue33=an_fb22 -InputList2SigType33=Analog -InputList2Cue34=an_fb23 -InputList2SigType34=Analog -InputList2Cue35=an_fb24 -InputList2SigType35=Analog -InputList2Cue36=an_fb25 -InputList2SigType36=Analog -InputList2Cue37=an_fb26 -InputList2SigType37=Analog -InputList2Cue38=an_fb27 -InputList2SigType38=Analog -InputList2Cue39=an_fb28 -InputList2SigType39=Analog -InputList2Cue40=an_fb29 -InputList2SigType40=Analog -InputList2Cue41=an_fb30 -InputList2SigType41=Analog -InputList2Cue42=an_fb31 -InputList2SigType42=Analog -InputList2Cue43=an_fb32 -InputList2SigType43=Analog -InputList2Cue44=an_fb33 -InputList2SigType44=Analog -InputList2Cue45=an_fb34 -InputList2SigType45=Analog -InputList2Cue46=an_fb35 -InputList2SigType46=Analog -InputList2Cue47=an_fb36 -InputList2SigType47=Analog -InputList2Cue48=an_fb37 -InputList2SigType48=Analog -InputList2Cue49=an_fb38 -InputList2SigType49=Analog -InputList2Cue50=an_fb39 -InputList2SigType50=Analog -InputList2Cue51=an_fb40 -InputList2SigType51=Analog -InputList2Cue52=an_fb41 -InputList2SigType52=Analog -InputList2Cue53=an_fb42 -InputList2SigType53=Analog -InputList2Cue54=an_fb43 -InputList2SigType54=Analog -InputList2Cue55=an_fb44 -InputList2SigType55=Analog -InputList2Cue56=an_fb45 -InputList2SigType56=Analog -InputList2Cue57=an_fb46 -InputList2SigType57=Analog -InputList2Cue58=an_fb47 -InputList2SigType58=Analog -InputList2Cue59=an_fb48 -InputList2SigType59=Analog -InputList2Cue60=an_fb49 -InputList2SigType60=Analog -InputList2Cue61=an_fb50 -InputList2SigType61=Analog -InputList2Cue62=an_fb51 -InputList2SigType62=Analog -InputList2Cue63=an_fb52 -InputList2SigType63=Analog -InputList2Cue64=an_fb53 -InputList2SigType64=Analog -InputList2Cue65=an_fb54 -InputList2SigType65=Analog -InputList2Cue66=an_fb55 -InputList2SigType66=Analog -InputList2Cue67=an_fb56 -InputList2SigType67=Analog -InputList2Cue68=an_fb57 -InputList2SigType68=Analog -InputList2Cue69=an_fb58 -InputList2SigType69=Analog -InputList2Cue70=an_fb59 -InputList2SigType70=Analog -InputList2Cue71=an_fb60 -InputList2SigType71=Analog -InputList2Cue72=[~EndGroup~]an_fb -InputList2SigType72=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=an_act13 -OutputList2SigType24=Analog -OutputList2Cue25=an_act14 -OutputList2SigType25=Analog -OutputList2Cue26=an_act15 -OutputList2SigType26=Analog -OutputList2Cue27=an_act16 -OutputList2SigType27=Analog -OutputList2Cue28=an_act17 -OutputList2SigType28=Analog -OutputList2Cue29=an_act18 -OutputList2SigType29=Analog -OutputList2Cue30=an_act19 -OutputList2SigType30=Analog -OutputList2Cue31=an_act20 -OutputList2SigType31=Analog -OutputList2Cue32=an_act21 -OutputList2SigType32=Analog -OutputList2Cue33=an_act22 -OutputList2SigType33=Analog -OutputList2Cue34=an_act23 -OutputList2SigType34=Analog -OutputList2Cue35=an_act24 -OutputList2SigType35=Analog -OutputList2Cue36=an_act25 -OutputList2SigType36=Analog -OutputList2Cue37=an_act26 -OutputList2SigType37=Analog -OutputList2Cue38=an_act27 -OutputList2SigType38=Analog -OutputList2Cue39=an_act28 -OutputList2SigType39=Analog -OutputList2Cue40=an_act29 -OutputList2SigType40=Analog -OutputList2Cue41=an_act30 -OutputList2SigType41=Analog -OutputList2Cue42=an_act31 -OutputList2SigType42=Analog -OutputList2Cue43=an_act32 -OutputList2SigType43=Analog -OutputList2Cue44=an_act33 -OutputList2SigType44=Analog -OutputList2Cue45=an_act34 -OutputList2SigType45=Analog -OutputList2Cue46=an_act35 -OutputList2SigType46=Analog -OutputList2Cue47=an_act36 -OutputList2SigType47=Analog -OutputList2Cue48=an_act37 -OutputList2SigType48=Analog -OutputList2Cue49=an_act38 -OutputList2SigType49=Analog -OutputList2Cue50=an_act39 -OutputList2SigType50=Analog -OutputList2Cue51=an_act40 -OutputList2SigType51=Analog -OutputList2Cue52=an_act41 -OutputList2SigType52=Analog -OutputList2Cue53=an_act42 -OutputList2SigType53=Analog -OutputList2Cue54=an_act43 -OutputList2SigType54=Analog -OutputList2Cue55=an_act44 -OutputList2SigType55=Analog -OutputList2Cue56=an_act45 -OutputList2SigType56=Analog -OutputList2Cue57=an_act46 -OutputList2SigType57=Analog -OutputList2Cue58=an_act47 -OutputList2SigType58=Analog -OutputList2Cue59=an_act48 -OutputList2SigType59=Analog -OutputList2Cue60=an_act49 -OutputList2SigType60=Analog -OutputList2Cue61=an_act50 -OutputList2SigType61=Analog -OutputList2Cue62=an_act51 -OutputList2SigType62=Analog -OutputList2Cue63=an_act52 -OutputList2SigType63=Analog -OutputList2Cue64=an_act53 -OutputList2SigType64=Analog -OutputList2Cue65=an_act54 -OutputList2SigType65=Analog -OutputList2Cue66=an_act55 -OutputList2SigType66=Analog -OutputList2Cue67=an_act56 -OutputList2SigType67=Analog -OutputList2Cue68=an_act57 -OutputList2SigType68=Analog -OutputList2Cue69=an_act58 -OutputList2SigType69=Analog -OutputList2Cue70=an_act59 -OutputList2SigType70=Analog -OutputList2Cue71=an_act60 -OutputList2SigType71=Analog -OutputList2Cue72=[~EndGroup~]an_act -OutputList2SigType72=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=[~EndGroup~]text-o -InputList3SigType72=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=[~EndGroup~]text-i -OutputList3SigType72=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=5 -CedH=5 -SmartObjId=3902d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=5 -Tp=1 -HD=TRUE -DV=3902d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=5 -Name=PepperDash Essentials iPad_[E.Technician Controls] Sys Status_Subpage Reference List Vertical_3.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[E.Technician Controls] Display Controls_Subpage Reference List Vertical_4.ced -Hint=Subpage Reference List Vertical_4 (Smart Object ID=3904) -Code=6 -SGControlType=Subpage Reference List Vertical -SGControlName=Subpage Reference List Vertical_4 -GUID=AC10DF35-3FD4-4F62-9708-0A06AE7A5A14 -SmplCName=PepperDash Essentials iPad_[E.Technician Controls] Display Controls_Subpage Reference List Vertical_4.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4116 -MaxVariableInputs=4116 -MinVariableOutputs=4116 -MaxVariableOutputs=4116 -NumFixedParams=1 -MinVariableInputsList2=42 -MaxVariableInputsList2=42 -MinVariableOutputsList2=42 -MaxVariableOutputsList2=42 -MinVariableInputsList3=42 -MaxVariableInputsList3=42 -MinVariableOutputsList3=42 -MaxVariableOutputsList3=42 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=[~UNUSED2~] -InputSigType22=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=[~UNUSED2~] -InputSigType2024=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=fb61 -InputSigType4076=Digital -InputCue4077=fb62 -InputSigType4077=Digital -InputCue4078=fb63 -InputSigType4078=Digital -InputCue4079=fb64 -InputSigType4079=Digital -InputCue4080=fb65 -InputSigType4080=Digital -InputCue4081=fb66 -InputSigType4081=Digital -InputCue4082=fb67 -InputSigType4082=Digital -InputCue4083=fb68 -InputSigType4083=Digital -InputCue4084=fb69 -InputSigType4084=Digital -InputCue4085=fb70 -InputSigType4085=Digital -InputCue4086=fb71 -InputSigType4086=Digital -InputCue4087=fb72 -InputSigType4087=Digital -InputCue4088=fb73 -InputSigType4088=Digital -InputCue4089=fb74 -InputSigType4089=Digital -InputCue4090=fb75 -InputSigType4090=Digital -InputCue4091=fb76 -InputSigType4091=Digital -InputCue4092=fb77 -InputSigType4092=Digital -InputCue4093=fb78 -InputSigType4093=Digital -InputCue4094=fb79 -InputSigType4094=Digital -InputCue4095=fb80 -InputSigType4095=Digital -InputCue4096=fb81 -InputSigType4096=Digital -InputCue4097=fb82 -InputSigType4097=Digital -InputCue4098=fb83 -InputSigType4098=Digital -InputCue4099=fb84 -InputSigType4099=Digital -InputCue4100=fb85 -InputSigType4100=Digital -InputCue4101=fb86 -InputSigType4101=Digital -InputCue4102=fb87 -InputSigType4102=Digital -InputCue4103=fb88 -InputSigType4103=Digital -InputCue4104=fb89 -InputSigType4104=Digital -InputCue4105=fb90 -InputSigType4105=Digital -InputCue4106=fb91 -InputSigType4106=Digital -InputCue4107=fb92 -InputSigType4107=Digital -InputCue4108=fb93 -InputSigType4108=Digital -InputCue4109=fb94 -InputSigType4109=Digital -InputCue4110=fb95 -InputSigType4110=Digital -InputCue4111=fb96 -InputSigType4111=Digital -InputCue4112=fb97 -InputSigType4112=Digital -InputCue4113=fb98 -InputSigType4113=Digital -InputCue4114=fb99 -InputSigType4114=Digital -InputCue4115=fb100 -InputSigType4115=Digital -InputCue4116=[~EndGroup~]fb -InputSigType4116=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED2~] -OutputSigType22=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED2~] -OutputSigType2024=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=press61 -OutputSigType4076=Digital -OutputCue4077=press62 -OutputSigType4077=Digital -OutputCue4078=press63 -OutputSigType4078=Digital -OutputCue4079=press64 -OutputSigType4079=Digital -OutputCue4080=press65 -OutputSigType4080=Digital -OutputCue4081=press66 -OutputSigType4081=Digital -OutputCue4082=press67 -OutputSigType4082=Digital -OutputCue4083=press68 -OutputSigType4083=Digital -OutputCue4084=press69 -OutputSigType4084=Digital -OutputCue4085=press70 -OutputSigType4085=Digital -OutputCue4086=press71 -OutputSigType4086=Digital -OutputCue4087=press72 -OutputSigType4087=Digital -OutputCue4088=press73 -OutputSigType4088=Digital -OutputCue4089=press74 -OutputSigType4089=Digital -OutputCue4090=press75 -OutputSigType4090=Digital -OutputCue4091=press76 -OutputSigType4091=Digital -OutputCue4092=press77 -OutputSigType4092=Digital -OutputCue4093=press78 -OutputSigType4093=Digital -OutputCue4094=press79 -OutputSigType4094=Digital -OutputCue4095=press80 -OutputSigType4095=Digital -OutputCue4096=press81 -OutputSigType4096=Digital -OutputCue4097=press82 -OutputSigType4097=Digital -OutputCue4098=press83 -OutputSigType4098=Digital -OutputCue4099=press84 -OutputSigType4099=Digital -OutputCue4100=press85 -OutputSigType4100=Digital -OutputCue4101=press86 -OutputSigType4101=Digital -OutputCue4102=press87 -OutputSigType4102=Digital -OutputCue4103=press88 -OutputSigType4103=Digital -OutputCue4104=press89 -OutputSigType4104=Digital -OutputCue4105=press90 -OutputSigType4105=Digital -OutputCue4106=press91 -OutputSigType4106=Digital -OutputCue4107=press92 -OutputSigType4107=Digital -OutputCue4108=press93 -OutputSigType4108=Digital -OutputCue4109=press94 -OutputSigType4109=Digital -OutputCue4110=press95 -OutputSigType4110=Digital -OutputCue4111=press96 -OutputSigType4111=Digital -OutputCue4112=press97 -OutputSigType4112=Digital -OutputCue4113=press98 -OutputSigType4113=Digital -OutputCue4114=press99 -OutputSigType4114=Digital -OutputCue4115=press100 -OutputSigType4115=Digital -OutputCue4116=[~EndGroup~]Press -OutputSigType4116=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=an_fb13 -InputList2SigType24=Analog -InputList2Cue25=an_fb14 -InputList2SigType25=Analog -InputList2Cue26=an_fb15 -InputList2SigType26=Analog -InputList2Cue27=an_fb16 -InputList2SigType27=Analog -InputList2Cue28=an_fb17 -InputList2SigType28=Analog -InputList2Cue29=an_fb18 -InputList2SigType29=Analog -InputList2Cue30=an_fb19 -InputList2SigType30=Analog -InputList2Cue31=an_fb20 -InputList2SigType31=Analog -InputList2Cue32=an_fb21 -InputList2SigType32=Analog -InputList2Cue33=an_fb22 -InputList2SigType33=Analog -InputList2Cue34=an_fb23 -InputList2SigType34=Analog -InputList2Cue35=an_fb24 -InputList2SigType35=Analog -InputList2Cue36=an_fb25 -InputList2SigType36=Analog -InputList2Cue37=an_fb26 -InputList2SigType37=Analog -InputList2Cue38=an_fb27 -InputList2SigType38=Analog -InputList2Cue39=an_fb28 -InputList2SigType39=Analog -InputList2Cue40=an_fb29 -InputList2SigType40=Analog -InputList2Cue41=an_fb30 -InputList2SigType41=Analog -InputList2Cue42=[~EndGroup~]an_fb -InputList2SigType42=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=an_act13 -OutputList2SigType24=Analog -OutputList2Cue25=an_act14 -OutputList2SigType25=Analog -OutputList2Cue26=an_act15 -OutputList2SigType26=Analog -OutputList2Cue27=an_act16 -OutputList2SigType27=Analog -OutputList2Cue28=an_act17 -OutputList2SigType28=Analog -OutputList2Cue29=an_act18 -OutputList2SigType29=Analog -OutputList2Cue30=an_act19 -OutputList2SigType30=Analog -OutputList2Cue31=an_act20 -OutputList2SigType31=Analog -OutputList2Cue32=an_act21 -OutputList2SigType32=Analog -OutputList2Cue33=an_act22 -OutputList2SigType33=Analog -OutputList2Cue34=an_act23 -OutputList2SigType34=Analog -OutputList2Cue35=an_act24 -OutputList2SigType35=Analog -OutputList2Cue36=an_act25 -OutputList2SigType36=Analog -OutputList2Cue37=an_act26 -OutputList2SigType37=Analog -OutputList2Cue38=an_act27 -OutputList2SigType38=Analog -OutputList2Cue39=an_act28 -OutputList2SigType39=Analog -OutputList2Cue40=an_act29 -OutputList2SigType40=Analog -OutputList2Cue41=an_act30 -OutputList2SigType41=Analog -OutputList2Cue42=[~EndGroup~]an_act -OutputList2SigType42=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=[~EndGroup~]text-o -InputList3SigType42=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=[~EndGroup~]text-i -OutputList3SigType42=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=6 -CedH=6 -SmartObjId=3904d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=6 -Tp=1 -HD=TRUE -DV=3904d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=6 -Name=PepperDash Essentials iPad_[E.Technician Controls] Display Controls_Subpage Reference List Vertical_4.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[B.AV] Staging_Subpage Reference List Horizontal_3.ced -Hint=Subpage Reference List Horizontal_3 (Smart Object ID=3200) -Code=7 -SGControlType=Subpage Reference List Horizontal -SGControlName=Subpage Reference List Horizontal_3 -GUID=D638D437-6722-43E1-B435-EF13DCE5ECF0 -SmplCName=PepperDash Essentials iPad_[B.AV] Staging_Subpage Reference List Horizontal_3.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10124 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4076 -MaxVariableInputs=4076 -MinVariableOutputs=4076 -MaxVariableOutputs=4076 -NumFixedParams=1 -MinVariableInputsList2=72 -MaxVariableInputsList2=72 -MinVariableOutputsList2=72 -MaxVariableOutputsList2=72 -MinVariableInputsList3=72 -MaxVariableInputsList3=72 -MinVariableOutputsList3=72 -MaxVariableOutputsList3=72 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=Item 13 Enable -InputSigType24=Digital -InputCue25=Item 14 Enable -InputSigType25=Digital -InputCue26=Item 15 Enable -InputSigType26=Digital -InputCue27=Item 16 Enable -InputSigType27=Digital -InputCue28=Item 17 Enable -InputSigType28=Digital -InputCue29=Item 18 Enable -InputSigType29=Digital -InputCue30=Item 19 Enable -InputSigType30=Digital -InputCue31=Item 20 Enable -InputSigType31=Digital -InputCue32=[~UNUSED2~] -InputSigType32=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=Item 13 Visible -InputSigType2026=Digital -InputCue2027=Item 14 Visible -InputSigType2027=Digital -InputCue2028=Item 15 Visible -InputSigType2028=Digital -InputCue2029=Item 16 Visible -InputSigType2029=Digital -InputCue2030=Item 17 Visible -InputSigType2030=Digital -InputCue2031=Item 18 Visible -InputSigType2031=Digital -InputCue2032=Item 19 Visible -InputSigType2032=Digital -InputCue2033=Item 20 Visible -InputSigType2033=Digital -InputCue2034=[~UNUSED2~] -InputSigType2034=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=[~EndGroup~]fb -InputSigType4076=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED3~] -OutputSigType24=Digital -OutputCue25=[~UNUSED3~] -OutputSigType25=Digital -OutputCue26=[~UNUSED3~] -OutputSigType26=Digital -OutputCue27=[~UNUSED3~] -OutputSigType27=Digital -OutputCue28=[~UNUSED3~] -OutputSigType28=Digital -OutputCue29=[~UNUSED3~] -OutputSigType29=Digital -OutputCue30=[~UNUSED3~] -OutputSigType30=Digital -OutputCue31=[~UNUSED3~] -OutputSigType31=Digital -OutputCue32=[~UNUSED2~] -OutputSigType32=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED2~] -OutputSigType2034=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=[~EndGroup~]Press -OutputSigType4076=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=an_fb13 -InputList2SigType24=Analog -InputList2Cue25=an_fb14 -InputList2SigType25=Analog -InputList2Cue26=an_fb15 -InputList2SigType26=Analog -InputList2Cue27=an_fb16 -InputList2SigType27=Analog -InputList2Cue28=an_fb17 -InputList2SigType28=Analog -InputList2Cue29=an_fb18 -InputList2SigType29=Analog -InputList2Cue30=an_fb19 -InputList2SigType30=Analog -InputList2Cue31=an_fb20 -InputList2SigType31=Analog -InputList2Cue32=an_fb21 -InputList2SigType32=Analog -InputList2Cue33=an_fb22 -InputList2SigType33=Analog -InputList2Cue34=an_fb23 -InputList2SigType34=Analog -InputList2Cue35=an_fb24 -InputList2SigType35=Analog -InputList2Cue36=an_fb25 -InputList2SigType36=Analog -InputList2Cue37=an_fb26 -InputList2SigType37=Analog -InputList2Cue38=an_fb27 -InputList2SigType38=Analog -InputList2Cue39=an_fb28 -InputList2SigType39=Analog -InputList2Cue40=an_fb29 -InputList2SigType40=Analog -InputList2Cue41=an_fb30 -InputList2SigType41=Analog -InputList2Cue42=an_fb31 -InputList2SigType42=Analog -InputList2Cue43=an_fb32 -InputList2SigType43=Analog -InputList2Cue44=an_fb33 -InputList2SigType44=Analog -InputList2Cue45=an_fb34 -InputList2SigType45=Analog -InputList2Cue46=an_fb35 -InputList2SigType46=Analog -InputList2Cue47=an_fb36 -InputList2SigType47=Analog -InputList2Cue48=an_fb37 -InputList2SigType48=Analog -InputList2Cue49=an_fb38 -InputList2SigType49=Analog -InputList2Cue50=an_fb39 -InputList2SigType50=Analog -InputList2Cue51=an_fb40 -InputList2SigType51=Analog -InputList2Cue52=an_fb41 -InputList2SigType52=Analog -InputList2Cue53=an_fb42 -InputList2SigType53=Analog -InputList2Cue54=an_fb43 -InputList2SigType54=Analog -InputList2Cue55=an_fb44 -InputList2SigType55=Analog -InputList2Cue56=an_fb45 -InputList2SigType56=Analog -InputList2Cue57=an_fb46 -InputList2SigType57=Analog -InputList2Cue58=an_fb47 -InputList2SigType58=Analog -InputList2Cue59=an_fb48 -InputList2SigType59=Analog -InputList2Cue60=an_fb49 -InputList2SigType60=Analog -InputList2Cue61=an_fb50 -InputList2SigType61=Analog -InputList2Cue62=an_fb51 -InputList2SigType62=Analog -InputList2Cue63=an_fb52 -InputList2SigType63=Analog -InputList2Cue64=an_fb53 -InputList2SigType64=Analog -InputList2Cue65=an_fb54 -InputList2SigType65=Analog -InputList2Cue66=an_fb55 -InputList2SigType66=Analog -InputList2Cue67=an_fb56 -InputList2SigType67=Analog -InputList2Cue68=an_fb57 -InputList2SigType68=Analog -InputList2Cue69=an_fb58 -InputList2SigType69=Analog -InputList2Cue70=an_fb59 -InputList2SigType70=Analog -InputList2Cue71=an_fb60 -InputList2SigType71=Analog -InputList2Cue72=[~EndGroup~]an_fb -InputList2SigType72=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=an_act13 -OutputList2SigType24=Analog -OutputList2Cue25=an_act14 -OutputList2SigType25=Analog -OutputList2Cue26=an_act15 -OutputList2SigType26=Analog -OutputList2Cue27=an_act16 -OutputList2SigType27=Analog -OutputList2Cue28=an_act17 -OutputList2SigType28=Analog -OutputList2Cue29=an_act18 -OutputList2SigType29=Analog -OutputList2Cue30=an_act19 -OutputList2SigType30=Analog -OutputList2Cue31=an_act20 -OutputList2SigType31=Analog -OutputList2Cue32=an_act21 -OutputList2SigType32=Analog -OutputList2Cue33=an_act22 -OutputList2SigType33=Analog -OutputList2Cue34=an_act23 -OutputList2SigType34=Analog -OutputList2Cue35=an_act24 -OutputList2SigType35=Analog -OutputList2Cue36=an_act25 -OutputList2SigType36=Analog -OutputList2Cue37=an_act26 -OutputList2SigType37=Analog -OutputList2Cue38=an_act27 -OutputList2SigType38=Analog -OutputList2Cue39=an_act28 -OutputList2SigType39=Analog -OutputList2Cue40=an_act29 -OutputList2SigType40=Analog -OutputList2Cue41=an_act30 -OutputList2SigType41=Analog -OutputList2Cue42=an_act31 -OutputList2SigType42=Analog -OutputList2Cue43=an_act32 -OutputList2SigType43=Analog -OutputList2Cue44=an_act33 -OutputList2SigType44=Analog -OutputList2Cue45=an_act34 -OutputList2SigType45=Analog -OutputList2Cue46=an_act35 -OutputList2SigType46=Analog -OutputList2Cue47=an_act36 -OutputList2SigType47=Analog -OutputList2Cue48=an_act37 -OutputList2SigType48=Analog -OutputList2Cue49=an_act38 -OutputList2SigType49=Analog -OutputList2Cue50=an_act39 -OutputList2SigType50=Analog -OutputList2Cue51=an_act40 -OutputList2SigType51=Analog -OutputList2Cue52=an_act41 -OutputList2SigType52=Analog -OutputList2Cue53=an_act42 -OutputList2SigType53=Analog -OutputList2Cue54=an_act43 -OutputList2SigType54=Analog -OutputList2Cue55=an_act44 -OutputList2SigType55=Analog -OutputList2Cue56=an_act45 -OutputList2SigType56=Analog -OutputList2Cue57=an_act46 -OutputList2SigType57=Analog -OutputList2Cue58=an_act47 -OutputList2SigType58=Analog -OutputList2Cue59=an_act48 -OutputList2SigType59=Analog -OutputList2Cue60=an_act49 -OutputList2SigType60=Analog -OutputList2Cue61=an_act50 -OutputList2SigType61=Analog -OutputList2Cue62=an_act51 -OutputList2SigType62=Analog -OutputList2Cue63=an_act52 -OutputList2SigType63=Analog -OutputList2Cue64=an_act53 -OutputList2SigType64=Analog -OutputList2Cue65=an_act54 -OutputList2SigType65=Analog -OutputList2Cue66=an_act55 -OutputList2SigType66=Analog -OutputList2Cue67=an_act56 -OutputList2SigType67=Analog -OutputList2Cue68=an_act57 -OutputList2SigType68=Analog -OutputList2Cue69=an_act58 -OutputList2SigType69=Analog -OutputList2Cue70=an_act59 -OutputList2SigType70=Analog -OutputList2Cue71=an_act60 -OutputList2SigType71=Analog -OutputList2Cue72=[~EndGroup~]an_act -OutputList2SigType72=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=[~EndGroup~]text-o -InputList3SigType72=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=[~EndGroup~]text-i -OutputList3SigType72=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=7 -CedH=7 -SmartObjId=3200d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=7 -Tp=1 -HD=TRUE -DV=3200d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=7 -Name=PepperDash Essentials iPad_[B.AV] Staging_Subpage Reference List Horizontal_3.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[B.AV] Source Ctrl-CATV-Basic_Channel Preset List Basic.ced -Hint=Channel Preset List Basic (Smart Object ID=1806) -Code=8 -SGControlType=Subpage Reference List Vertical -SGControlName=Channel Preset List Basic -GUID=46C43CE4-6BB9-4B76-A13E-B4279202F998 -SmplCName=PepperDash Essentials iPad_[B.AV] Source Ctrl-CATV-Basic_Channel Preset List Basic.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4106 -MaxVariableInputs=4106 -MinVariableOutputs=4106 -MaxVariableOutputs=4106 -NumFixedParams=1 -MinVariableInputsList2=3 -MaxVariableInputsList2=3 -MinVariableOutputsList2=3 -MaxVariableOutputsList2=3 -MinVariableInputsList3=132 -MaxVariableInputsList3=132 -MinVariableOutputsList3=132 -MaxVariableOutputsList3=132 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=Item 13 Enable -InputSigType24=Digital -InputCue25=Item 14 Enable -InputSigType25=Digital -InputCue26=Item 15 Enable -InputSigType26=Digital -InputCue27=Item 16 Enable -InputSigType27=Digital -InputCue28=Item 17 Enable -InputSigType28=Digital -InputCue29=Item 18 Enable -InputSigType29=Digital -InputCue30=Item 19 Enable -InputSigType30=Digital -InputCue31=Item 20 Enable -InputSigType31=Digital -InputCue32=Item 21 Enable -InputSigType32=Digital -InputCue33=Item 22 Enable -InputSigType33=Digital -InputCue34=Item 23 Enable -InputSigType34=Digital -InputCue35=Item 24 Enable -InputSigType35=Digital -InputCue36=Item 25 Enable -InputSigType36=Digital -InputCue37=Item 26 Enable -InputSigType37=Digital -InputCue38=Item 27 Enable -InputSigType38=Digital -InputCue39=Item 28 Enable -InputSigType39=Digital -InputCue40=Item 29 Enable -InputSigType40=Digital -InputCue41=Item 30 Enable -InputSigType41=Digital -InputCue42=[~UNUSED2~] -InputSigType42=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=Item 13 Visible -InputSigType2026=Digital -InputCue2027=Item 14 Visible -InputSigType2027=Digital -InputCue2028=Item 15 Visible -InputSigType2028=Digital -InputCue2029=Item 16 Visible -InputSigType2029=Digital -InputCue2030=Item 17 Visible -InputSigType2030=Digital -InputCue2031=Item 18 Visible -InputSigType2031=Digital -InputCue2032=Item 19 Visible -InputSigType2032=Digital -InputCue2033=Item 20 Visible -InputSigType2033=Digital -InputCue2034=Item 21 Visible -InputSigType2034=Digital -InputCue2035=Item 22 Visible -InputSigType2035=Digital -InputCue2036=Item 23 Visible -InputSigType2036=Digital -InputCue2037=Item 24 Visible -InputSigType2037=Digital -InputCue2038=Item 25 Visible -InputSigType2038=Digital -InputCue2039=Item 26 Visible -InputSigType2039=Digital -InputCue2040=Item 27 Visible -InputSigType2040=Digital -InputCue2041=Item 28 Visible -InputSigType2041=Digital -InputCue2042=Item 29 Visible -InputSigType2042=Digital -InputCue2043=Item 30 Visible -InputSigType2043=Digital -InputCue2044=[~UNUSED2~] -InputSigType2044=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=fb61 -InputSigType4076=Digital -InputCue4077=fb62 -InputSigType4077=Digital -InputCue4078=fb63 -InputSigType4078=Digital -InputCue4079=fb64 -InputSigType4079=Digital -InputCue4080=fb65 -InputSigType4080=Digital -InputCue4081=fb66 -InputSigType4081=Digital -InputCue4082=fb67 -InputSigType4082=Digital -InputCue4083=fb68 -InputSigType4083=Digital -InputCue4084=fb69 -InputSigType4084=Digital -InputCue4085=fb70 -InputSigType4085=Digital -InputCue4086=fb71 -InputSigType4086=Digital -InputCue4087=fb72 -InputSigType4087=Digital -InputCue4088=fb73 -InputSigType4088=Digital -InputCue4089=fb74 -InputSigType4089=Digital -InputCue4090=fb75 -InputSigType4090=Digital -InputCue4091=fb76 -InputSigType4091=Digital -InputCue4092=fb77 -InputSigType4092=Digital -InputCue4093=fb78 -InputSigType4093=Digital -InputCue4094=fb79 -InputSigType4094=Digital -InputCue4095=fb80 -InputSigType4095=Digital -InputCue4096=fb81 -InputSigType4096=Digital -InputCue4097=fb82 -InputSigType4097=Digital -InputCue4098=fb83 -InputSigType4098=Digital -InputCue4099=fb84 -InputSigType4099=Digital -InputCue4100=fb85 -InputSigType4100=Digital -InputCue4101=fb86 -InputSigType4101=Digital -InputCue4102=fb87 -InputSigType4102=Digital -InputCue4103=fb88 -InputSigType4103=Digital -InputCue4104=fb89 -InputSigType4104=Digital -InputCue4105=fb90 -InputSigType4105=Digital -InputCue4106=[~EndGroup~]fb -InputSigType4106=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED3~] -OutputSigType24=Digital -OutputCue25=[~UNUSED3~] -OutputSigType25=Digital -OutputCue26=[~UNUSED3~] -OutputSigType26=Digital -OutputCue27=[~UNUSED3~] -OutputSigType27=Digital -OutputCue28=[~UNUSED3~] -OutputSigType28=Digital -OutputCue29=[~UNUSED3~] -OutputSigType29=Digital -OutputCue30=[~UNUSED3~] -OutputSigType30=Digital -OutputCue31=[~UNUSED3~] -OutputSigType31=Digital -OutputCue32=[~UNUSED3~] -OutputSigType32=Digital -OutputCue33=[~UNUSED3~] -OutputSigType33=Digital -OutputCue34=[~UNUSED3~] -OutputSigType34=Digital -OutputCue35=[~UNUSED3~] -OutputSigType35=Digital -OutputCue36=[~UNUSED3~] -OutputSigType36=Digital -OutputCue37=[~UNUSED3~] -OutputSigType37=Digital -OutputCue38=[~UNUSED3~] -OutputSigType38=Digital -OutputCue39=[~UNUSED3~] -OutputSigType39=Digital -OutputCue40=[~UNUSED3~] -OutputSigType40=Digital -OutputCue41=[~UNUSED3~] -OutputSigType41=Digital -OutputCue42=[~UNUSED2~] -OutputSigType42=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED3~] -OutputSigType2034=Digital -OutputCue2035=[~UNUSED3~] -OutputSigType2035=Digital -OutputCue2036=[~UNUSED3~] -OutputSigType2036=Digital -OutputCue2037=[~UNUSED3~] -OutputSigType2037=Digital -OutputCue2038=[~UNUSED3~] -OutputSigType2038=Digital -OutputCue2039=[~UNUSED3~] -OutputSigType2039=Digital -OutputCue2040=[~UNUSED3~] -OutputSigType2040=Digital -OutputCue2041=[~UNUSED3~] -OutputSigType2041=Digital -OutputCue2042=[~UNUSED3~] -OutputSigType2042=Digital -OutputCue2043=[~UNUSED3~] -OutputSigType2043=Digital -OutputCue2044=[~UNUSED2~] -OutputSigType2044=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=press61 -OutputSigType4076=Digital -OutputCue4077=press62 -OutputSigType4077=Digital -OutputCue4078=press63 -OutputSigType4078=Digital -OutputCue4079=press64 -OutputSigType4079=Digital -OutputCue4080=press65 -OutputSigType4080=Digital -OutputCue4081=press66 -OutputSigType4081=Digital -OutputCue4082=press67 -OutputSigType4082=Digital -OutputCue4083=press68 -OutputSigType4083=Digital -OutputCue4084=press69 -OutputSigType4084=Digital -OutputCue4085=press70 -OutputSigType4085=Digital -OutputCue4086=press71 -OutputSigType4086=Digital -OutputCue4087=press72 -OutputSigType4087=Digital -OutputCue4088=press73 -OutputSigType4088=Digital -OutputCue4089=press74 -OutputSigType4089=Digital -OutputCue4090=press75 -OutputSigType4090=Digital -OutputCue4091=press76 -OutputSigType4091=Digital -OutputCue4092=press77 -OutputSigType4092=Digital -OutputCue4093=press78 -OutputSigType4093=Digital -OutputCue4094=press79 -OutputSigType4094=Digital -OutputCue4095=press80 -OutputSigType4095=Digital -OutputCue4096=press81 -OutputSigType4096=Digital -OutputCue4097=press82 -OutputSigType4097=Digital -OutputCue4098=press83 -OutputSigType4098=Digital -OutputCue4099=press84 -OutputSigType4099=Digital -OutputCue4100=press85 -OutputSigType4100=Digital -OutputCue4101=press86 -OutputSigType4101=Digital -OutputCue4102=press87 -OutputSigType4102=Digital -OutputCue4103=press88 -OutputSigType4103=Digital -OutputCue4104=press89 -OutputSigType4104=Digital -OutputCue4105=press90 -OutputSigType4105=Digital -OutputCue4106=[~EndGroup~]Press -OutputSigType4106=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=text-o61 -InputList3SigType72=Serial -InputList3Cue73=text-o62 -InputList3SigType73=Serial -InputList3Cue74=text-o63 -InputList3SigType74=Serial -InputList3Cue75=text-o64 -InputList3SigType75=Serial -InputList3Cue76=text-o65 -InputList3SigType76=Serial -InputList3Cue77=text-o66 -InputList3SigType77=Serial -InputList3Cue78=text-o67 -InputList3SigType78=Serial -InputList3Cue79=text-o68 -InputList3SigType79=Serial -InputList3Cue80=text-o69 -InputList3SigType80=Serial -InputList3Cue81=text-o70 -InputList3SigType81=Serial -InputList3Cue82=text-o71 -InputList3SigType82=Serial -InputList3Cue83=text-o72 -InputList3SigType83=Serial -InputList3Cue84=text-o73 -InputList3SigType84=Serial -InputList3Cue85=text-o74 -InputList3SigType85=Serial -InputList3Cue86=text-o75 -InputList3SigType86=Serial -InputList3Cue87=text-o76 -InputList3SigType87=Serial -InputList3Cue88=text-o77 -InputList3SigType88=Serial -InputList3Cue89=text-o78 -InputList3SigType89=Serial -InputList3Cue90=text-o79 -InputList3SigType90=Serial -InputList3Cue91=text-o80 -InputList3SigType91=Serial -InputList3Cue92=text-o81 -InputList3SigType92=Serial -InputList3Cue93=text-o82 -InputList3SigType93=Serial -InputList3Cue94=text-o83 -InputList3SigType94=Serial -InputList3Cue95=text-o84 -InputList3SigType95=Serial -InputList3Cue96=text-o85 -InputList3SigType96=Serial -InputList3Cue97=text-o86 -InputList3SigType97=Serial -InputList3Cue98=text-o87 -InputList3SigType98=Serial -InputList3Cue99=text-o88 -InputList3SigType99=Serial -InputList3Cue100=text-o89 -InputList3SigType100=Serial -InputList3Cue101=text-o90 -InputList3SigType101=Serial -InputList3Cue102=text-o91 -InputList3SigType102=Serial -InputList3Cue103=text-o92 -InputList3SigType103=Serial -InputList3Cue104=text-o93 -InputList3SigType104=Serial -InputList3Cue105=text-o94 -InputList3SigType105=Serial -InputList3Cue106=text-o95 -InputList3SigType106=Serial -InputList3Cue107=text-o96 -InputList3SigType107=Serial -InputList3Cue108=text-o97 -InputList3SigType108=Serial -InputList3Cue109=text-o98 -InputList3SigType109=Serial -InputList3Cue110=text-o99 -InputList3SigType110=Serial -InputList3Cue111=text-o100 -InputList3SigType111=Serial -InputList3Cue112=text-o101 -InputList3SigType112=Serial -InputList3Cue113=text-o102 -InputList3SigType113=Serial -InputList3Cue114=text-o103 -InputList3SigType114=Serial -InputList3Cue115=text-o104 -InputList3SigType115=Serial -InputList3Cue116=text-o105 -InputList3SigType116=Serial -InputList3Cue117=text-o106 -InputList3SigType117=Serial -InputList3Cue118=text-o107 -InputList3SigType118=Serial -InputList3Cue119=text-o108 -InputList3SigType119=Serial -InputList3Cue120=text-o109 -InputList3SigType120=Serial -InputList3Cue121=text-o110 -InputList3SigType121=Serial -InputList3Cue122=text-o111 -InputList3SigType122=Serial -InputList3Cue123=text-o112 -InputList3SigType123=Serial -InputList3Cue124=text-o113 -InputList3SigType124=Serial -InputList3Cue125=text-o114 -InputList3SigType125=Serial -InputList3Cue126=text-o115 -InputList3SigType126=Serial -InputList3Cue127=text-o116 -InputList3SigType127=Serial -InputList3Cue128=text-o117 -InputList3SigType128=Serial -InputList3Cue129=text-o118 -InputList3SigType129=Serial -InputList3Cue130=text-o119 -InputList3SigType130=Serial -InputList3Cue131=text-o120 -InputList3SigType131=Serial -InputList3Cue132=[~EndGroup~]text-o -InputList3SigType132=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=text-i61 -OutputList3SigType72=Serial -OutputList3Cue73=text-i62 -OutputList3SigType73=Serial -OutputList3Cue74=text-i63 -OutputList3SigType74=Serial -OutputList3Cue75=text-i64 -OutputList3SigType75=Serial -OutputList3Cue76=text-i65 -OutputList3SigType76=Serial -OutputList3Cue77=text-i66 -OutputList3SigType77=Serial -OutputList3Cue78=text-i67 -OutputList3SigType78=Serial -OutputList3Cue79=text-i68 -OutputList3SigType79=Serial -OutputList3Cue80=text-i69 -OutputList3SigType80=Serial -OutputList3Cue81=text-i70 -OutputList3SigType81=Serial -OutputList3Cue82=text-i71 -OutputList3SigType82=Serial -OutputList3Cue83=text-i72 -OutputList3SigType83=Serial -OutputList3Cue84=text-i73 -OutputList3SigType84=Serial -OutputList3Cue85=text-i74 -OutputList3SigType85=Serial -OutputList3Cue86=text-i75 -OutputList3SigType86=Serial -OutputList3Cue87=text-i76 -OutputList3SigType87=Serial -OutputList3Cue88=text-i77 -OutputList3SigType88=Serial -OutputList3Cue89=text-i78 -OutputList3SigType89=Serial -OutputList3Cue90=text-i79 -OutputList3SigType90=Serial -OutputList3Cue91=text-i80 -OutputList3SigType91=Serial -OutputList3Cue92=text-i81 -OutputList3SigType92=Serial -OutputList3Cue93=text-i82 -OutputList3SigType93=Serial -OutputList3Cue94=text-i83 -OutputList3SigType94=Serial -OutputList3Cue95=text-i84 -OutputList3SigType95=Serial -OutputList3Cue96=text-i85 -OutputList3SigType96=Serial -OutputList3Cue97=text-i86 -OutputList3SigType97=Serial -OutputList3Cue98=text-i87 -OutputList3SigType98=Serial -OutputList3Cue99=text-i88 -OutputList3SigType99=Serial -OutputList3Cue100=text-i89 -OutputList3SigType100=Serial -OutputList3Cue101=text-i90 -OutputList3SigType101=Serial -OutputList3Cue102=text-i91 -OutputList3SigType102=Serial -OutputList3Cue103=text-i92 -OutputList3SigType103=Serial -OutputList3Cue104=text-i93 -OutputList3SigType104=Serial -OutputList3Cue105=text-i94 -OutputList3SigType105=Serial -OutputList3Cue106=text-i95 -OutputList3SigType106=Serial -OutputList3Cue107=text-i96 -OutputList3SigType107=Serial -OutputList3Cue108=text-i97 -OutputList3SigType108=Serial -OutputList3Cue109=text-i98 -OutputList3SigType109=Serial -OutputList3Cue110=text-i99 -OutputList3SigType110=Serial -OutputList3Cue111=text-i100 -OutputList3SigType111=Serial -OutputList3Cue112=text-i101 -OutputList3SigType112=Serial -OutputList3Cue113=text-i102 -OutputList3SigType113=Serial -OutputList3Cue114=text-i103 -OutputList3SigType114=Serial -OutputList3Cue115=text-i104 -OutputList3SigType115=Serial -OutputList3Cue116=text-i105 -OutputList3SigType116=Serial -OutputList3Cue117=text-i106 -OutputList3SigType117=Serial -OutputList3Cue118=text-i107 -OutputList3SigType118=Serial -OutputList3Cue119=text-i108 -OutputList3SigType119=Serial -OutputList3Cue120=text-i109 -OutputList3SigType120=Serial -OutputList3Cue121=text-i110 -OutputList3SigType121=Serial -OutputList3Cue122=text-i111 -OutputList3SigType122=Serial -OutputList3Cue123=text-i112 -OutputList3SigType123=Serial -OutputList3Cue124=text-i113 -OutputList3SigType124=Serial -OutputList3Cue125=text-i114 -OutputList3SigType125=Serial -OutputList3Cue126=text-i115 -OutputList3SigType126=Serial -OutputList3Cue127=text-i116 -OutputList3SigType127=Serial -OutputList3Cue128=text-i117 -OutputList3SigType128=Serial -OutputList3Cue129=text-i118 -OutputList3SigType129=Serial -OutputList3Cue130=text-i119 -OutputList3SigType130=Serial -OutputList3Cue131=text-i120 -OutputList3SigType131=Serial -OutputList3Cue132=[~EndGroup~]text-i -OutputList3SigType132=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=8 -CedH=8 -SmartObjId=1806d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=8 -Tp=1 -HD=TRUE -DV=1806d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=8 -Name=PepperDash Essentials iPad_[B.AV] Source Ctrl-CATV-Basic_Channel Preset List Basic.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[A.Global] Activity Footer SRL_Modes Bottom Bar SRL.ced -Hint=Modes Bottom Bar SRL (Smart Object ID=15022) -Code=9 -SGControlType=Subpage Reference List Horizontal -SGControlName=Modes Bottom Bar SRL -GUID=812FF0C4-486D-4ABC-90FA-405F19104323 -SmplCName=PepperDash Essentials iPad_[A.Global] Activity Footer SRL_Modes Bottom Bar SRL.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10124 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4028 -MaxVariableInputs=4028 -MinVariableOutputs=4028 -MaxVariableOutputs=4028 -NumFixedParams=1 -MinVariableInputsList2=24 -MaxVariableInputsList2=24 -MinVariableOutputsList2=24 -MaxVariableOutputsList2=24 -MinVariableInputsList3=24 -MaxVariableInputsList3=24 -MinVariableOutputsList3=24 -MaxVariableOutputsList3=24 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=[~UNUSED2~] -InputSigType16=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=[~UNUSED2~] -InputSigType2018=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=[~EndGroup~]fb -InputSigType4028=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED2~] -OutputSigType16=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED2~] -OutputSigType2018=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=[~EndGroup~]Press -OutputSigType4028=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=[~EndGroup~]an_fb -InputList2SigType24=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=[~EndGroup~]an_act -OutputList2SigType24=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=[~EndGroup~]text-o -InputList3SigType24=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=[~EndGroup~]text-i -OutputList3SigType24=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=9 -CedH=9 -SmartObjId=15022d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=9 -Tp=1 -HD=TRUE -DV=15022d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=9 -Name=PepperDash Essentials iPad_[A.Global] Activity Footer SRL_Modes Bottom Bar SRL.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[B.AV] Object - Presets_CATV Icon List Vertical.ced -Hint=CATV Icon List Vertical (Smart Object ID=10012) -Code=10 -SGControlType=Subpage Reference List Vertical -SGControlName=CATV Icon List Vertical -GUID=B34C4DC0-DD10-4C49-AEBA-F968934EFDC6 -SmplCName=PepperDash Essentials iPad_[B.AV] Object - Presets_CATV Icon List Vertical.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4316 -MaxVariableInputs=4316 -MinVariableOutputs=4316 -MaxVariableOutputs=4316 -NumFixedParams=1 -MinVariableInputsList2=3 -MaxVariableInputsList2=3 -MinVariableOutputsList2=3 -MaxVariableOutputsList2=3 -MinVariableInputsList3=412 -MaxVariableInputsList3=412 -MinVariableOutputsList3=412 -MaxVariableOutputsList3=412 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=Item 13 Enable -InputSigType24=Digital -InputCue25=Item 14 Enable -InputSigType25=Digital -InputCue26=Item 15 Enable -InputSigType26=Digital -InputCue27=Item 16 Enable -InputSigType27=Digital -InputCue28=Item 17 Enable -InputSigType28=Digital -InputCue29=Item 18 Enable -InputSigType29=Digital -InputCue30=Item 19 Enable -InputSigType30=Digital -InputCue31=Item 20 Enable -InputSigType31=Digital -InputCue32=Item 21 Enable -InputSigType32=Digital -InputCue33=Item 22 Enable -InputSigType33=Digital -InputCue34=Item 23 Enable -InputSigType34=Digital -InputCue35=Item 24 Enable -InputSigType35=Digital -InputCue36=Item 25 Enable -InputSigType36=Digital -InputCue37=Item 26 Enable -InputSigType37=Digital -InputCue38=Item 27 Enable -InputSigType38=Digital -InputCue39=Item 28 Enable -InputSigType39=Digital -InputCue40=Item 29 Enable -InputSigType40=Digital -InputCue41=Item 30 Enable -InputSigType41=Digital -InputCue42=Item 31 Enable -InputSigType42=Digital -InputCue43=Item 32 Enable -InputSigType43=Digital -InputCue44=Item 33 Enable -InputSigType44=Digital -InputCue45=Item 34 Enable -InputSigType45=Digital -InputCue46=Item 35 Enable -InputSigType46=Digital -InputCue47=Item 36 Enable -InputSigType47=Digital -InputCue48=Item 37 Enable -InputSigType48=Digital -InputCue49=Item 38 Enable -InputSigType49=Digital -InputCue50=Item 39 Enable -InputSigType50=Digital -InputCue51=Item 40 Enable -InputSigType51=Digital -InputCue52=Item 41 Enable -InputSigType52=Digital -InputCue53=Item 42 Enable -InputSigType53=Digital -InputCue54=Item 43 Enable -InputSigType54=Digital -InputCue55=Item 44 Enable -InputSigType55=Digital -InputCue56=Item 45 Enable -InputSigType56=Digital -InputCue57=Item 46 Enable -InputSigType57=Digital -InputCue58=Item 47 Enable -InputSigType58=Digital -InputCue59=Item 48 Enable -InputSigType59=Digital -InputCue60=Item 49 Enable -InputSigType60=Digital -InputCue61=Item 50 Enable -InputSigType61=Digital -InputCue62=Item 51 Enable -InputSigType62=Digital -InputCue63=Item 52 Enable -InputSigType63=Digital -InputCue64=Item 53 Enable -InputSigType64=Digital -InputCue65=Item 54 Enable -InputSigType65=Digital -InputCue66=Item 55 Enable -InputSigType66=Digital -InputCue67=Item 56 Enable -InputSigType67=Digital -InputCue68=Item 57 Enable -InputSigType68=Digital -InputCue69=Item 58 Enable -InputSigType69=Digital -InputCue70=Item 59 Enable -InputSigType70=Digital -InputCue71=Item 60 Enable -InputSigType71=Digital -InputCue72=Item 61 Enable -InputSigType72=Digital -InputCue73=Item 62 Enable -InputSigType73=Digital -InputCue74=Item 63 Enable -InputSigType74=Digital -InputCue75=Item 64 Enable -InputSigType75=Digital -InputCue76=Item 65 Enable -InputSigType76=Digital -InputCue77=Item 66 Enable -InputSigType77=Digital -InputCue78=Item 67 Enable -InputSigType78=Digital -InputCue79=Item 68 Enable -InputSigType79=Digital -InputCue80=Item 69 Enable -InputSigType80=Digital -InputCue81=Item 70 Enable -InputSigType81=Digital -InputCue82=Item 71 Enable -InputSigType82=Digital -InputCue83=Item 72 Enable -InputSigType83=Digital -InputCue84=Item 73 Enable -InputSigType84=Digital -InputCue85=Item 74 Enable -InputSigType85=Digital -InputCue86=Item 75 Enable -InputSigType86=Digital -InputCue87=Item 76 Enable -InputSigType87=Digital -InputCue88=Item 77 Enable -InputSigType88=Digital -InputCue89=Item 78 Enable -InputSigType89=Digital -InputCue90=Item 79 Enable -InputSigType90=Digital -InputCue91=Item 80 Enable -InputSigType91=Digital -InputCue92=Item 81 Enable -InputSigType92=Digital -InputCue93=Item 82 Enable -InputSigType93=Digital -InputCue94=Item 83 Enable -InputSigType94=Digital -InputCue95=Item 84 Enable -InputSigType95=Digital -InputCue96=Item 85 Enable -InputSigType96=Digital -InputCue97=Item 86 Enable -InputSigType97=Digital -InputCue98=Item 87 Enable -InputSigType98=Digital -InputCue99=Item 88 Enable -InputSigType99=Digital -InputCue100=Item 89 Enable -InputSigType100=Digital -InputCue101=Item 90 Enable -InputSigType101=Digital -InputCue102=Item 91 Enable -InputSigType102=Digital -InputCue103=Item 92 Enable -InputSigType103=Digital -InputCue104=Item 93 Enable -InputSigType104=Digital -InputCue105=Item 94 Enable -InputSigType105=Digital -InputCue106=Item 95 Enable -InputSigType106=Digital -InputCue107=Item 96 Enable -InputSigType107=Digital -InputCue108=Item 97 Enable -InputSigType108=Digital -InputCue109=Item 98 Enable -InputSigType109=Digital -InputCue110=Item 99 Enable -InputSigType110=Digital -InputCue111=Item 100 Enable -InputSigType111=Digital -InputCue112=[~UNUSED2~] -InputSigType112=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=Item 13 Visible -InputSigType2026=Digital -InputCue2027=Item 14 Visible -InputSigType2027=Digital -InputCue2028=Item 15 Visible -InputSigType2028=Digital -InputCue2029=Item 16 Visible -InputSigType2029=Digital -InputCue2030=Item 17 Visible -InputSigType2030=Digital -InputCue2031=Item 18 Visible -InputSigType2031=Digital -InputCue2032=Item 19 Visible -InputSigType2032=Digital -InputCue2033=Item 20 Visible -InputSigType2033=Digital -InputCue2034=Item 21 Visible -InputSigType2034=Digital -InputCue2035=Item 22 Visible -InputSigType2035=Digital -InputCue2036=Item 23 Visible -InputSigType2036=Digital -InputCue2037=Item 24 Visible -InputSigType2037=Digital -InputCue2038=Item 25 Visible -InputSigType2038=Digital -InputCue2039=Item 26 Visible -InputSigType2039=Digital -InputCue2040=Item 27 Visible -InputSigType2040=Digital -InputCue2041=Item 28 Visible -InputSigType2041=Digital -InputCue2042=Item 29 Visible -InputSigType2042=Digital -InputCue2043=Item 30 Visible -InputSigType2043=Digital -InputCue2044=Item 31 Visible -InputSigType2044=Digital -InputCue2045=Item 32 Visible -InputSigType2045=Digital -InputCue2046=Item 33 Visible -InputSigType2046=Digital -InputCue2047=Item 34 Visible -InputSigType2047=Digital -InputCue2048=Item 35 Visible -InputSigType2048=Digital -InputCue2049=Item 36 Visible -InputSigType2049=Digital -InputCue2050=Item 37 Visible -InputSigType2050=Digital -InputCue2051=Item 38 Visible -InputSigType2051=Digital -InputCue2052=Item 39 Visible -InputSigType2052=Digital -InputCue2053=Item 40 Visible -InputSigType2053=Digital -InputCue2054=Item 41 Visible -InputSigType2054=Digital -InputCue2055=Item 42 Visible -InputSigType2055=Digital -InputCue2056=Item 43 Visible -InputSigType2056=Digital -InputCue2057=Item 44 Visible -InputSigType2057=Digital -InputCue2058=Item 45 Visible -InputSigType2058=Digital -InputCue2059=Item 46 Visible -InputSigType2059=Digital -InputCue2060=Item 47 Visible -InputSigType2060=Digital -InputCue2061=Item 48 Visible -InputSigType2061=Digital -InputCue2062=Item 49 Visible -InputSigType2062=Digital -InputCue2063=Item 50 Visible -InputSigType2063=Digital -InputCue2064=Item 51 Visible -InputSigType2064=Digital -InputCue2065=Item 52 Visible -InputSigType2065=Digital -InputCue2066=Item 53 Visible -InputSigType2066=Digital -InputCue2067=Item 54 Visible -InputSigType2067=Digital -InputCue2068=Item 55 Visible -InputSigType2068=Digital -InputCue2069=Item 56 Visible -InputSigType2069=Digital -InputCue2070=Item 57 Visible -InputSigType2070=Digital -InputCue2071=Item 58 Visible -InputSigType2071=Digital -InputCue2072=Item 59 Visible -InputSigType2072=Digital -InputCue2073=Item 60 Visible -InputSigType2073=Digital -InputCue2074=Item 61 Visible -InputSigType2074=Digital -InputCue2075=Item 62 Visible -InputSigType2075=Digital -InputCue2076=Item 63 Visible -InputSigType2076=Digital -InputCue2077=Item 64 Visible -InputSigType2077=Digital -InputCue2078=Item 65 Visible -InputSigType2078=Digital -InputCue2079=Item 66 Visible -InputSigType2079=Digital -InputCue2080=Item 67 Visible -InputSigType2080=Digital -InputCue2081=Item 68 Visible -InputSigType2081=Digital -InputCue2082=Item 69 Visible -InputSigType2082=Digital -InputCue2083=Item 70 Visible -InputSigType2083=Digital -InputCue2084=Item 71 Visible -InputSigType2084=Digital -InputCue2085=Item 72 Visible -InputSigType2085=Digital -InputCue2086=Item 73 Visible -InputSigType2086=Digital -InputCue2087=Item 74 Visible -InputSigType2087=Digital -InputCue2088=Item 75 Visible -InputSigType2088=Digital -InputCue2089=Item 76 Visible -InputSigType2089=Digital -InputCue2090=Item 77 Visible -InputSigType2090=Digital -InputCue2091=Item 78 Visible -InputSigType2091=Digital -InputCue2092=Item 79 Visible -InputSigType2092=Digital -InputCue2093=Item 80 Visible -InputSigType2093=Digital -InputCue2094=Item 81 Visible -InputSigType2094=Digital -InputCue2095=Item 82 Visible -InputSigType2095=Digital -InputCue2096=Item 83 Visible -InputSigType2096=Digital -InputCue2097=Item 84 Visible -InputSigType2097=Digital -InputCue2098=Item 85 Visible -InputSigType2098=Digital -InputCue2099=Item 86 Visible -InputSigType2099=Digital -InputCue2100=Item 87 Visible -InputSigType2100=Digital -InputCue2101=Item 88 Visible -InputSigType2101=Digital -InputCue2102=Item 89 Visible -InputSigType2102=Digital -InputCue2103=Item 90 Visible -InputSigType2103=Digital -InputCue2104=Item 91 Visible -InputSigType2104=Digital -InputCue2105=Item 92 Visible -InputSigType2105=Digital -InputCue2106=Item 93 Visible -InputSigType2106=Digital -InputCue2107=Item 94 Visible -InputSigType2107=Digital -InputCue2108=Item 95 Visible -InputSigType2108=Digital -InputCue2109=Item 96 Visible -InputSigType2109=Digital -InputCue2110=Item 97 Visible -InputSigType2110=Digital -InputCue2111=Item 98 Visible -InputSigType2111=Digital -InputCue2112=Item 99 Visible -InputSigType2112=Digital -InputCue2113=Item 100 Visible -InputSigType2113=Digital -InputCue2114=[~UNUSED2~] -InputSigType2114=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=fb61 -InputSigType4076=Digital -InputCue4077=fb62 -InputSigType4077=Digital -InputCue4078=fb63 -InputSigType4078=Digital -InputCue4079=fb64 -InputSigType4079=Digital -InputCue4080=fb65 -InputSigType4080=Digital -InputCue4081=fb66 -InputSigType4081=Digital -InputCue4082=fb67 -InputSigType4082=Digital -InputCue4083=fb68 -InputSigType4083=Digital -InputCue4084=fb69 -InputSigType4084=Digital -InputCue4085=fb70 -InputSigType4085=Digital -InputCue4086=fb71 -InputSigType4086=Digital -InputCue4087=fb72 -InputSigType4087=Digital -InputCue4088=fb73 -InputSigType4088=Digital -InputCue4089=fb74 -InputSigType4089=Digital -InputCue4090=fb75 -InputSigType4090=Digital -InputCue4091=fb76 -InputSigType4091=Digital -InputCue4092=fb77 -InputSigType4092=Digital -InputCue4093=fb78 -InputSigType4093=Digital -InputCue4094=fb79 -InputSigType4094=Digital -InputCue4095=fb80 -InputSigType4095=Digital -InputCue4096=fb81 -InputSigType4096=Digital -InputCue4097=fb82 -InputSigType4097=Digital -InputCue4098=fb83 -InputSigType4098=Digital -InputCue4099=fb84 -InputSigType4099=Digital -InputCue4100=fb85 -InputSigType4100=Digital -InputCue4101=fb86 -InputSigType4101=Digital -InputCue4102=fb87 -InputSigType4102=Digital -InputCue4103=fb88 -InputSigType4103=Digital -InputCue4104=fb89 -InputSigType4104=Digital -InputCue4105=fb90 -InputSigType4105=Digital -InputCue4106=fb91 -InputSigType4106=Digital -InputCue4107=fb92 -InputSigType4107=Digital -InputCue4108=fb93 -InputSigType4108=Digital -InputCue4109=fb94 -InputSigType4109=Digital -InputCue4110=fb95 -InputSigType4110=Digital -InputCue4111=fb96 -InputSigType4111=Digital -InputCue4112=fb97 -InputSigType4112=Digital -InputCue4113=fb98 -InputSigType4113=Digital -InputCue4114=fb99 -InputSigType4114=Digital -InputCue4115=fb100 -InputSigType4115=Digital -InputCue4116=fb101 -InputSigType4116=Digital -InputCue4117=fb102 -InputSigType4117=Digital -InputCue4118=fb103 -InputSigType4118=Digital -InputCue4119=fb104 -InputSigType4119=Digital -InputCue4120=fb105 -InputSigType4120=Digital -InputCue4121=fb106 -InputSigType4121=Digital -InputCue4122=fb107 -InputSigType4122=Digital -InputCue4123=fb108 -InputSigType4123=Digital -InputCue4124=fb109 -InputSigType4124=Digital -InputCue4125=fb110 -InputSigType4125=Digital -InputCue4126=fb111 -InputSigType4126=Digital -InputCue4127=fb112 -InputSigType4127=Digital -InputCue4128=fb113 -InputSigType4128=Digital -InputCue4129=fb114 -InputSigType4129=Digital -InputCue4130=fb115 -InputSigType4130=Digital -InputCue4131=fb116 -InputSigType4131=Digital -InputCue4132=fb117 -InputSigType4132=Digital -InputCue4133=fb118 -InputSigType4133=Digital -InputCue4134=fb119 -InputSigType4134=Digital -InputCue4135=fb120 -InputSigType4135=Digital -InputCue4136=fb121 -InputSigType4136=Digital -InputCue4137=fb122 -InputSigType4137=Digital -InputCue4138=fb123 -InputSigType4138=Digital -InputCue4139=fb124 -InputSigType4139=Digital -InputCue4140=fb125 -InputSigType4140=Digital -InputCue4141=fb126 -InputSigType4141=Digital -InputCue4142=fb127 -InputSigType4142=Digital -InputCue4143=fb128 -InputSigType4143=Digital -InputCue4144=fb129 -InputSigType4144=Digital -InputCue4145=fb130 -InputSigType4145=Digital -InputCue4146=fb131 -InputSigType4146=Digital -InputCue4147=fb132 -InputSigType4147=Digital -InputCue4148=fb133 -InputSigType4148=Digital -InputCue4149=fb134 -InputSigType4149=Digital -InputCue4150=fb135 -InputSigType4150=Digital -InputCue4151=fb136 -InputSigType4151=Digital -InputCue4152=fb137 -InputSigType4152=Digital -InputCue4153=fb138 -InputSigType4153=Digital -InputCue4154=fb139 -InputSigType4154=Digital -InputCue4155=fb140 -InputSigType4155=Digital -InputCue4156=fb141 -InputSigType4156=Digital -InputCue4157=fb142 -InputSigType4157=Digital -InputCue4158=fb143 -InputSigType4158=Digital -InputCue4159=fb144 -InputSigType4159=Digital -InputCue4160=fb145 -InputSigType4160=Digital -InputCue4161=fb146 -InputSigType4161=Digital -InputCue4162=fb147 -InputSigType4162=Digital -InputCue4163=fb148 -InputSigType4163=Digital -InputCue4164=fb149 -InputSigType4164=Digital -InputCue4165=fb150 -InputSigType4165=Digital -InputCue4166=fb151 -InputSigType4166=Digital -InputCue4167=fb152 -InputSigType4167=Digital -InputCue4168=fb153 -InputSigType4168=Digital -InputCue4169=fb154 -InputSigType4169=Digital -InputCue4170=fb155 -InputSigType4170=Digital -InputCue4171=fb156 -InputSigType4171=Digital -InputCue4172=fb157 -InputSigType4172=Digital -InputCue4173=fb158 -InputSigType4173=Digital -InputCue4174=fb159 -InputSigType4174=Digital -InputCue4175=fb160 -InputSigType4175=Digital -InputCue4176=fb161 -InputSigType4176=Digital -InputCue4177=fb162 -InputSigType4177=Digital -InputCue4178=fb163 -InputSigType4178=Digital -InputCue4179=fb164 -InputSigType4179=Digital -InputCue4180=fb165 -InputSigType4180=Digital -InputCue4181=fb166 -InputSigType4181=Digital -InputCue4182=fb167 -InputSigType4182=Digital -InputCue4183=fb168 -InputSigType4183=Digital -InputCue4184=fb169 -InputSigType4184=Digital -InputCue4185=fb170 -InputSigType4185=Digital -InputCue4186=fb171 -InputSigType4186=Digital -InputCue4187=fb172 -InputSigType4187=Digital -InputCue4188=fb173 -InputSigType4188=Digital -InputCue4189=fb174 -InputSigType4189=Digital -InputCue4190=fb175 -InputSigType4190=Digital -InputCue4191=fb176 -InputSigType4191=Digital -InputCue4192=fb177 -InputSigType4192=Digital -InputCue4193=fb178 -InputSigType4193=Digital -InputCue4194=fb179 -InputSigType4194=Digital -InputCue4195=fb180 -InputSigType4195=Digital -InputCue4196=fb181 -InputSigType4196=Digital -InputCue4197=fb182 -InputSigType4197=Digital -InputCue4198=fb183 -InputSigType4198=Digital -InputCue4199=fb184 -InputSigType4199=Digital -InputCue4200=fb185 -InputSigType4200=Digital -InputCue4201=fb186 -InputSigType4201=Digital -InputCue4202=fb187 -InputSigType4202=Digital -InputCue4203=fb188 -InputSigType4203=Digital -InputCue4204=fb189 -InputSigType4204=Digital -InputCue4205=fb190 -InputSigType4205=Digital -InputCue4206=fb191 -InputSigType4206=Digital -InputCue4207=fb192 -InputSigType4207=Digital -InputCue4208=fb193 -InputSigType4208=Digital -InputCue4209=fb194 -InputSigType4209=Digital -InputCue4210=fb195 -InputSigType4210=Digital -InputCue4211=fb196 -InputSigType4211=Digital -InputCue4212=fb197 -InputSigType4212=Digital -InputCue4213=fb198 -InputSigType4213=Digital -InputCue4214=fb199 -InputSigType4214=Digital -InputCue4215=fb200 -InputSigType4215=Digital -InputCue4216=fb201 -InputSigType4216=Digital -InputCue4217=fb202 -InputSigType4217=Digital -InputCue4218=fb203 -InputSigType4218=Digital -InputCue4219=fb204 -InputSigType4219=Digital -InputCue4220=fb205 -InputSigType4220=Digital -InputCue4221=fb206 -InputSigType4221=Digital -InputCue4222=fb207 -InputSigType4222=Digital -InputCue4223=fb208 -InputSigType4223=Digital -InputCue4224=fb209 -InputSigType4224=Digital -InputCue4225=fb210 -InputSigType4225=Digital -InputCue4226=fb211 -InputSigType4226=Digital -InputCue4227=fb212 -InputSigType4227=Digital -InputCue4228=fb213 -InputSigType4228=Digital -InputCue4229=fb214 -InputSigType4229=Digital -InputCue4230=fb215 -InputSigType4230=Digital -InputCue4231=fb216 -InputSigType4231=Digital -InputCue4232=fb217 -InputSigType4232=Digital -InputCue4233=fb218 -InputSigType4233=Digital -InputCue4234=fb219 -InputSigType4234=Digital -InputCue4235=fb220 -InputSigType4235=Digital -InputCue4236=fb221 -InputSigType4236=Digital -InputCue4237=fb222 -InputSigType4237=Digital -InputCue4238=fb223 -InputSigType4238=Digital -InputCue4239=fb224 -InputSigType4239=Digital -InputCue4240=fb225 -InputSigType4240=Digital -InputCue4241=fb226 -InputSigType4241=Digital -InputCue4242=fb227 -InputSigType4242=Digital -InputCue4243=fb228 -InputSigType4243=Digital -InputCue4244=fb229 -InputSigType4244=Digital -InputCue4245=fb230 -InputSigType4245=Digital -InputCue4246=fb231 -InputSigType4246=Digital -InputCue4247=fb232 -InputSigType4247=Digital -InputCue4248=fb233 -InputSigType4248=Digital -InputCue4249=fb234 -InputSigType4249=Digital -InputCue4250=fb235 -InputSigType4250=Digital -InputCue4251=fb236 -InputSigType4251=Digital -InputCue4252=fb237 -InputSigType4252=Digital -InputCue4253=fb238 -InputSigType4253=Digital -InputCue4254=fb239 -InputSigType4254=Digital -InputCue4255=fb240 -InputSigType4255=Digital -InputCue4256=fb241 -InputSigType4256=Digital -InputCue4257=fb242 -InputSigType4257=Digital -InputCue4258=fb243 -InputSigType4258=Digital -InputCue4259=fb244 -InputSigType4259=Digital -InputCue4260=fb245 -InputSigType4260=Digital -InputCue4261=fb246 -InputSigType4261=Digital -InputCue4262=fb247 -InputSigType4262=Digital -InputCue4263=fb248 -InputSigType4263=Digital -InputCue4264=fb249 -InputSigType4264=Digital -InputCue4265=fb250 -InputSigType4265=Digital -InputCue4266=fb251 -InputSigType4266=Digital -InputCue4267=fb252 -InputSigType4267=Digital -InputCue4268=fb253 -InputSigType4268=Digital -InputCue4269=fb254 -InputSigType4269=Digital -InputCue4270=fb255 -InputSigType4270=Digital -InputCue4271=fb256 -InputSigType4271=Digital -InputCue4272=fb257 -InputSigType4272=Digital -InputCue4273=fb258 -InputSigType4273=Digital -InputCue4274=fb259 -InputSigType4274=Digital -InputCue4275=fb260 -InputSigType4275=Digital -InputCue4276=fb261 -InputSigType4276=Digital -InputCue4277=fb262 -InputSigType4277=Digital -InputCue4278=fb263 -InputSigType4278=Digital -InputCue4279=fb264 -InputSigType4279=Digital -InputCue4280=fb265 -InputSigType4280=Digital -InputCue4281=fb266 -InputSigType4281=Digital -InputCue4282=fb267 -InputSigType4282=Digital -InputCue4283=fb268 -InputSigType4283=Digital -InputCue4284=fb269 -InputSigType4284=Digital -InputCue4285=fb270 -InputSigType4285=Digital -InputCue4286=fb271 -InputSigType4286=Digital -InputCue4287=fb272 -InputSigType4287=Digital -InputCue4288=fb273 -InputSigType4288=Digital -InputCue4289=fb274 -InputSigType4289=Digital -InputCue4290=fb275 -InputSigType4290=Digital -InputCue4291=fb276 -InputSigType4291=Digital -InputCue4292=fb277 -InputSigType4292=Digital -InputCue4293=fb278 -InputSigType4293=Digital -InputCue4294=fb279 -InputSigType4294=Digital -InputCue4295=fb280 -InputSigType4295=Digital -InputCue4296=fb281 -InputSigType4296=Digital -InputCue4297=fb282 -InputSigType4297=Digital -InputCue4298=fb283 -InputSigType4298=Digital -InputCue4299=fb284 -InputSigType4299=Digital -InputCue4300=fb285 -InputSigType4300=Digital -InputCue4301=fb286 -InputSigType4301=Digital -InputCue4302=fb287 -InputSigType4302=Digital -InputCue4303=fb288 -InputSigType4303=Digital -InputCue4304=fb289 -InputSigType4304=Digital -InputCue4305=fb290 -InputSigType4305=Digital -InputCue4306=fb291 -InputSigType4306=Digital -InputCue4307=fb292 -InputSigType4307=Digital -InputCue4308=fb293 -InputSigType4308=Digital -InputCue4309=fb294 -InputSigType4309=Digital -InputCue4310=fb295 -InputSigType4310=Digital -InputCue4311=fb296 -InputSigType4311=Digital -InputCue4312=fb297 -InputSigType4312=Digital -InputCue4313=fb298 -InputSigType4313=Digital -InputCue4314=fb299 -InputSigType4314=Digital -InputCue4315=fb300 -InputSigType4315=Digital -InputCue4316=[~EndGroup~]fb -InputSigType4316=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED3~] -OutputSigType24=Digital -OutputCue25=[~UNUSED3~] -OutputSigType25=Digital -OutputCue26=[~UNUSED3~] -OutputSigType26=Digital -OutputCue27=[~UNUSED3~] -OutputSigType27=Digital -OutputCue28=[~UNUSED3~] -OutputSigType28=Digital -OutputCue29=[~UNUSED3~] -OutputSigType29=Digital -OutputCue30=[~UNUSED3~] -OutputSigType30=Digital -OutputCue31=[~UNUSED3~] -OutputSigType31=Digital -OutputCue32=[~UNUSED3~] -OutputSigType32=Digital -OutputCue33=[~UNUSED3~] -OutputSigType33=Digital -OutputCue34=[~UNUSED3~] -OutputSigType34=Digital -OutputCue35=[~UNUSED3~] -OutputSigType35=Digital -OutputCue36=[~UNUSED3~] -OutputSigType36=Digital -OutputCue37=[~UNUSED3~] -OutputSigType37=Digital -OutputCue38=[~UNUSED3~] -OutputSigType38=Digital -OutputCue39=[~UNUSED3~] -OutputSigType39=Digital -OutputCue40=[~UNUSED3~] -OutputSigType40=Digital -OutputCue41=[~UNUSED3~] -OutputSigType41=Digital -OutputCue42=[~UNUSED3~] -OutputSigType42=Digital -OutputCue43=[~UNUSED3~] -OutputSigType43=Digital -OutputCue44=[~UNUSED3~] -OutputSigType44=Digital -OutputCue45=[~UNUSED3~] -OutputSigType45=Digital -OutputCue46=[~UNUSED3~] -OutputSigType46=Digital -OutputCue47=[~UNUSED3~] -OutputSigType47=Digital -OutputCue48=[~UNUSED3~] -OutputSigType48=Digital -OutputCue49=[~UNUSED3~] -OutputSigType49=Digital -OutputCue50=[~UNUSED3~] -OutputSigType50=Digital -OutputCue51=[~UNUSED3~] -OutputSigType51=Digital -OutputCue52=[~UNUSED3~] -OutputSigType52=Digital -OutputCue53=[~UNUSED3~] -OutputSigType53=Digital -OutputCue54=[~UNUSED3~] -OutputSigType54=Digital -OutputCue55=[~UNUSED3~] -OutputSigType55=Digital -OutputCue56=[~UNUSED3~] -OutputSigType56=Digital -OutputCue57=[~UNUSED3~] -OutputSigType57=Digital -OutputCue58=[~UNUSED3~] -OutputSigType58=Digital -OutputCue59=[~UNUSED3~] -OutputSigType59=Digital -OutputCue60=[~UNUSED3~] -OutputSigType60=Digital -OutputCue61=[~UNUSED3~] -OutputSigType61=Digital -OutputCue62=[~UNUSED3~] -OutputSigType62=Digital -OutputCue63=[~UNUSED3~] -OutputSigType63=Digital -OutputCue64=[~UNUSED3~] -OutputSigType64=Digital -OutputCue65=[~UNUSED3~] -OutputSigType65=Digital -OutputCue66=[~UNUSED3~] -OutputSigType66=Digital -OutputCue67=[~UNUSED3~] -OutputSigType67=Digital -OutputCue68=[~UNUSED3~] -OutputSigType68=Digital -OutputCue69=[~UNUSED3~] -OutputSigType69=Digital -OutputCue70=[~UNUSED3~] -OutputSigType70=Digital -OutputCue71=[~UNUSED3~] -OutputSigType71=Digital -OutputCue72=[~UNUSED3~] -OutputSigType72=Digital -OutputCue73=[~UNUSED3~] -OutputSigType73=Digital -OutputCue74=[~UNUSED3~] -OutputSigType74=Digital -OutputCue75=[~UNUSED3~] -OutputSigType75=Digital -OutputCue76=[~UNUSED3~] -OutputSigType76=Digital -OutputCue77=[~UNUSED3~] -OutputSigType77=Digital -OutputCue78=[~UNUSED3~] -OutputSigType78=Digital -OutputCue79=[~UNUSED3~] -OutputSigType79=Digital -OutputCue80=[~UNUSED3~] -OutputSigType80=Digital -OutputCue81=[~UNUSED3~] -OutputSigType81=Digital -OutputCue82=[~UNUSED3~] -OutputSigType82=Digital -OutputCue83=[~UNUSED3~] -OutputSigType83=Digital -OutputCue84=[~UNUSED3~] -OutputSigType84=Digital -OutputCue85=[~UNUSED3~] -OutputSigType85=Digital -OutputCue86=[~UNUSED3~] -OutputSigType86=Digital -OutputCue87=[~UNUSED3~] -OutputSigType87=Digital -OutputCue88=[~UNUSED3~] -OutputSigType88=Digital -OutputCue89=[~UNUSED3~] -OutputSigType89=Digital -OutputCue90=[~UNUSED3~] -OutputSigType90=Digital -OutputCue91=[~UNUSED3~] -OutputSigType91=Digital -OutputCue92=[~UNUSED3~] -OutputSigType92=Digital -OutputCue93=[~UNUSED3~] -OutputSigType93=Digital -OutputCue94=[~UNUSED3~] -OutputSigType94=Digital -OutputCue95=[~UNUSED3~] -OutputSigType95=Digital -OutputCue96=[~UNUSED3~] -OutputSigType96=Digital -OutputCue97=[~UNUSED3~] -OutputSigType97=Digital -OutputCue98=[~UNUSED3~] -OutputSigType98=Digital -OutputCue99=[~UNUSED3~] -OutputSigType99=Digital -OutputCue100=[~UNUSED3~] -OutputSigType100=Digital -OutputCue101=[~UNUSED3~] -OutputSigType101=Digital -OutputCue102=[~UNUSED3~] -OutputSigType102=Digital -OutputCue103=[~UNUSED3~] -OutputSigType103=Digital -OutputCue104=[~UNUSED3~] -OutputSigType104=Digital -OutputCue105=[~UNUSED3~] -OutputSigType105=Digital -OutputCue106=[~UNUSED3~] -OutputSigType106=Digital -OutputCue107=[~UNUSED3~] -OutputSigType107=Digital -OutputCue108=[~UNUSED3~] -OutputSigType108=Digital -OutputCue109=[~UNUSED3~] -OutputSigType109=Digital -OutputCue110=[~UNUSED3~] -OutputSigType110=Digital -OutputCue111=[~UNUSED3~] -OutputSigType111=Digital -OutputCue112=[~UNUSED2~] -OutputSigType112=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED3~] -OutputSigType2034=Digital -OutputCue2035=[~UNUSED3~] -OutputSigType2035=Digital -OutputCue2036=[~UNUSED3~] -OutputSigType2036=Digital -OutputCue2037=[~UNUSED3~] -OutputSigType2037=Digital -OutputCue2038=[~UNUSED3~] -OutputSigType2038=Digital -OutputCue2039=[~UNUSED3~] -OutputSigType2039=Digital -OutputCue2040=[~UNUSED3~] -OutputSigType2040=Digital -OutputCue2041=[~UNUSED3~] -OutputSigType2041=Digital -OutputCue2042=[~UNUSED3~] -OutputSigType2042=Digital -OutputCue2043=[~UNUSED3~] -OutputSigType2043=Digital -OutputCue2044=[~UNUSED3~] -OutputSigType2044=Digital -OutputCue2045=[~UNUSED3~] -OutputSigType2045=Digital -OutputCue2046=[~UNUSED3~] -OutputSigType2046=Digital -OutputCue2047=[~UNUSED3~] -OutputSigType2047=Digital -OutputCue2048=[~UNUSED3~] -OutputSigType2048=Digital -OutputCue2049=[~UNUSED3~] -OutputSigType2049=Digital -OutputCue2050=[~UNUSED3~] -OutputSigType2050=Digital -OutputCue2051=[~UNUSED3~] -OutputSigType2051=Digital -OutputCue2052=[~UNUSED3~] -OutputSigType2052=Digital -OutputCue2053=[~UNUSED3~] -OutputSigType2053=Digital -OutputCue2054=[~UNUSED3~] -OutputSigType2054=Digital -OutputCue2055=[~UNUSED3~] -OutputSigType2055=Digital -OutputCue2056=[~UNUSED3~] -OutputSigType2056=Digital -OutputCue2057=[~UNUSED3~] -OutputSigType2057=Digital -OutputCue2058=[~UNUSED3~] -OutputSigType2058=Digital -OutputCue2059=[~UNUSED3~] -OutputSigType2059=Digital -OutputCue2060=[~UNUSED3~] -OutputSigType2060=Digital -OutputCue2061=[~UNUSED3~] -OutputSigType2061=Digital -OutputCue2062=[~UNUSED3~] -OutputSigType2062=Digital -OutputCue2063=[~UNUSED3~] -OutputSigType2063=Digital -OutputCue2064=[~UNUSED3~] -OutputSigType2064=Digital -OutputCue2065=[~UNUSED3~] -OutputSigType2065=Digital -OutputCue2066=[~UNUSED3~] -OutputSigType2066=Digital -OutputCue2067=[~UNUSED3~] -OutputSigType2067=Digital -OutputCue2068=[~UNUSED3~] -OutputSigType2068=Digital -OutputCue2069=[~UNUSED3~] -OutputSigType2069=Digital -OutputCue2070=[~UNUSED3~] -OutputSigType2070=Digital -OutputCue2071=[~UNUSED3~] -OutputSigType2071=Digital -OutputCue2072=[~UNUSED3~] -OutputSigType2072=Digital -OutputCue2073=[~UNUSED3~] -OutputSigType2073=Digital -OutputCue2074=[~UNUSED3~] -OutputSigType2074=Digital -OutputCue2075=[~UNUSED3~] -OutputSigType2075=Digital -OutputCue2076=[~UNUSED3~] -OutputSigType2076=Digital -OutputCue2077=[~UNUSED3~] -OutputSigType2077=Digital -OutputCue2078=[~UNUSED3~] -OutputSigType2078=Digital -OutputCue2079=[~UNUSED3~] -OutputSigType2079=Digital -OutputCue2080=[~UNUSED3~] -OutputSigType2080=Digital -OutputCue2081=[~UNUSED3~] -OutputSigType2081=Digital -OutputCue2082=[~UNUSED3~] -OutputSigType2082=Digital -OutputCue2083=[~UNUSED3~] -OutputSigType2083=Digital -OutputCue2084=[~UNUSED3~] -OutputSigType2084=Digital -OutputCue2085=[~UNUSED3~] -OutputSigType2085=Digital -OutputCue2086=[~UNUSED3~] -OutputSigType2086=Digital -OutputCue2087=[~UNUSED3~] -OutputSigType2087=Digital -OutputCue2088=[~UNUSED3~] -OutputSigType2088=Digital -OutputCue2089=[~UNUSED3~] -OutputSigType2089=Digital -OutputCue2090=[~UNUSED3~] -OutputSigType2090=Digital -OutputCue2091=[~UNUSED3~] -OutputSigType2091=Digital -OutputCue2092=[~UNUSED3~] -OutputSigType2092=Digital -OutputCue2093=[~UNUSED3~] -OutputSigType2093=Digital -OutputCue2094=[~UNUSED3~] -OutputSigType2094=Digital -OutputCue2095=[~UNUSED3~] -OutputSigType2095=Digital -OutputCue2096=[~UNUSED3~] -OutputSigType2096=Digital -OutputCue2097=[~UNUSED3~] -OutputSigType2097=Digital -OutputCue2098=[~UNUSED3~] -OutputSigType2098=Digital -OutputCue2099=[~UNUSED3~] -OutputSigType2099=Digital -OutputCue2100=[~UNUSED3~] -OutputSigType2100=Digital -OutputCue2101=[~UNUSED3~] -OutputSigType2101=Digital -OutputCue2102=[~UNUSED3~] -OutputSigType2102=Digital -OutputCue2103=[~UNUSED3~] -OutputSigType2103=Digital -OutputCue2104=[~UNUSED3~] -OutputSigType2104=Digital -OutputCue2105=[~UNUSED3~] -OutputSigType2105=Digital -OutputCue2106=[~UNUSED3~] -OutputSigType2106=Digital -OutputCue2107=[~UNUSED3~] -OutputSigType2107=Digital -OutputCue2108=[~UNUSED3~] -OutputSigType2108=Digital -OutputCue2109=[~UNUSED3~] -OutputSigType2109=Digital -OutputCue2110=[~UNUSED3~] -OutputSigType2110=Digital -OutputCue2111=[~UNUSED3~] -OutputSigType2111=Digital -OutputCue2112=[~UNUSED3~] -OutputSigType2112=Digital -OutputCue2113=[~UNUSED3~] -OutputSigType2113=Digital -OutputCue2114=[~UNUSED2~] -OutputSigType2114=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=press61 -OutputSigType4076=Digital -OutputCue4077=press62 -OutputSigType4077=Digital -OutputCue4078=press63 -OutputSigType4078=Digital -OutputCue4079=press64 -OutputSigType4079=Digital -OutputCue4080=press65 -OutputSigType4080=Digital -OutputCue4081=press66 -OutputSigType4081=Digital -OutputCue4082=press67 -OutputSigType4082=Digital -OutputCue4083=press68 -OutputSigType4083=Digital -OutputCue4084=press69 -OutputSigType4084=Digital -OutputCue4085=press70 -OutputSigType4085=Digital -OutputCue4086=press71 -OutputSigType4086=Digital -OutputCue4087=press72 -OutputSigType4087=Digital -OutputCue4088=press73 -OutputSigType4088=Digital -OutputCue4089=press74 -OutputSigType4089=Digital -OutputCue4090=press75 -OutputSigType4090=Digital -OutputCue4091=press76 -OutputSigType4091=Digital -OutputCue4092=press77 -OutputSigType4092=Digital -OutputCue4093=press78 -OutputSigType4093=Digital -OutputCue4094=press79 -OutputSigType4094=Digital -OutputCue4095=press80 -OutputSigType4095=Digital -OutputCue4096=press81 -OutputSigType4096=Digital -OutputCue4097=press82 -OutputSigType4097=Digital -OutputCue4098=press83 -OutputSigType4098=Digital -OutputCue4099=press84 -OutputSigType4099=Digital -OutputCue4100=press85 -OutputSigType4100=Digital -OutputCue4101=press86 -OutputSigType4101=Digital -OutputCue4102=press87 -OutputSigType4102=Digital -OutputCue4103=press88 -OutputSigType4103=Digital -OutputCue4104=press89 -OutputSigType4104=Digital -OutputCue4105=press90 -OutputSigType4105=Digital -OutputCue4106=press91 -OutputSigType4106=Digital -OutputCue4107=press92 -OutputSigType4107=Digital -OutputCue4108=press93 -OutputSigType4108=Digital -OutputCue4109=press94 -OutputSigType4109=Digital -OutputCue4110=press95 -OutputSigType4110=Digital -OutputCue4111=press96 -OutputSigType4111=Digital -OutputCue4112=press97 -OutputSigType4112=Digital -OutputCue4113=press98 -OutputSigType4113=Digital -OutputCue4114=press99 -OutputSigType4114=Digital -OutputCue4115=press100 -OutputSigType4115=Digital -OutputCue4116=press101 -OutputSigType4116=Digital -OutputCue4117=press102 -OutputSigType4117=Digital -OutputCue4118=press103 -OutputSigType4118=Digital -OutputCue4119=press104 -OutputSigType4119=Digital -OutputCue4120=press105 -OutputSigType4120=Digital -OutputCue4121=press106 -OutputSigType4121=Digital -OutputCue4122=press107 -OutputSigType4122=Digital -OutputCue4123=press108 -OutputSigType4123=Digital -OutputCue4124=press109 -OutputSigType4124=Digital -OutputCue4125=press110 -OutputSigType4125=Digital -OutputCue4126=press111 -OutputSigType4126=Digital -OutputCue4127=press112 -OutputSigType4127=Digital -OutputCue4128=press113 -OutputSigType4128=Digital -OutputCue4129=press114 -OutputSigType4129=Digital -OutputCue4130=press115 -OutputSigType4130=Digital -OutputCue4131=press116 -OutputSigType4131=Digital -OutputCue4132=press117 -OutputSigType4132=Digital -OutputCue4133=press118 -OutputSigType4133=Digital -OutputCue4134=press119 -OutputSigType4134=Digital -OutputCue4135=press120 -OutputSigType4135=Digital -OutputCue4136=press121 -OutputSigType4136=Digital -OutputCue4137=press122 -OutputSigType4137=Digital -OutputCue4138=press123 -OutputSigType4138=Digital -OutputCue4139=press124 -OutputSigType4139=Digital -OutputCue4140=press125 -OutputSigType4140=Digital -OutputCue4141=press126 -OutputSigType4141=Digital -OutputCue4142=press127 -OutputSigType4142=Digital -OutputCue4143=press128 -OutputSigType4143=Digital -OutputCue4144=press129 -OutputSigType4144=Digital -OutputCue4145=press130 -OutputSigType4145=Digital -OutputCue4146=press131 -OutputSigType4146=Digital -OutputCue4147=press132 -OutputSigType4147=Digital -OutputCue4148=press133 -OutputSigType4148=Digital -OutputCue4149=press134 -OutputSigType4149=Digital -OutputCue4150=press135 -OutputSigType4150=Digital -OutputCue4151=press136 -OutputSigType4151=Digital -OutputCue4152=press137 -OutputSigType4152=Digital -OutputCue4153=press138 -OutputSigType4153=Digital -OutputCue4154=press139 -OutputSigType4154=Digital -OutputCue4155=press140 -OutputSigType4155=Digital -OutputCue4156=press141 -OutputSigType4156=Digital -OutputCue4157=press142 -OutputSigType4157=Digital -OutputCue4158=press143 -OutputSigType4158=Digital -OutputCue4159=press144 -OutputSigType4159=Digital -OutputCue4160=press145 -OutputSigType4160=Digital -OutputCue4161=press146 -OutputSigType4161=Digital -OutputCue4162=press147 -OutputSigType4162=Digital -OutputCue4163=press148 -OutputSigType4163=Digital -OutputCue4164=press149 -OutputSigType4164=Digital -OutputCue4165=press150 -OutputSigType4165=Digital -OutputCue4166=press151 -OutputSigType4166=Digital -OutputCue4167=press152 -OutputSigType4167=Digital -OutputCue4168=press153 -OutputSigType4168=Digital -OutputCue4169=press154 -OutputSigType4169=Digital -OutputCue4170=press155 -OutputSigType4170=Digital -OutputCue4171=press156 -OutputSigType4171=Digital -OutputCue4172=press157 -OutputSigType4172=Digital -OutputCue4173=press158 -OutputSigType4173=Digital -OutputCue4174=press159 -OutputSigType4174=Digital -OutputCue4175=press160 -OutputSigType4175=Digital -OutputCue4176=press161 -OutputSigType4176=Digital -OutputCue4177=press162 -OutputSigType4177=Digital -OutputCue4178=press163 -OutputSigType4178=Digital -OutputCue4179=press164 -OutputSigType4179=Digital -OutputCue4180=press165 -OutputSigType4180=Digital -OutputCue4181=press166 -OutputSigType4181=Digital -OutputCue4182=press167 -OutputSigType4182=Digital -OutputCue4183=press168 -OutputSigType4183=Digital -OutputCue4184=press169 -OutputSigType4184=Digital -OutputCue4185=press170 -OutputSigType4185=Digital -OutputCue4186=press171 -OutputSigType4186=Digital -OutputCue4187=press172 -OutputSigType4187=Digital -OutputCue4188=press173 -OutputSigType4188=Digital -OutputCue4189=press174 -OutputSigType4189=Digital -OutputCue4190=press175 -OutputSigType4190=Digital -OutputCue4191=press176 -OutputSigType4191=Digital -OutputCue4192=press177 -OutputSigType4192=Digital -OutputCue4193=press178 -OutputSigType4193=Digital -OutputCue4194=press179 -OutputSigType4194=Digital -OutputCue4195=press180 -OutputSigType4195=Digital -OutputCue4196=press181 -OutputSigType4196=Digital -OutputCue4197=press182 -OutputSigType4197=Digital -OutputCue4198=press183 -OutputSigType4198=Digital -OutputCue4199=press184 -OutputSigType4199=Digital -OutputCue4200=press185 -OutputSigType4200=Digital -OutputCue4201=press186 -OutputSigType4201=Digital -OutputCue4202=press187 -OutputSigType4202=Digital -OutputCue4203=press188 -OutputSigType4203=Digital -OutputCue4204=press189 -OutputSigType4204=Digital -OutputCue4205=press190 -OutputSigType4205=Digital -OutputCue4206=press191 -OutputSigType4206=Digital -OutputCue4207=press192 -OutputSigType4207=Digital -OutputCue4208=press193 -OutputSigType4208=Digital -OutputCue4209=press194 -OutputSigType4209=Digital -OutputCue4210=press195 -OutputSigType4210=Digital -OutputCue4211=press196 -OutputSigType4211=Digital -OutputCue4212=press197 -OutputSigType4212=Digital -OutputCue4213=press198 -OutputSigType4213=Digital -OutputCue4214=press199 -OutputSigType4214=Digital -OutputCue4215=press200 -OutputSigType4215=Digital -OutputCue4216=press201 -OutputSigType4216=Digital -OutputCue4217=press202 -OutputSigType4217=Digital -OutputCue4218=press203 -OutputSigType4218=Digital -OutputCue4219=press204 -OutputSigType4219=Digital -OutputCue4220=press205 -OutputSigType4220=Digital -OutputCue4221=press206 -OutputSigType4221=Digital -OutputCue4222=press207 -OutputSigType4222=Digital -OutputCue4223=press208 -OutputSigType4223=Digital -OutputCue4224=press209 -OutputSigType4224=Digital -OutputCue4225=press210 -OutputSigType4225=Digital -OutputCue4226=press211 -OutputSigType4226=Digital -OutputCue4227=press212 -OutputSigType4227=Digital -OutputCue4228=press213 -OutputSigType4228=Digital -OutputCue4229=press214 -OutputSigType4229=Digital -OutputCue4230=press215 -OutputSigType4230=Digital -OutputCue4231=press216 -OutputSigType4231=Digital -OutputCue4232=press217 -OutputSigType4232=Digital -OutputCue4233=press218 -OutputSigType4233=Digital -OutputCue4234=press219 -OutputSigType4234=Digital -OutputCue4235=press220 -OutputSigType4235=Digital -OutputCue4236=press221 -OutputSigType4236=Digital -OutputCue4237=press222 -OutputSigType4237=Digital -OutputCue4238=press223 -OutputSigType4238=Digital -OutputCue4239=press224 -OutputSigType4239=Digital -OutputCue4240=press225 -OutputSigType4240=Digital -OutputCue4241=press226 -OutputSigType4241=Digital -OutputCue4242=press227 -OutputSigType4242=Digital -OutputCue4243=press228 -OutputSigType4243=Digital -OutputCue4244=press229 -OutputSigType4244=Digital -OutputCue4245=press230 -OutputSigType4245=Digital -OutputCue4246=press231 -OutputSigType4246=Digital -OutputCue4247=press232 -OutputSigType4247=Digital -OutputCue4248=press233 -OutputSigType4248=Digital -OutputCue4249=press234 -OutputSigType4249=Digital -OutputCue4250=press235 -OutputSigType4250=Digital -OutputCue4251=press236 -OutputSigType4251=Digital -OutputCue4252=press237 -OutputSigType4252=Digital -OutputCue4253=press238 -OutputSigType4253=Digital -OutputCue4254=press239 -OutputSigType4254=Digital -OutputCue4255=press240 -OutputSigType4255=Digital -OutputCue4256=press241 -OutputSigType4256=Digital -OutputCue4257=press242 -OutputSigType4257=Digital -OutputCue4258=press243 -OutputSigType4258=Digital -OutputCue4259=press244 -OutputSigType4259=Digital -OutputCue4260=press245 -OutputSigType4260=Digital -OutputCue4261=press246 -OutputSigType4261=Digital -OutputCue4262=press247 -OutputSigType4262=Digital -OutputCue4263=press248 -OutputSigType4263=Digital -OutputCue4264=press249 -OutputSigType4264=Digital -OutputCue4265=press250 -OutputSigType4265=Digital -OutputCue4266=press251 -OutputSigType4266=Digital -OutputCue4267=press252 -OutputSigType4267=Digital -OutputCue4268=press253 -OutputSigType4268=Digital -OutputCue4269=press254 -OutputSigType4269=Digital -OutputCue4270=press255 -OutputSigType4270=Digital -OutputCue4271=press256 -OutputSigType4271=Digital -OutputCue4272=press257 -OutputSigType4272=Digital -OutputCue4273=press258 -OutputSigType4273=Digital -OutputCue4274=press259 -OutputSigType4274=Digital -OutputCue4275=press260 -OutputSigType4275=Digital -OutputCue4276=press261 -OutputSigType4276=Digital -OutputCue4277=press262 -OutputSigType4277=Digital -OutputCue4278=press263 -OutputSigType4278=Digital -OutputCue4279=press264 -OutputSigType4279=Digital -OutputCue4280=press265 -OutputSigType4280=Digital -OutputCue4281=press266 -OutputSigType4281=Digital -OutputCue4282=press267 -OutputSigType4282=Digital -OutputCue4283=press268 -OutputSigType4283=Digital -OutputCue4284=press269 -OutputSigType4284=Digital -OutputCue4285=press270 -OutputSigType4285=Digital -OutputCue4286=press271 -OutputSigType4286=Digital -OutputCue4287=press272 -OutputSigType4287=Digital -OutputCue4288=press273 -OutputSigType4288=Digital -OutputCue4289=press274 -OutputSigType4289=Digital -OutputCue4290=press275 -OutputSigType4290=Digital -OutputCue4291=press276 -OutputSigType4291=Digital -OutputCue4292=press277 -OutputSigType4292=Digital -OutputCue4293=press278 -OutputSigType4293=Digital -OutputCue4294=press279 -OutputSigType4294=Digital -OutputCue4295=press280 -OutputSigType4295=Digital -OutputCue4296=press281 -OutputSigType4296=Digital -OutputCue4297=press282 -OutputSigType4297=Digital -OutputCue4298=press283 -OutputSigType4298=Digital -OutputCue4299=press284 -OutputSigType4299=Digital -OutputCue4300=press285 -OutputSigType4300=Digital -OutputCue4301=press286 -OutputSigType4301=Digital -OutputCue4302=press287 -OutputSigType4302=Digital -OutputCue4303=press288 -OutputSigType4303=Digital -OutputCue4304=press289 -OutputSigType4304=Digital -OutputCue4305=press290 -OutputSigType4305=Digital -OutputCue4306=press291 -OutputSigType4306=Digital -OutputCue4307=press292 -OutputSigType4307=Digital -OutputCue4308=press293 -OutputSigType4308=Digital -OutputCue4309=press294 -OutputSigType4309=Digital -OutputCue4310=press295 -OutputSigType4310=Digital -OutputCue4311=press296 -OutputSigType4311=Digital -OutputCue4312=press297 -OutputSigType4312=Digital -OutputCue4313=press298 -OutputSigType4313=Digital -OutputCue4314=press299 -OutputSigType4314=Digital -OutputCue4315=press300 -OutputSigType4315=Digital -OutputCue4316=[~EndGroup~]Press -OutputSigType4316=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=text-o61 -InputList3SigType72=Serial -InputList3Cue73=text-o62 -InputList3SigType73=Serial -InputList3Cue74=text-o63 -InputList3SigType74=Serial -InputList3Cue75=text-o64 -InputList3SigType75=Serial -InputList3Cue76=text-o65 -InputList3SigType76=Serial -InputList3Cue77=text-o66 -InputList3SigType77=Serial -InputList3Cue78=text-o67 -InputList3SigType78=Serial -InputList3Cue79=text-o68 -InputList3SigType79=Serial -InputList3Cue80=text-o69 -InputList3SigType80=Serial -InputList3Cue81=text-o70 -InputList3SigType81=Serial -InputList3Cue82=text-o71 -InputList3SigType82=Serial -InputList3Cue83=text-o72 -InputList3SigType83=Serial -InputList3Cue84=text-o73 -InputList3SigType84=Serial -InputList3Cue85=text-o74 -InputList3SigType85=Serial -InputList3Cue86=text-o75 -InputList3SigType86=Serial -InputList3Cue87=text-o76 -InputList3SigType87=Serial -InputList3Cue88=text-o77 -InputList3SigType88=Serial -InputList3Cue89=text-o78 -InputList3SigType89=Serial -InputList3Cue90=text-o79 -InputList3SigType90=Serial -InputList3Cue91=text-o80 -InputList3SigType91=Serial -InputList3Cue92=text-o81 -InputList3SigType92=Serial -InputList3Cue93=text-o82 -InputList3SigType93=Serial -InputList3Cue94=text-o83 -InputList3SigType94=Serial -InputList3Cue95=text-o84 -InputList3SigType95=Serial -InputList3Cue96=text-o85 -InputList3SigType96=Serial -InputList3Cue97=text-o86 -InputList3SigType97=Serial -InputList3Cue98=text-o87 -InputList3SigType98=Serial -InputList3Cue99=text-o88 -InputList3SigType99=Serial -InputList3Cue100=text-o89 -InputList3SigType100=Serial -InputList3Cue101=text-o90 -InputList3SigType101=Serial -InputList3Cue102=text-o91 -InputList3SigType102=Serial -InputList3Cue103=text-o92 -InputList3SigType103=Serial -InputList3Cue104=text-o93 -InputList3SigType104=Serial -InputList3Cue105=text-o94 -InputList3SigType105=Serial -InputList3Cue106=text-o95 -InputList3SigType106=Serial -InputList3Cue107=text-o96 -InputList3SigType107=Serial -InputList3Cue108=text-o97 -InputList3SigType108=Serial -InputList3Cue109=text-o98 -InputList3SigType109=Serial -InputList3Cue110=text-o99 -InputList3SigType110=Serial -InputList3Cue111=text-o100 -InputList3SigType111=Serial -InputList3Cue112=text-o101 -InputList3SigType112=Serial -InputList3Cue113=text-o102 -InputList3SigType113=Serial -InputList3Cue114=text-o103 -InputList3SigType114=Serial -InputList3Cue115=text-o104 -InputList3SigType115=Serial -InputList3Cue116=text-o105 -InputList3SigType116=Serial -InputList3Cue117=text-o106 -InputList3SigType117=Serial -InputList3Cue118=text-o107 -InputList3SigType118=Serial -InputList3Cue119=text-o108 -InputList3SigType119=Serial -InputList3Cue120=text-o109 -InputList3SigType120=Serial -InputList3Cue121=text-o110 -InputList3SigType121=Serial -InputList3Cue122=text-o111 -InputList3SigType122=Serial -InputList3Cue123=text-o112 -InputList3SigType123=Serial -InputList3Cue124=text-o113 -InputList3SigType124=Serial -InputList3Cue125=text-o114 -InputList3SigType125=Serial -InputList3Cue126=text-o115 -InputList3SigType126=Serial -InputList3Cue127=text-o116 -InputList3SigType127=Serial -InputList3Cue128=text-o117 -InputList3SigType128=Serial -InputList3Cue129=text-o118 -InputList3SigType129=Serial -InputList3Cue130=text-o119 -InputList3SigType130=Serial -InputList3Cue131=text-o120 -InputList3SigType131=Serial -InputList3Cue132=text-o121 -InputList3SigType132=Serial -InputList3Cue133=text-o122 -InputList3SigType133=Serial -InputList3Cue134=text-o123 -InputList3SigType134=Serial -InputList3Cue135=text-o124 -InputList3SigType135=Serial -InputList3Cue136=text-o125 -InputList3SigType136=Serial -InputList3Cue137=text-o126 -InputList3SigType137=Serial -InputList3Cue138=text-o127 -InputList3SigType138=Serial -InputList3Cue139=text-o128 -InputList3SigType139=Serial -InputList3Cue140=text-o129 -InputList3SigType140=Serial -InputList3Cue141=text-o130 -InputList3SigType141=Serial -InputList3Cue142=text-o131 -InputList3SigType142=Serial -InputList3Cue143=text-o132 -InputList3SigType143=Serial -InputList3Cue144=text-o133 -InputList3SigType144=Serial -InputList3Cue145=text-o134 -InputList3SigType145=Serial -InputList3Cue146=text-o135 -InputList3SigType146=Serial -InputList3Cue147=text-o136 -InputList3SigType147=Serial -InputList3Cue148=text-o137 -InputList3SigType148=Serial -InputList3Cue149=text-o138 -InputList3SigType149=Serial -InputList3Cue150=text-o139 -InputList3SigType150=Serial -InputList3Cue151=text-o140 -InputList3SigType151=Serial -InputList3Cue152=text-o141 -InputList3SigType152=Serial -InputList3Cue153=text-o142 -InputList3SigType153=Serial -InputList3Cue154=text-o143 -InputList3SigType154=Serial -InputList3Cue155=text-o144 -InputList3SigType155=Serial -InputList3Cue156=text-o145 -InputList3SigType156=Serial -InputList3Cue157=text-o146 -InputList3SigType157=Serial -InputList3Cue158=text-o147 -InputList3SigType158=Serial -InputList3Cue159=text-o148 -InputList3SigType159=Serial -InputList3Cue160=text-o149 -InputList3SigType160=Serial -InputList3Cue161=text-o150 -InputList3SigType161=Serial -InputList3Cue162=text-o151 -InputList3SigType162=Serial -InputList3Cue163=text-o152 -InputList3SigType163=Serial -InputList3Cue164=text-o153 -InputList3SigType164=Serial -InputList3Cue165=text-o154 -InputList3SigType165=Serial -InputList3Cue166=text-o155 -InputList3SigType166=Serial -InputList3Cue167=text-o156 -InputList3SigType167=Serial -InputList3Cue168=text-o157 -InputList3SigType168=Serial -InputList3Cue169=text-o158 -InputList3SigType169=Serial -InputList3Cue170=text-o159 -InputList3SigType170=Serial -InputList3Cue171=text-o160 -InputList3SigType171=Serial -InputList3Cue172=text-o161 -InputList3SigType172=Serial -InputList3Cue173=text-o162 -InputList3SigType173=Serial -InputList3Cue174=text-o163 -InputList3SigType174=Serial -InputList3Cue175=text-o164 -InputList3SigType175=Serial -InputList3Cue176=text-o165 -InputList3SigType176=Serial -InputList3Cue177=text-o166 -InputList3SigType177=Serial -InputList3Cue178=text-o167 -InputList3SigType178=Serial -InputList3Cue179=text-o168 -InputList3SigType179=Serial -InputList3Cue180=text-o169 -InputList3SigType180=Serial -InputList3Cue181=text-o170 -InputList3SigType181=Serial -InputList3Cue182=text-o171 -InputList3SigType182=Serial -InputList3Cue183=text-o172 -InputList3SigType183=Serial -InputList3Cue184=text-o173 -InputList3SigType184=Serial -InputList3Cue185=text-o174 -InputList3SigType185=Serial -InputList3Cue186=text-o175 -InputList3SigType186=Serial -InputList3Cue187=text-o176 -InputList3SigType187=Serial -InputList3Cue188=text-o177 -InputList3SigType188=Serial -InputList3Cue189=text-o178 -InputList3SigType189=Serial -InputList3Cue190=text-o179 -InputList3SigType190=Serial -InputList3Cue191=text-o180 -InputList3SigType191=Serial -InputList3Cue192=text-o181 -InputList3SigType192=Serial -InputList3Cue193=text-o182 -InputList3SigType193=Serial -InputList3Cue194=text-o183 -InputList3SigType194=Serial -InputList3Cue195=text-o184 -InputList3SigType195=Serial -InputList3Cue196=text-o185 -InputList3SigType196=Serial -InputList3Cue197=text-o186 -InputList3SigType197=Serial -InputList3Cue198=text-o187 -InputList3SigType198=Serial -InputList3Cue199=text-o188 -InputList3SigType199=Serial -InputList3Cue200=text-o189 -InputList3SigType200=Serial -InputList3Cue201=text-o190 -InputList3SigType201=Serial -InputList3Cue202=text-o191 -InputList3SigType202=Serial -InputList3Cue203=text-o192 -InputList3SigType203=Serial -InputList3Cue204=text-o193 -InputList3SigType204=Serial -InputList3Cue205=text-o194 -InputList3SigType205=Serial -InputList3Cue206=text-o195 -InputList3SigType206=Serial -InputList3Cue207=text-o196 -InputList3SigType207=Serial -InputList3Cue208=text-o197 -InputList3SigType208=Serial -InputList3Cue209=text-o198 -InputList3SigType209=Serial -InputList3Cue210=text-o199 -InputList3SigType210=Serial -InputList3Cue211=text-o200 -InputList3SigType211=Serial -InputList3Cue212=text-o201 -InputList3SigType212=Serial -InputList3Cue213=text-o202 -InputList3SigType213=Serial -InputList3Cue214=text-o203 -InputList3SigType214=Serial -InputList3Cue215=text-o204 -InputList3SigType215=Serial -InputList3Cue216=text-o205 -InputList3SigType216=Serial -InputList3Cue217=text-o206 -InputList3SigType217=Serial -InputList3Cue218=text-o207 -InputList3SigType218=Serial -InputList3Cue219=text-o208 -InputList3SigType219=Serial -InputList3Cue220=text-o209 -InputList3SigType220=Serial -InputList3Cue221=text-o210 -InputList3SigType221=Serial -InputList3Cue222=text-o211 -InputList3SigType222=Serial -InputList3Cue223=text-o212 -InputList3SigType223=Serial -InputList3Cue224=text-o213 -InputList3SigType224=Serial -InputList3Cue225=text-o214 -InputList3SigType225=Serial -InputList3Cue226=text-o215 -InputList3SigType226=Serial -InputList3Cue227=text-o216 -InputList3SigType227=Serial -InputList3Cue228=text-o217 -InputList3SigType228=Serial -InputList3Cue229=text-o218 -InputList3SigType229=Serial -InputList3Cue230=text-o219 -InputList3SigType230=Serial -InputList3Cue231=text-o220 -InputList3SigType231=Serial -InputList3Cue232=text-o221 -InputList3SigType232=Serial -InputList3Cue233=text-o222 -InputList3SigType233=Serial -InputList3Cue234=text-o223 -InputList3SigType234=Serial -InputList3Cue235=text-o224 -InputList3SigType235=Serial -InputList3Cue236=text-o225 -InputList3SigType236=Serial -InputList3Cue237=text-o226 -InputList3SigType237=Serial -InputList3Cue238=text-o227 -InputList3SigType238=Serial -InputList3Cue239=text-o228 -InputList3SigType239=Serial -InputList3Cue240=text-o229 -InputList3SigType240=Serial -InputList3Cue241=text-o230 -InputList3SigType241=Serial -InputList3Cue242=text-o231 -InputList3SigType242=Serial -InputList3Cue243=text-o232 -InputList3SigType243=Serial -InputList3Cue244=text-o233 -InputList3SigType244=Serial -InputList3Cue245=text-o234 -InputList3SigType245=Serial -InputList3Cue246=text-o235 -InputList3SigType246=Serial -InputList3Cue247=text-o236 -InputList3SigType247=Serial -InputList3Cue248=text-o237 -InputList3SigType248=Serial -InputList3Cue249=text-o238 -InputList3SigType249=Serial -InputList3Cue250=text-o239 -InputList3SigType250=Serial -InputList3Cue251=text-o240 -InputList3SigType251=Serial -InputList3Cue252=text-o241 -InputList3SigType252=Serial -InputList3Cue253=text-o242 -InputList3SigType253=Serial -InputList3Cue254=text-o243 -InputList3SigType254=Serial -InputList3Cue255=text-o244 -InputList3SigType255=Serial -InputList3Cue256=text-o245 -InputList3SigType256=Serial -InputList3Cue257=text-o246 -InputList3SigType257=Serial -InputList3Cue258=text-o247 -InputList3SigType258=Serial -InputList3Cue259=text-o248 -InputList3SigType259=Serial -InputList3Cue260=text-o249 -InputList3SigType260=Serial -InputList3Cue261=text-o250 -InputList3SigType261=Serial -InputList3Cue262=text-o251 -InputList3SigType262=Serial -InputList3Cue263=text-o252 -InputList3SigType263=Serial -InputList3Cue264=text-o253 -InputList3SigType264=Serial -InputList3Cue265=text-o254 -InputList3SigType265=Serial -InputList3Cue266=text-o255 -InputList3SigType266=Serial -InputList3Cue267=text-o256 -InputList3SigType267=Serial -InputList3Cue268=text-o257 -InputList3SigType268=Serial -InputList3Cue269=text-o258 -InputList3SigType269=Serial -InputList3Cue270=text-o259 -InputList3SigType270=Serial -InputList3Cue271=text-o260 -InputList3SigType271=Serial -InputList3Cue272=text-o261 -InputList3SigType272=Serial -InputList3Cue273=text-o262 -InputList3SigType273=Serial -InputList3Cue274=text-o263 -InputList3SigType274=Serial -InputList3Cue275=text-o264 -InputList3SigType275=Serial -InputList3Cue276=text-o265 -InputList3SigType276=Serial -InputList3Cue277=text-o266 -InputList3SigType277=Serial -InputList3Cue278=text-o267 -InputList3SigType278=Serial -InputList3Cue279=text-o268 -InputList3SigType279=Serial -InputList3Cue280=text-o269 -InputList3SigType280=Serial -InputList3Cue281=text-o270 -InputList3SigType281=Serial -InputList3Cue282=text-o271 -InputList3SigType282=Serial -InputList3Cue283=text-o272 -InputList3SigType283=Serial -InputList3Cue284=text-o273 -InputList3SigType284=Serial -InputList3Cue285=text-o274 -InputList3SigType285=Serial -InputList3Cue286=text-o275 -InputList3SigType286=Serial -InputList3Cue287=text-o276 -InputList3SigType287=Serial -InputList3Cue288=text-o277 -InputList3SigType288=Serial -InputList3Cue289=text-o278 -InputList3SigType289=Serial -InputList3Cue290=text-o279 -InputList3SigType290=Serial -InputList3Cue291=text-o280 -InputList3SigType291=Serial -InputList3Cue292=text-o281 -InputList3SigType292=Serial -InputList3Cue293=text-o282 -InputList3SigType293=Serial -InputList3Cue294=text-o283 -InputList3SigType294=Serial -InputList3Cue295=text-o284 -InputList3SigType295=Serial -InputList3Cue296=text-o285 -InputList3SigType296=Serial -InputList3Cue297=text-o286 -InputList3SigType297=Serial -InputList3Cue298=text-o287 -InputList3SigType298=Serial -InputList3Cue299=text-o288 -InputList3SigType299=Serial -InputList3Cue300=text-o289 -InputList3SigType300=Serial -InputList3Cue301=text-o290 -InputList3SigType301=Serial -InputList3Cue302=text-o291 -InputList3SigType302=Serial -InputList3Cue303=text-o292 -InputList3SigType303=Serial -InputList3Cue304=text-o293 -InputList3SigType304=Serial -InputList3Cue305=text-o294 -InputList3SigType305=Serial -InputList3Cue306=text-o295 -InputList3SigType306=Serial -InputList3Cue307=text-o296 -InputList3SigType307=Serial -InputList3Cue308=text-o297 -InputList3SigType308=Serial -InputList3Cue309=text-o298 -InputList3SigType309=Serial -InputList3Cue310=text-o299 -InputList3SigType310=Serial -InputList3Cue311=text-o300 -InputList3SigType311=Serial -InputList3Cue312=text-o301 -InputList3SigType312=Serial -InputList3Cue313=text-o302 -InputList3SigType313=Serial -InputList3Cue314=text-o303 -InputList3SigType314=Serial -InputList3Cue315=text-o304 -InputList3SigType315=Serial -InputList3Cue316=text-o305 -InputList3SigType316=Serial -InputList3Cue317=text-o306 -InputList3SigType317=Serial -InputList3Cue318=text-o307 -InputList3SigType318=Serial -InputList3Cue319=text-o308 -InputList3SigType319=Serial -InputList3Cue320=text-o309 -InputList3SigType320=Serial -InputList3Cue321=text-o310 -InputList3SigType321=Serial -InputList3Cue322=text-o311 -InputList3SigType322=Serial -InputList3Cue323=text-o312 -InputList3SigType323=Serial -InputList3Cue324=text-o313 -InputList3SigType324=Serial -InputList3Cue325=text-o314 -InputList3SigType325=Serial -InputList3Cue326=text-o315 -InputList3SigType326=Serial -InputList3Cue327=text-o316 -InputList3SigType327=Serial -InputList3Cue328=text-o317 -InputList3SigType328=Serial -InputList3Cue329=text-o318 -InputList3SigType329=Serial -InputList3Cue330=text-o319 -InputList3SigType330=Serial -InputList3Cue331=text-o320 -InputList3SigType331=Serial -InputList3Cue332=text-o321 -InputList3SigType332=Serial -InputList3Cue333=text-o322 -InputList3SigType333=Serial -InputList3Cue334=text-o323 -InputList3SigType334=Serial -InputList3Cue335=text-o324 -InputList3SigType335=Serial -InputList3Cue336=text-o325 -InputList3SigType336=Serial -InputList3Cue337=text-o326 -InputList3SigType337=Serial -InputList3Cue338=text-o327 -InputList3SigType338=Serial -InputList3Cue339=text-o328 -InputList3SigType339=Serial -InputList3Cue340=text-o329 -InputList3SigType340=Serial -InputList3Cue341=text-o330 -InputList3SigType341=Serial -InputList3Cue342=text-o331 -InputList3SigType342=Serial -InputList3Cue343=text-o332 -InputList3SigType343=Serial -InputList3Cue344=text-o333 -InputList3SigType344=Serial -InputList3Cue345=text-o334 -InputList3SigType345=Serial -InputList3Cue346=text-o335 -InputList3SigType346=Serial -InputList3Cue347=text-o336 -InputList3SigType347=Serial -InputList3Cue348=text-o337 -InputList3SigType348=Serial -InputList3Cue349=text-o338 -InputList3SigType349=Serial -InputList3Cue350=text-o339 -InputList3SigType350=Serial -InputList3Cue351=text-o340 -InputList3SigType351=Serial -InputList3Cue352=text-o341 -InputList3SigType352=Serial -InputList3Cue353=text-o342 -InputList3SigType353=Serial -InputList3Cue354=text-o343 -InputList3SigType354=Serial -InputList3Cue355=text-o344 -InputList3SigType355=Serial -InputList3Cue356=text-o345 -InputList3SigType356=Serial -InputList3Cue357=text-o346 -InputList3SigType357=Serial -InputList3Cue358=text-o347 -InputList3SigType358=Serial -InputList3Cue359=text-o348 -InputList3SigType359=Serial -InputList3Cue360=text-o349 -InputList3SigType360=Serial -InputList3Cue361=text-o350 -InputList3SigType361=Serial -InputList3Cue362=text-o351 -InputList3SigType362=Serial -InputList3Cue363=text-o352 -InputList3SigType363=Serial -InputList3Cue364=text-o353 -InputList3SigType364=Serial -InputList3Cue365=text-o354 -InputList3SigType365=Serial -InputList3Cue366=text-o355 -InputList3SigType366=Serial -InputList3Cue367=text-o356 -InputList3SigType367=Serial -InputList3Cue368=text-o357 -InputList3SigType368=Serial -InputList3Cue369=text-o358 -InputList3SigType369=Serial -InputList3Cue370=text-o359 -InputList3SigType370=Serial -InputList3Cue371=text-o360 -InputList3SigType371=Serial -InputList3Cue372=text-o361 -InputList3SigType372=Serial -InputList3Cue373=text-o362 -InputList3SigType373=Serial -InputList3Cue374=text-o363 -InputList3SigType374=Serial -InputList3Cue375=text-o364 -InputList3SigType375=Serial -InputList3Cue376=text-o365 -InputList3SigType376=Serial -InputList3Cue377=text-o366 -InputList3SigType377=Serial -InputList3Cue378=text-o367 -InputList3SigType378=Serial -InputList3Cue379=text-o368 -InputList3SigType379=Serial -InputList3Cue380=text-o369 -InputList3SigType380=Serial -InputList3Cue381=text-o370 -InputList3SigType381=Serial -InputList3Cue382=text-o371 -InputList3SigType382=Serial -InputList3Cue383=text-o372 -InputList3SigType383=Serial -InputList3Cue384=text-o373 -InputList3SigType384=Serial -InputList3Cue385=text-o374 -InputList3SigType385=Serial -InputList3Cue386=text-o375 -InputList3SigType386=Serial -InputList3Cue387=text-o376 -InputList3SigType387=Serial -InputList3Cue388=text-o377 -InputList3SigType388=Serial -InputList3Cue389=text-o378 -InputList3SigType389=Serial -InputList3Cue390=text-o379 -InputList3SigType390=Serial -InputList3Cue391=text-o380 -InputList3SigType391=Serial -InputList3Cue392=text-o381 -InputList3SigType392=Serial -InputList3Cue393=text-o382 -InputList3SigType393=Serial -InputList3Cue394=text-o383 -InputList3SigType394=Serial -InputList3Cue395=text-o384 -InputList3SigType395=Serial -InputList3Cue396=text-o385 -InputList3SigType396=Serial -InputList3Cue397=text-o386 -InputList3SigType397=Serial -InputList3Cue398=text-o387 -InputList3SigType398=Serial -InputList3Cue399=text-o388 -InputList3SigType399=Serial -InputList3Cue400=text-o389 -InputList3SigType400=Serial -InputList3Cue401=text-o390 -InputList3SigType401=Serial -InputList3Cue402=text-o391 -InputList3SigType402=Serial -InputList3Cue403=text-o392 -InputList3SigType403=Serial -InputList3Cue404=text-o393 -InputList3SigType404=Serial -InputList3Cue405=text-o394 -InputList3SigType405=Serial -InputList3Cue406=text-o395 -InputList3SigType406=Serial -InputList3Cue407=text-o396 -InputList3SigType407=Serial -InputList3Cue408=text-o397 -InputList3SigType408=Serial -InputList3Cue409=text-o398 -InputList3SigType409=Serial -InputList3Cue410=text-o399 -InputList3SigType410=Serial -InputList3Cue411=text-o400 -InputList3SigType411=Serial -InputList3Cue412=[~EndGroup~]text-o -InputList3SigType412=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=text-i61 -OutputList3SigType72=Serial -OutputList3Cue73=text-i62 -OutputList3SigType73=Serial -OutputList3Cue74=text-i63 -OutputList3SigType74=Serial -OutputList3Cue75=text-i64 -OutputList3SigType75=Serial -OutputList3Cue76=text-i65 -OutputList3SigType76=Serial -OutputList3Cue77=text-i66 -OutputList3SigType77=Serial -OutputList3Cue78=text-i67 -OutputList3SigType78=Serial -OutputList3Cue79=text-i68 -OutputList3SigType79=Serial -OutputList3Cue80=text-i69 -OutputList3SigType80=Serial -OutputList3Cue81=text-i70 -OutputList3SigType81=Serial -OutputList3Cue82=text-i71 -OutputList3SigType82=Serial -OutputList3Cue83=text-i72 -OutputList3SigType83=Serial -OutputList3Cue84=text-i73 -OutputList3SigType84=Serial -OutputList3Cue85=text-i74 -OutputList3SigType85=Serial -OutputList3Cue86=text-i75 -OutputList3SigType86=Serial -OutputList3Cue87=text-i76 -OutputList3SigType87=Serial -OutputList3Cue88=text-i77 -OutputList3SigType88=Serial -OutputList3Cue89=text-i78 -OutputList3SigType89=Serial -OutputList3Cue90=text-i79 -OutputList3SigType90=Serial -OutputList3Cue91=text-i80 -OutputList3SigType91=Serial -OutputList3Cue92=text-i81 -OutputList3SigType92=Serial -OutputList3Cue93=text-i82 -OutputList3SigType93=Serial -OutputList3Cue94=text-i83 -OutputList3SigType94=Serial -OutputList3Cue95=text-i84 -OutputList3SigType95=Serial -OutputList3Cue96=text-i85 -OutputList3SigType96=Serial -OutputList3Cue97=text-i86 -OutputList3SigType97=Serial -OutputList3Cue98=text-i87 -OutputList3SigType98=Serial -OutputList3Cue99=text-i88 -OutputList3SigType99=Serial -OutputList3Cue100=text-i89 -OutputList3SigType100=Serial -OutputList3Cue101=text-i90 -OutputList3SigType101=Serial -OutputList3Cue102=text-i91 -OutputList3SigType102=Serial -OutputList3Cue103=text-i92 -OutputList3SigType103=Serial -OutputList3Cue104=text-i93 -OutputList3SigType104=Serial -OutputList3Cue105=text-i94 -OutputList3SigType105=Serial -OutputList3Cue106=text-i95 -OutputList3SigType106=Serial -OutputList3Cue107=text-i96 -OutputList3SigType107=Serial -OutputList3Cue108=text-i97 -OutputList3SigType108=Serial -OutputList3Cue109=text-i98 -OutputList3SigType109=Serial -OutputList3Cue110=text-i99 -OutputList3SigType110=Serial -OutputList3Cue111=text-i100 -OutputList3SigType111=Serial -OutputList3Cue112=text-i101 -OutputList3SigType112=Serial -OutputList3Cue113=text-i102 -OutputList3SigType113=Serial -OutputList3Cue114=text-i103 -OutputList3SigType114=Serial -OutputList3Cue115=text-i104 -OutputList3SigType115=Serial -OutputList3Cue116=text-i105 -OutputList3SigType116=Serial -OutputList3Cue117=text-i106 -OutputList3SigType117=Serial -OutputList3Cue118=text-i107 -OutputList3SigType118=Serial -OutputList3Cue119=text-i108 -OutputList3SigType119=Serial -OutputList3Cue120=text-i109 -OutputList3SigType120=Serial -OutputList3Cue121=text-i110 -OutputList3SigType121=Serial -OutputList3Cue122=text-i111 -OutputList3SigType122=Serial -OutputList3Cue123=text-i112 -OutputList3SigType123=Serial -OutputList3Cue124=text-i113 -OutputList3SigType124=Serial -OutputList3Cue125=text-i114 -OutputList3SigType125=Serial -OutputList3Cue126=text-i115 -OutputList3SigType126=Serial -OutputList3Cue127=text-i116 -OutputList3SigType127=Serial -OutputList3Cue128=text-i117 -OutputList3SigType128=Serial -OutputList3Cue129=text-i118 -OutputList3SigType129=Serial -OutputList3Cue130=text-i119 -OutputList3SigType130=Serial -OutputList3Cue131=text-i120 -OutputList3SigType131=Serial -OutputList3Cue132=text-i121 -OutputList3SigType132=Serial -OutputList3Cue133=text-i122 -OutputList3SigType133=Serial -OutputList3Cue134=text-i123 -OutputList3SigType134=Serial -OutputList3Cue135=text-i124 -OutputList3SigType135=Serial -OutputList3Cue136=text-i125 -OutputList3SigType136=Serial -OutputList3Cue137=text-i126 -OutputList3SigType137=Serial -OutputList3Cue138=text-i127 -OutputList3SigType138=Serial -OutputList3Cue139=text-i128 -OutputList3SigType139=Serial -OutputList3Cue140=text-i129 -OutputList3SigType140=Serial -OutputList3Cue141=text-i130 -OutputList3SigType141=Serial -OutputList3Cue142=text-i131 -OutputList3SigType142=Serial -OutputList3Cue143=text-i132 -OutputList3SigType143=Serial -OutputList3Cue144=text-i133 -OutputList3SigType144=Serial -OutputList3Cue145=text-i134 -OutputList3SigType145=Serial -OutputList3Cue146=text-i135 -OutputList3SigType146=Serial -OutputList3Cue147=text-i136 -OutputList3SigType147=Serial -OutputList3Cue148=text-i137 -OutputList3SigType148=Serial -OutputList3Cue149=text-i138 -OutputList3SigType149=Serial -OutputList3Cue150=text-i139 -OutputList3SigType150=Serial -OutputList3Cue151=text-i140 -OutputList3SigType151=Serial -OutputList3Cue152=text-i141 -OutputList3SigType152=Serial -OutputList3Cue153=text-i142 -OutputList3SigType153=Serial -OutputList3Cue154=text-i143 -OutputList3SigType154=Serial -OutputList3Cue155=text-i144 -OutputList3SigType155=Serial -OutputList3Cue156=text-i145 -OutputList3SigType156=Serial -OutputList3Cue157=text-i146 -OutputList3SigType157=Serial -OutputList3Cue158=text-i147 -OutputList3SigType158=Serial -OutputList3Cue159=text-i148 -OutputList3SigType159=Serial -OutputList3Cue160=text-i149 -OutputList3SigType160=Serial -OutputList3Cue161=text-i150 -OutputList3SigType161=Serial -OutputList3Cue162=text-i151 -OutputList3SigType162=Serial -OutputList3Cue163=text-i152 -OutputList3SigType163=Serial -OutputList3Cue164=text-i153 -OutputList3SigType164=Serial -OutputList3Cue165=text-i154 -OutputList3SigType165=Serial -OutputList3Cue166=text-i155 -OutputList3SigType166=Serial -OutputList3Cue167=text-i156 -OutputList3SigType167=Serial -OutputList3Cue168=text-i157 -OutputList3SigType168=Serial -OutputList3Cue169=text-i158 -OutputList3SigType169=Serial -OutputList3Cue170=text-i159 -OutputList3SigType170=Serial -OutputList3Cue171=text-i160 -OutputList3SigType171=Serial -OutputList3Cue172=text-i161 -OutputList3SigType172=Serial -OutputList3Cue173=text-i162 -OutputList3SigType173=Serial -OutputList3Cue174=text-i163 -OutputList3SigType174=Serial -OutputList3Cue175=text-i164 -OutputList3SigType175=Serial -OutputList3Cue176=text-i165 -OutputList3SigType176=Serial -OutputList3Cue177=text-i166 -OutputList3SigType177=Serial -OutputList3Cue178=text-i167 -OutputList3SigType178=Serial -OutputList3Cue179=text-i168 -OutputList3SigType179=Serial -OutputList3Cue180=text-i169 -OutputList3SigType180=Serial -OutputList3Cue181=text-i170 -OutputList3SigType181=Serial -OutputList3Cue182=text-i171 -OutputList3SigType182=Serial -OutputList3Cue183=text-i172 -OutputList3SigType183=Serial -OutputList3Cue184=text-i173 -OutputList3SigType184=Serial -OutputList3Cue185=text-i174 -OutputList3SigType185=Serial -OutputList3Cue186=text-i175 -OutputList3SigType186=Serial -OutputList3Cue187=text-i176 -OutputList3SigType187=Serial -OutputList3Cue188=text-i177 -OutputList3SigType188=Serial -OutputList3Cue189=text-i178 -OutputList3SigType189=Serial -OutputList3Cue190=text-i179 -OutputList3SigType190=Serial -OutputList3Cue191=text-i180 -OutputList3SigType191=Serial -OutputList3Cue192=text-i181 -OutputList3SigType192=Serial -OutputList3Cue193=text-i182 -OutputList3SigType193=Serial -OutputList3Cue194=text-i183 -OutputList3SigType194=Serial -OutputList3Cue195=text-i184 -OutputList3SigType195=Serial -OutputList3Cue196=text-i185 -OutputList3SigType196=Serial -OutputList3Cue197=text-i186 -OutputList3SigType197=Serial -OutputList3Cue198=text-i187 -OutputList3SigType198=Serial -OutputList3Cue199=text-i188 -OutputList3SigType199=Serial -OutputList3Cue200=text-i189 -OutputList3SigType200=Serial -OutputList3Cue201=text-i190 -OutputList3SigType201=Serial -OutputList3Cue202=text-i191 -OutputList3SigType202=Serial -OutputList3Cue203=text-i192 -OutputList3SigType203=Serial -OutputList3Cue204=text-i193 -OutputList3SigType204=Serial -OutputList3Cue205=text-i194 -OutputList3SigType205=Serial -OutputList3Cue206=text-i195 -OutputList3SigType206=Serial -OutputList3Cue207=text-i196 -OutputList3SigType207=Serial -OutputList3Cue208=text-i197 -OutputList3SigType208=Serial -OutputList3Cue209=text-i198 -OutputList3SigType209=Serial -OutputList3Cue210=text-i199 -OutputList3SigType210=Serial -OutputList3Cue211=text-i200 -OutputList3SigType211=Serial -OutputList3Cue212=text-i201 -OutputList3SigType212=Serial -OutputList3Cue213=text-i202 -OutputList3SigType213=Serial -OutputList3Cue214=text-i203 -OutputList3SigType214=Serial -OutputList3Cue215=text-i204 -OutputList3SigType215=Serial -OutputList3Cue216=text-i205 -OutputList3SigType216=Serial -OutputList3Cue217=text-i206 -OutputList3SigType217=Serial -OutputList3Cue218=text-i207 -OutputList3SigType218=Serial -OutputList3Cue219=text-i208 -OutputList3SigType219=Serial -OutputList3Cue220=text-i209 -OutputList3SigType220=Serial -OutputList3Cue221=text-i210 -OutputList3SigType221=Serial -OutputList3Cue222=text-i211 -OutputList3SigType222=Serial -OutputList3Cue223=text-i212 -OutputList3SigType223=Serial -OutputList3Cue224=text-i213 -OutputList3SigType224=Serial -OutputList3Cue225=text-i214 -OutputList3SigType225=Serial -OutputList3Cue226=text-i215 -OutputList3SigType226=Serial -OutputList3Cue227=text-i216 -OutputList3SigType227=Serial -OutputList3Cue228=text-i217 -OutputList3SigType228=Serial -OutputList3Cue229=text-i218 -OutputList3SigType229=Serial -OutputList3Cue230=text-i219 -OutputList3SigType230=Serial -OutputList3Cue231=text-i220 -OutputList3SigType231=Serial -OutputList3Cue232=text-i221 -OutputList3SigType232=Serial -OutputList3Cue233=text-i222 -OutputList3SigType233=Serial -OutputList3Cue234=text-i223 -OutputList3SigType234=Serial -OutputList3Cue235=text-i224 -OutputList3SigType235=Serial -OutputList3Cue236=text-i225 -OutputList3SigType236=Serial -OutputList3Cue237=text-i226 -OutputList3SigType237=Serial -OutputList3Cue238=text-i227 -OutputList3SigType238=Serial -OutputList3Cue239=text-i228 -OutputList3SigType239=Serial -OutputList3Cue240=text-i229 -OutputList3SigType240=Serial -OutputList3Cue241=text-i230 -OutputList3SigType241=Serial -OutputList3Cue242=text-i231 -OutputList3SigType242=Serial -OutputList3Cue243=text-i232 -OutputList3SigType243=Serial -OutputList3Cue244=text-i233 -OutputList3SigType244=Serial -OutputList3Cue245=text-i234 -OutputList3SigType245=Serial -OutputList3Cue246=text-i235 -OutputList3SigType246=Serial -OutputList3Cue247=text-i236 -OutputList3SigType247=Serial -OutputList3Cue248=text-i237 -OutputList3SigType248=Serial -OutputList3Cue249=text-i238 -OutputList3SigType249=Serial -OutputList3Cue250=text-i239 -OutputList3SigType250=Serial -OutputList3Cue251=text-i240 -OutputList3SigType251=Serial -OutputList3Cue252=text-i241 -OutputList3SigType252=Serial -OutputList3Cue253=text-i242 -OutputList3SigType253=Serial -OutputList3Cue254=text-i243 -OutputList3SigType254=Serial -OutputList3Cue255=text-i244 -OutputList3SigType255=Serial -OutputList3Cue256=text-i245 -OutputList3SigType256=Serial -OutputList3Cue257=text-i246 -OutputList3SigType257=Serial -OutputList3Cue258=text-i247 -OutputList3SigType258=Serial -OutputList3Cue259=text-i248 -OutputList3SigType259=Serial -OutputList3Cue260=text-i249 -OutputList3SigType260=Serial -OutputList3Cue261=text-i250 -OutputList3SigType261=Serial -OutputList3Cue262=text-i251 -OutputList3SigType262=Serial -OutputList3Cue263=text-i252 -OutputList3SigType263=Serial -OutputList3Cue264=text-i253 -OutputList3SigType264=Serial -OutputList3Cue265=text-i254 -OutputList3SigType265=Serial -OutputList3Cue266=text-i255 -OutputList3SigType266=Serial -OutputList3Cue267=text-i256 -OutputList3SigType267=Serial -OutputList3Cue268=text-i257 -OutputList3SigType268=Serial -OutputList3Cue269=text-i258 -OutputList3SigType269=Serial -OutputList3Cue270=text-i259 -OutputList3SigType270=Serial -OutputList3Cue271=text-i260 -OutputList3SigType271=Serial -OutputList3Cue272=text-i261 -OutputList3SigType272=Serial -OutputList3Cue273=text-i262 -OutputList3SigType273=Serial -OutputList3Cue274=text-i263 -OutputList3SigType274=Serial -OutputList3Cue275=text-i264 -OutputList3SigType275=Serial -OutputList3Cue276=text-i265 -OutputList3SigType276=Serial -OutputList3Cue277=text-i266 -OutputList3SigType277=Serial -OutputList3Cue278=text-i267 -OutputList3SigType278=Serial -OutputList3Cue279=text-i268 -OutputList3SigType279=Serial -OutputList3Cue280=text-i269 -OutputList3SigType280=Serial -OutputList3Cue281=text-i270 -OutputList3SigType281=Serial -OutputList3Cue282=text-i271 -OutputList3SigType282=Serial -OutputList3Cue283=text-i272 -OutputList3SigType283=Serial -OutputList3Cue284=text-i273 -OutputList3SigType284=Serial -OutputList3Cue285=text-i274 -OutputList3SigType285=Serial -OutputList3Cue286=text-i275 -OutputList3SigType286=Serial -OutputList3Cue287=text-i276 -OutputList3SigType287=Serial -OutputList3Cue288=text-i277 -OutputList3SigType288=Serial -OutputList3Cue289=text-i278 -OutputList3SigType289=Serial -OutputList3Cue290=text-i279 -OutputList3SigType290=Serial -OutputList3Cue291=text-i280 -OutputList3SigType291=Serial -OutputList3Cue292=text-i281 -OutputList3SigType292=Serial -OutputList3Cue293=text-i282 -OutputList3SigType293=Serial -OutputList3Cue294=text-i283 -OutputList3SigType294=Serial -OutputList3Cue295=text-i284 -OutputList3SigType295=Serial -OutputList3Cue296=text-i285 -OutputList3SigType296=Serial -OutputList3Cue297=text-i286 -OutputList3SigType297=Serial -OutputList3Cue298=text-i287 -OutputList3SigType298=Serial -OutputList3Cue299=text-i288 -OutputList3SigType299=Serial -OutputList3Cue300=text-i289 -OutputList3SigType300=Serial -OutputList3Cue301=text-i290 -OutputList3SigType301=Serial -OutputList3Cue302=text-i291 -OutputList3SigType302=Serial -OutputList3Cue303=text-i292 -OutputList3SigType303=Serial -OutputList3Cue304=text-i293 -OutputList3SigType304=Serial -OutputList3Cue305=text-i294 -OutputList3SigType305=Serial -OutputList3Cue306=text-i295 -OutputList3SigType306=Serial -OutputList3Cue307=text-i296 -OutputList3SigType307=Serial -OutputList3Cue308=text-i297 -OutputList3SigType308=Serial -OutputList3Cue309=text-i298 -OutputList3SigType309=Serial -OutputList3Cue310=text-i299 -OutputList3SigType310=Serial -OutputList3Cue311=text-i300 -OutputList3SigType311=Serial -OutputList3Cue312=text-i301 -OutputList3SigType312=Serial -OutputList3Cue313=text-i302 -OutputList3SigType313=Serial -OutputList3Cue314=text-i303 -OutputList3SigType314=Serial -OutputList3Cue315=text-i304 -OutputList3SigType315=Serial -OutputList3Cue316=text-i305 -OutputList3SigType316=Serial -OutputList3Cue317=text-i306 -OutputList3SigType317=Serial -OutputList3Cue318=text-i307 -OutputList3SigType318=Serial -OutputList3Cue319=text-i308 -OutputList3SigType319=Serial -OutputList3Cue320=text-i309 -OutputList3SigType320=Serial -OutputList3Cue321=text-i310 -OutputList3SigType321=Serial -OutputList3Cue322=text-i311 -OutputList3SigType322=Serial -OutputList3Cue323=text-i312 -OutputList3SigType323=Serial -OutputList3Cue324=text-i313 -OutputList3SigType324=Serial -OutputList3Cue325=text-i314 -OutputList3SigType325=Serial -OutputList3Cue326=text-i315 -OutputList3SigType326=Serial -OutputList3Cue327=text-i316 -OutputList3SigType327=Serial -OutputList3Cue328=text-i317 -OutputList3SigType328=Serial -OutputList3Cue329=text-i318 -OutputList3SigType329=Serial -OutputList3Cue330=text-i319 -OutputList3SigType330=Serial -OutputList3Cue331=text-i320 -OutputList3SigType331=Serial -OutputList3Cue332=text-i321 -OutputList3SigType332=Serial -OutputList3Cue333=text-i322 -OutputList3SigType333=Serial -OutputList3Cue334=text-i323 -OutputList3SigType334=Serial -OutputList3Cue335=text-i324 -OutputList3SigType335=Serial -OutputList3Cue336=text-i325 -OutputList3SigType336=Serial -OutputList3Cue337=text-i326 -OutputList3SigType337=Serial -OutputList3Cue338=text-i327 -OutputList3SigType338=Serial -OutputList3Cue339=text-i328 -OutputList3SigType339=Serial -OutputList3Cue340=text-i329 -OutputList3SigType340=Serial -OutputList3Cue341=text-i330 -OutputList3SigType341=Serial -OutputList3Cue342=text-i331 -OutputList3SigType342=Serial -OutputList3Cue343=text-i332 -OutputList3SigType343=Serial -OutputList3Cue344=text-i333 -OutputList3SigType344=Serial -OutputList3Cue345=text-i334 -OutputList3SigType345=Serial -OutputList3Cue346=text-i335 -OutputList3SigType346=Serial -OutputList3Cue347=text-i336 -OutputList3SigType347=Serial -OutputList3Cue348=text-i337 -OutputList3SigType348=Serial -OutputList3Cue349=text-i338 -OutputList3SigType349=Serial -OutputList3Cue350=text-i339 -OutputList3SigType350=Serial -OutputList3Cue351=text-i340 -OutputList3SigType351=Serial -OutputList3Cue352=text-i341 -OutputList3SigType352=Serial -OutputList3Cue353=text-i342 -OutputList3SigType353=Serial -OutputList3Cue354=text-i343 -OutputList3SigType354=Serial -OutputList3Cue355=text-i344 -OutputList3SigType355=Serial -OutputList3Cue356=text-i345 -OutputList3SigType356=Serial -OutputList3Cue357=text-i346 -OutputList3SigType357=Serial -OutputList3Cue358=text-i347 -OutputList3SigType358=Serial -OutputList3Cue359=text-i348 -OutputList3SigType359=Serial -OutputList3Cue360=text-i349 -OutputList3SigType360=Serial -OutputList3Cue361=text-i350 -OutputList3SigType361=Serial -OutputList3Cue362=text-i351 -OutputList3SigType362=Serial -OutputList3Cue363=text-i352 -OutputList3SigType363=Serial -OutputList3Cue364=text-i353 -OutputList3SigType364=Serial -OutputList3Cue365=text-i354 -OutputList3SigType365=Serial -OutputList3Cue366=text-i355 -OutputList3SigType366=Serial -OutputList3Cue367=text-i356 -OutputList3SigType367=Serial -OutputList3Cue368=text-i357 -OutputList3SigType368=Serial -OutputList3Cue369=text-i358 -OutputList3SigType369=Serial -OutputList3Cue370=text-i359 -OutputList3SigType370=Serial -OutputList3Cue371=text-i360 -OutputList3SigType371=Serial -OutputList3Cue372=text-i361 -OutputList3SigType372=Serial -OutputList3Cue373=text-i362 -OutputList3SigType373=Serial -OutputList3Cue374=text-i363 -OutputList3SigType374=Serial -OutputList3Cue375=text-i364 -OutputList3SigType375=Serial -OutputList3Cue376=text-i365 -OutputList3SigType376=Serial -OutputList3Cue377=text-i366 -OutputList3SigType377=Serial -OutputList3Cue378=text-i367 -OutputList3SigType378=Serial -OutputList3Cue379=text-i368 -OutputList3SigType379=Serial -OutputList3Cue380=text-i369 -OutputList3SigType380=Serial -OutputList3Cue381=text-i370 -OutputList3SigType381=Serial -OutputList3Cue382=text-i371 -OutputList3SigType382=Serial -OutputList3Cue383=text-i372 -OutputList3SigType383=Serial -OutputList3Cue384=text-i373 -OutputList3SigType384=Serial -OutputList3Cue385=text-i374 -OutputList3SigType385=Serial -OutputList3Cue386=text-i375 -OutputList3SigType386=Serial -OutputList3Cue387=text-i376 -OutputList3SigType387=Serial -OutputList3Cue388=text-i377 -OutputList3SigType388=Serial -OutputList3Cue389=text-i378 -OutputList3SigType389=Serial -OutputList3Cue390=text-i379 -OutputList3SigType390=Serial -OutputList3Cue391=text-i380 -OutputList3SigType391=Serial -OutputList3Cue392=text-i381 -OutputList3SigType392=Serial -OutputList3Cue393=text-i382 -OutputList3SigType393=Serial -OutputList3Cue394=text-i383 -OutputList3SigType394=Serial -OutputList3Cue395=text-i384 -OutputList3SigType395=Serial -OutputList3Cue396=text-i385 -OutputList3SigType396=Serial -OutputList3Cue397=text-i386 -OutputList3SigType397=Serial -OutputList3Cue398=text-i387 -OutputList3SigType398=Serial -OutputList3Cue399=text-i388 -OutputList3SigType399=Serial -OutputList3Cue400=text-i389 -OutputList3SigType400=Serial -OutputList3Cue401=text-i390 -OutputList3SigType401=Serial -OutputList3Cue402=text-i391 -OutputList3SigType402=Serial -OutputList3Cue403=text-i392 -OutputList3SigType403=Serial -OutputList3Cue404=text-i393 -OutputList3SigType404=Serial -OutputList3Cue405=text-i394 -OutputList3SigType405=Serial -OutputList3Cue406=text-i395 -OutputList3SigType406=Serial -OutputList3Cue407=text-i396 -OutputList3SigType407=Serial -OutputList3Cue408=text-i397 -OutputList3SigType408=Serial -OutputList3Cue409=text-i398 -OutputList3SigType409=Serial -OutputList3Cue410=text-i399 -OutputList3SigType410=Serial -OutputList3Cue411=text-i400 -OutputList3SigType411=Serial -OutputList3Cue412=[~EndGroup~]text-i -OutputList3SigType412=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=10 -CedH=10 -SmartObjId=10012d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=10 -Tp=1 -HD=TRUE -DV=10012d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=10 -Name=PepperDash Essentials iPad_[B.AV] Object - Presets_CATV Icon List Vertical.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[B.AV] Object - DPad STB_STB DPad.ced -Hint=STB DPad (Smart Object ID=10011) -Code=11 -SGControlType=DPad -SGControlName=STB DPad -GUID=F2340FAD-85E9-4E49-B46E-15E9B096F58B -SmplCName=PepperDash Essentials iPad_[B.AV] Object - DPad STB_STB DPad.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10015 -;Define the number of inputs, outputs and parameters -MinVariableInputs=5 -MaxVariableInputs=5 -MinVariableOutputs=5 -MaxVariableOutputs=5 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=Up -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=Down -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=Left -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=Right -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=OK -OutputSigType5=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=11 -CedH=11 -SmartObjId=10011d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=11 -Tp=1 -HD=TRUE -DV=10011d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=11 -Name=PepperDash Essentials iPad_[B.AV] Object - DPad STB_STB DPad.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[B.AV] Object - Tab SetTopBox_Tab Button Horizontal.ced -Hint=Tab Button Horizontal (Smart Object ID=10081) -Code=12 -SGControlType=Horizontal Tab Button -SGControlName=Tab Button Horizontal -GUID=198C97B0-9D0C-46C2-9557-27EA33C0BE9F -SmplCName=PepperDash Essentials iPad_[B.AV] Object - Tab SetTopBox_Tab Button Horizontal.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10031 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4 -MaxVariableInputs=4 -MinVariableOutputs=4 -MaxVariableOutputs=4 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=Tab Button 1 Press -OutputSigType1=Digital -InputCue2=Tab Button 1 Select -InputSigType2=Digital -OutputCue2=[~UNUSED3~] -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=Tab Button 2 Press -OutputSigType3=Digital -InputCue4=Tab Button 2 Select -InputSigType4=Digital -OutputCue4=[~UNUSED3~] -OutputSigType4=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=12 -CedH=12 -SmartObjId=10081d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=12 -Tp=1 -HD=TRUE -DV=10081d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=12 -Name=PepperDash Essentials iPad_[B.AV] Object - Tab SetTopBox_Tab Button Horizontal.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[B.AV] Object - Dpad DVD_DVD DPad.ced -Hint=DVD DPad (Smart Object ID=10411) -Code=13 -SGControlType=DPad -SGControlName=DVD DPad -GUID=D49BCF22-C770-4146-93E6-00867D885E1E -SmplCName=PepperDash Essentials iPad_[B.AV] Object - Dpad DVD_DVD DPad.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10015 -;Define the number of inputs, outputs and parameters -MinVariableInputs=5 -MaxVariableInputs=5 -MinVariableOutputs=5 -MaxVariableOutputs=5 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=Up -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=Down -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=Left -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=Right -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=OK -OutputSigType5=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=13 -CedH=13 -SmartObjId=10411d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=13 -Tp=1 -HD=TRUE -DV=10411d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=13 -Name=PepperDash Essentials iPad_[B.AV] Object - Dpad DVD_DVD DPad.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[B.AV] Source-Set Top Box Backer_CATV Keypad.ced -Hint=CATV Keypad (Smart Object ID=10014) -Code=14 -SGControlType=Simple Keypad -SGControlName=CATV Keypad -GUID=5E33D4F4-5C5F-430C-879A-AE82529B3943 -SmplCName=PepperDash Essentials iPad_[B.AV] Source-Set Top Box Backer_CATV Keypad.ced -SMWRev=4.02.19 -Expand=expand_random -HelpID=10061 -;Define the number of inputs, outputs and parameters -MinVariableInputs=12 -MaxVariableInputs=12 -MinVariableOutputs=12 -MaxVariableOutputs=12 -NumFixedParams=1 -MinVariableInputsList2=0 -MaxVariableInputsList2=0 -MinVariableOutputsList2=0 -MaxVariableOutputsList2=0 -MinVariableInputsList3=0 -MaxVariableInputsList3=0 -MinVariableOutputsList3=0 -MaxVariableOutputsList3=0 -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -OutputCue1=1 -OutputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -OutputCue2=2 -OutputSigType2=Digital -InputCue3=[~UNUSED3~] -InputSigType3=Digital -OutputCue3=3 -OutputSigType3=Digital -InputCue4=[~UNUSED3~] -InputSigType4=Digital -OutputCue4=4 -OutputSigType4=Digital -InputCue5=[~UNUSED3~] -InputSigType5=Digital -OutputCue5=5 -OutputSigType5=Digital -InputCue6=[~UNUSED3~] -InputSigType6=Digital -OutputCue6=6 -OutputSigType6=Digital -InputCue7=[~UNUSED3~] -InputSigType7=Digital -OutputCue7=7 -OutputSigType7=Digital -InputCue8=[~UNUSED3~] -InputSigType8=Digital -OutputCue8=8 -OutputSigType8=Digital -InputCue9=[~UNUSED3~] -InputSigType9=Digital -OutputCue9=9 -OutputSigType9=Digital -InputCue10=[~UNUSED3~] -InputSigType10=Digital -OutputCue10=0 -OutputSigType10=Digital -InputCue11=[~UNUSED3~] -InputSigType11=Digital -OutputCue11=Misc_1 -OutputSigType11=Digital -InputCue12=[~UNUSED3~] -InputSigType12=Digital -OutputCue12=Misc_2 -OutputSigType12=Digital -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=14 -CedH=14 -SmartObjId=10014d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=14 -Tp=1 -HD=TRUE -DV=10014d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=14 -Name=PepperDash Essentials iPad_[B.AV] Source-Set Top Box Backer_CATV Keypad.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[B.AV] Source-Set Top Box Backer_CATV Icon List Vertical.ced -Hint=CATV Icon List Vertical (Smart Object ID=3333) -Code=15 -SGControlType=Subpage Reference List Vertical -SGControlName=CATV Icon List Vertical -GUID=D6A79678-BAD2-4F6D-8104-A941FBA9432F -SmplCName=PepperDash Essentials iPad_[B.AV] Source-Set Top Box Backer_CATV Icon List Vertical.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4106 -MaxVariableInputs=4106 -MinVariableOutputs=4106 -MaxVariableOutputs=4106 -NumFixedParams=1 -MinVariableInputsList2=3 -MaxVariableInputsList2=3 -MinVariableOutputsList2=3 -MaxVariableOutputsList2=3 -MinVariableInputsList3=132 -MaxVariableInputsList3=132 -MinVariableOutputsList3=132 -MaxVariableOutputsList3=132 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=Item 13 Enable -InputSigType24=Digital -InputCue25=Item 14 Enable -InputSigType25=Digital -InputCue26=Item 15 Enable -InputSigType26=Digital -InputCue27=Item 16 Enable -InputSigType27=Digital -InputCue28=Item 17 Enable -InputSigType28=Digital -InputCue29=Item 18 Enable -InputSigType29=Digital -InputCue30=Item 19 Enable -InputSigType30=Digital -InputCue31=Item 20 Enable -InputSigType31=Digital -InputCue32=Item 21 Enable -InputSigType32=Digital -InputCue33=Item 22 Enable -InputSigType33=Digital -InputCue34=Item 23 Enable -InputSigType34=Digital -InputCue35=Item 24 Enable -InputSigType35=Digital -InputCue36=Item 25 Enable -InputSigType36=Digital -InputCue37=Item 26 Enable -InputSigType37=Digital -InputCue38=Item 27 Enable -InputSigType38=Digital -InputCue39=Item 28 Enable -InputSigType39=Digital -InputCue40=Item 29 Enable -InputSigType40=Digital -InputCue41=Item 30 Enable -InputSigType41=Digital -InputCue42=[~UNUSED2~] -InputSigType42=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=Item 13 Visible -InputSigType2026=Digital -InputCue2027=Item 14 Visible -InputSigType2027=Digital -InputCue2028=Item 15 Visible -InputSigType2028=Digital -InputCue2029=Item 16 Visible -InputSigType2029=Digital -InputCue2030=Item 17 Visible -InputSigType2030=Digital -InputCue2031=Item 18 Visible -InputSigType2031=Digital -InputCue2032=Item 19 Visible -InputSigType2032=Digital -InputCue2033=Item 20 Visible -InputSigType2033=Digital -InputCue2034=Item 21 Visible -InputSigType2034=Digital -InputCue2035=Item 22 Visible -InputSigType2035=Digital -InputCue2036=Item 23 Visible -InputSigType2036=Digital -InputCue2037=Item 24 Visible -InputSigType2037=Digital -InputCue2038=Item 25 Visible -InputSigType2038=Digital -InputCue2039=Item 26 Visible -InputSigType2039=Digital -InputCue2040=Item 27 Visible -InputSigType2040=Digital -InputCue2041=Item 28 Visible -InputSigType2041=Digital -InputCue2042=Item 29 Visible -InputSigType2042=Digital -InputCue2043=Item 30 Visible -InputSigType2043=Digital -InputCue2044=[~UNUSED2~] -InputSigType2044=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=fb61 -InputSigType4076=Digital -InputCue4077=fb62 -InputSigType4077=Digital -InputCue4078=fb63 -InputSigType4078=Digital -InputCue4079=fb64 -InputSigType4079=Digital -InputCue4080=fb65 -InputSigType4080=Digital -InputCue4081=fb66 -InputSigType4081=Digital -InputCue4082=fb67 -InputSigType4082=Digital -InputCue4083=fb68 -InputSigType4083=Digital -InputCue4084=fb69 -InputSigType4084=Digital -InputCue4085=fb70 -InputSigType4085=Digital -InputCue4086=fb71 -InputSigType4086=Digital -InputCue4087=fb72 -InputSigType4087=Digital -InputCue4088=fb73 -InputSigType4088=Digital -InputCue4089=fb74 -InputSigType4089=Digital -InputCue4090=fb75 -InputSigType4090=Digital -InputCue4091=fb76 -InputSigType4091=Digital -InputCue4092=fb77 -InputSigType4092=Digital -InputCue4093=fb78 -InputSigType4093=Digital -InputCue4094=fb79 -InputSigType4094=Digital -InputCue4095=fb80 -InputSigType4095=Digital -InputCue4096=fb81 -InputSigType4096=Digital -InputCue4097=fb82 -InputSigType4097=Digital -InputCue4098=fb83 -InputSigType4098=Digital -InputCue4099=fb84 -InputSigType4099=Digital -InputCue4100=fb85 -InputSigType4100=Digital -InputCue4101=fb86 -InputSigType4101=Digital -InputCue4102=fb87 -InputSigType4102=Digital -InputCue4103=fb88 -InputSigType4103=Digital -InputCue4104=fb89 -InputSigType4104=Digital -InputCue4105=fb90 -InputSigType4105=Digital -InputCue4106=[~EndGroup~]fb -InputSigType4106=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED3~] -OutputSigType24=Digital -OutputCue25=[~UNUSED3~] -OutputSigType25=Digital -OutputCue26=[~UNUSED3~] -OutputSigType26=Digital -OutputCue27=[~UNUSED3~] -OutputSigType27=Digital -OutputCue28=[~UNUSED3~] -OutputSigType28=Digital -OutputCue29=[~UNUSED3~] -OutputSigType29=Digital -OutputCue30=[~UNUSED3~] -OutputSigType30=Digital -OutputCue31=[~UNUSED3~] -OutputSigType31=Digital -OutputCue32=[~UNUSED3~] -OutputSigType32=Digital -OutputCue33=[~UNUSED3~] -OutputSigType33=Digital -OutputCue34=[~UNUSED3~] -OutputSigType34=Digital -OutputCue35=[~UNUSED3~] -OutputSigType35=Digital -OutputCue36=[~UNUSED3~] -OutputSigType36=Digital -OutputCue37=[~UNUSED3~] -OutputSigType37=Digital -OutputCue38=[~UNUSED3~] -OutputSigType38=Digital -OutputCue39=[~UNUSED3~] -OutputSigType39=Digital -OutputCue40=[~UNUSED3~] -OutputSigType40=Digital -OutputCue41=[~UNUSED3~] -OutputSigType41=Digital -OutputCue42=[~UNUSED2~] -OutputSigType42=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED3~] -OutputSigType2034=Digital -OutputCue2035=[~UNUSED3~] -OutputSigType2035=Digital -OutputCue2036=[~UNUSED3~] -OutputSigType2036=Digital -OutputCue2037=[~UNUSED3~] -OutputSigType2037=Digital -OutputCue2038=[~UNUSED3~] -OutputSigType2038=Digital -OutputCue2039=[~UNUSED3~] -OutputSigType2039=Digital -OutputCue2040=[~UNUSED3~] -OutputSigType2040=Digital -OutputCue2041=[~UNUSED3~] -OutputSigType2041=Digital -OutputCue2042=[~UNUSED3~] -OutputSigType2042=Digital -OutputCue2043=[~UNUSED3~] -OutputSigType2043=Digital -OutputCue2044=[~UNUSED2~] -OutputSigType2044=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=press61 -OutputSigType4076=Digital -OutputCue4077=press62 -OutputSigType4077=Digital -OutputCue4078=press63 -OutputSigType4078=Digital -OutputCue4079=press64 -OutputSigType4079=Digital -OutputCue4080=press65 -OutputSigType4080=Digital -OutputCue4081=press66 -OutputSigType4081=Digital -OutputCue4082=press67 -OutputSigType4082=Digital -OutputCue4083=press68 -OutputSigType4083=Digital -OutputCue4084=press69 -OutputSigType4084=Digital -OutputCue4085=press70 -OutputSigType4085=Digital -OutputCue4086=press71 -OutputSigType4086=Digital -OutputCue4087=press72 -OutputSigType4087=Digital -OutputCue4088=press73 -OutputSigType4088=Digital -OutputCue4089=press74 -OutputSigType4089=Digital -OutputCue4090=press75 -OutputSigType4090=Digital -OutputCue4091=press76 -OutputSigType4091=Digital -OutputCue4092=press77 -OutputSigType4092=Digital -OutputCue4093=press78 -OutputSigType4093=Digital -OutputCue4094=press79 -OutputSigType4094=Digital -OutputCue4095=press80 -OutputSigType4095=Digital -OutputCue4096=press81 -OutputSigType4096=Digital -OutputCue4097=press82 -OutputSigType4097=Digital -OutputCue4098=press83 -OutputSigType4098=Digital -OutputCue4099=press84 -OutputSigType4099=Digital -OutputCue4100=press85 -OutputSigType4100=Digital -OutputCue4101=press86 -OutputSigType4101=Digital -OutputCue4102=press87 -OutputSigType4102=Digital -OutputCue4103=press88 -OutputSigType4103=Digital -OutputCue4104=press89 -OutputSigType4104=Digital -OutputCue4105=press90 -OutputSigType4105=Digital -OutputCue4106=[~EndGroup~]Press -OutputSigType4106=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=text-o61 -InputList3SigType72=Serial -InputList3Cue73=text-o62 -InputList3SigType73=Serial -InputList3Cue74=text-o63 -InputList3SigType74=Serial -InputList3Cue75=text-o64 -InputList3SigType75=Serial -InputList3Cue76=text-o65 -InputList3SigType76=Serial -InputList3Cue77=text-o66 -InputList3SigType77=Serial -InputList3Cue78=text-o67 -InputList3SigType78=Serial -InputList3Cue79=text-o68 -InputList3SigType79=Serial -InputList3Cue80=text-o69 -InputList3SigType80=Serial -InputList3Cue81=text-o70 -InputList3SigType81=Serial -InputList3Cue82=text-o71 -InputList3SigType82=Serial -InputList3Cue83=text-o72 -InputList3SigType83=Serial -InputList3Cue84=text-o73 -InputList3SigType84=Serial -InputList3Cue85=text-o74 -InputList3SigType85=Serial -InputList3Cue86=text-o75 -InputList3SigType86=Serial -InputList3Cue87=text-o76 -InputList3SigType87=Serial -InputList3Cue88=text-o77 -InputList3SigType88=Serial -InputList3Cue89=text-o78 -InputList3SigType89=Serial -InputList3Cue90=text-o79 -InputList3SigType90=Serial -InputList3Cue91=text-o80 -InputList3SigType91=Serial -InputList3Cue92=text-o81 -InputList3SigType92=Serial -InputList3Cue93=text-o82 -InputList3SigType93=Serial -InputList3Cue94=text-o83 -InputList3SigType94=Serial -InputList3Cue95=text-o84 -InputList3SigType95=Serial -InputList3Cue96=text-o85 -InputList3SigType96=Serial -InputList3Cue97=text-o86 -InputList3SigType97=Serial -InputList3Cue98=text-o87 -InputList3SigType98=Serial -InputList3Cue99=text-o88 -InputList3SigType99=Serial -InputList3Cue100=text-o89 -InputList3SigType100=Serial -InputList3Cue101=text-o90 -InputList3SigType101=Serial -InputList3Cue102=text-o91 -InputList3SigType102=Serial -InputList3Cue103=text-o92 -InputList3SigType103=Serial -InputList3Cue104=text-o93 -InputList3SigType104=Serial -InputList3Cue105=text-o94 -InputList3SigType105=Serial -InputList3Cue106=text-o95 -InputList3SigType106=Serial -InputList3Cue107=text-o96 -InputList3SigType107=Serial -InputList3Cue108=text-o97 -InputList3SigType108=Serial -InputList3Cue109=text-o98 -InputList3SigType109=Serial -InputList3Cue110=text-o99 -InputList3SigType110=Serial -InputList3Cue111=text-o100 -InputList3SigType111=Serial -InputList3Cue112=text-o101 -InputList3SigType112=Serial -InputList3Cue113=text-o102 -InputList3SigType113=Serial -InputList3Cue114=text-o103 -InputList3SigType114=Serial -InputList3Cue115=text-o104 -InputList3SigType115=Serial -InputList3Cue116=text-o105 -InputList3SigType116=Serial -InputList3Cue117=text-o106 -InputList3SigType117=Serial -InputList3Cue118=text-o107 -InputList3SigType118=Serial -InputList3Cue119=text-o108 -InputList3SigType119=Serial -InputList3Cue120=text-o109 -InputList3SigType120=Serial -InputList3Cue121=text-o110 -InputList3SigType121=Serial -InputList3Cue122=text-o111 -InputList3SigType122=Serial -InputList3Cue123=text-o112 -InputList3SigType123=Serial -InputList3Cue124=text-o113 -InputList3SigType124=Serial -InputList3Cue125=text-o114 -InputList3SigType125=Serial -InputList3Cue126=text-o115 -InputList3SigType126=Serial -InputList3Cue127=text-o116 -InputList3SigType127=Serial -InputList3Cue128=text-o117 -InputList3SigType128=Serial -InputList3Cue129=text-o118 -InputList3SigType129=Serial -InputList3Cue130=text-o119 -InputList3SigType130=Serial -InputList3Cue131=text-o120 -InputList3SigType131=Serial -InputList3Cue132=[~EndGroup~]text-o -InputList3SigType132=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=text-i61 -OutputList3SigType72=Serial -OutputList3Cue73=text-i62 -OutputList3SigType73=Serial -OutputList3Cue74=text-i63 -OutputList3SigType74=Serial -OutputList3Cue75=text-i64 -OutputList3SigType75=Serial -OutputList3Cue76=text-i65 -OutputList3SigType76=Serial -OutputList3Cue77=text-i66 -OutputList3SigType77=Serial -OutputList3Cue78=text-i67 -OutputList3SigType78=Serial -OutputList3Cue79=text-i68 -OutputList3SigType79=Serial -OutputList3Cue80=text-i69 -OutputList3SigType80=Serial -OutputList3Cue81=text-i70 -OutputList3SigType81=Serial -OutputList3Cue82=text-i71 -OutputList3SigType82=Serial -OutputList3Cue83=text-i72 -OutputList3SigType83=Serial -OutputList3Cue84=text-i73 -OutputList3SigType84=Serial -OutputList3Cue85=text-i74 -OutputList3SigType85=Serial -OutputList3Cue86=text-i75 -OutputList3SigType86=Serial -OutputList3Cue87=text-i76 -OutputList3SigType87=Serial -OutputList3Cue88=text-i77 -OutputList3SigType88=Serial -OutputList3Cue89=text-i78 -OutputList3SigType89=Serial -OutputList3Cue90=text-i79 -OutputList3SigType90=Serial -OutputList3Cue91=text-i80 -OutputList3SigType91=Serial -OutputList3Cue92=text-i81 -OutputList3SigType92=Serial -OutputList3Cue93=text-i82 -OutputList3SigType93=Serial -OutputList3Cue94=text-i83 -OutputList3SigType94=Serial -OutputList3Cue95=text-i84 -OutputList3SigType95=Serial -OutputList3Cue96=text-i85 -OutputList3SigType96=Serial -OutputList3Cue97=text-i86 -OutputList3SigType97=Serial -OutputList3Cue98=text-i87 -OutputList3SigType98=Serial -OutputList3Cue99=text-i88 -OutputList3SigType99=Serial -OutputList3Cue100=text-i89 -OutputList3SigType100=Serial -OutputList3Cue101=text-i90 -OutputList3SigType101=Serial -OutputList3Cue102=text-i91 -OutputList3SigType102=Serial -OutputList3Cue103=text-i92 -OutputList3SigType103=Serial -OutputList3Cue104=text-i93 -OutputList3SigType104=Serial -OutputList3Cue105=text-i94 -OutputList3SigType105=Serial -OutputList3Cue106=text-i95 -OutputList3SigType106=Serial -OutputList3Cue107=text-i96 -OutputList3SigType107=Serial -OutputList3Cue108=text-i97 -OutputList3SigType108=Serial -OutputList3Cue109=text-i98 -OutputList3SigType109=Serial -OutputList3Cue110=text-i99 -OutputList3SigType110=Serial -OutputList3Cue111=text-i100 -OutputList3SigType111=Serial -OutputList3Cue112=text-i101 -OutputList3SigType112=Serial -OutputList3Cue113=text-i102 -OutputList3SigType113=Serial -OutputList3Cue114=text-i103 -OutputList3SigType114=Serial -OutputList3Cue115=text-i104 -OutputList3SigType115=Serial -OutputList3Cue116=text-i105 -OutputList3SigType116=Serial -OutputList3Cue117=text-i106 -OutputList3SigType117=Serial -OutputList3Cue118=text-i107 -OutputList3SigType118=Serial -OutputList3Cue119=text-i108 -OutputList3SigType119=Serial -OutputList3Cue120=text-i109 -OutputList3SigType120=Serial -OutputList3Cue121=text-i110 -OutputList3SigType121=Serial -OutputList3Cue122=text-i111 -OutputList3SigType122=Serial -OutputList3Cue123=text-i112 -OutputList3SigType123=Serial -OutputList3Cue124=text-i113 -OutputList3SigType124=Serial -OutputList3Cue125=text-i114 -OutputList3SigType125=Serial -OutputList3Cue126=text-i115 -OutputList3SigType126=Serial -OutputList3Cue127=text-i116 -OutputList3SigType127=Serial -OutputList3Cue128=text-i117 -OutputList3SigType128=Serial -OutputList3Cue129=text-i118 -OutputList3SigType129=Serial -OutputList3Cue130=text-i119 -OutputList3SigType130=Serial -OutputList3Cue131=text-i120 -OutputList3SigType131=Serial -OutputList3Cue132=[~EndGroup~]text-i -OutputList3SigType132=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=15 -CedH=15 -SmartObjId=3333d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=15 -Tp=1 -HD=TRUE -DV=3333d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=15 -Name=PepperDash Essentials iPad_[B.AV] Source-Set Top Box Backer_CATV Icon List Vertical.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[Z.Dialogs] Call List_Subpage Reference List Vertical_2.ced -Hint=Subpage Reference List Vertical_2 (Smart Object ID=1001) -Code=16 -SGControlType=Subpage Reference List Vertical -SGControlName=Subpage Reference List Vertical_2 -GUID=5F63F5C2-A987-4957-9243-C28805CE297E -SmplCName=PepperDash Essentials iPad_[Z.Dialogs] Call List_Subpage Reference List Vertical_2.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4116 -MaxVariableInputs=4116 -MinVariableOutputs=4116 -MaxVariableOutputs=4116 -NumFixedParams=1 -MinVariableInputsList2=112 -MaxVariableInputsList2=112 -MinVariableOutputsList2=112 -MaxVariableOutputsList2=112 -MinVariableInputsList3=112 -MaxVariableInputsList3=112 -MinVariableOutputsList3=112 -MaxVariableOutputsList3=112 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=Item 13 Enable -InputSigType24=Digital -InputCue25=Item 14 Enable -InputSigType25=Digital -InputCue26=Item 15 Enable -InputSigType26=Digital -InputCue27=Item 16 Enable -InputSigType27=Digital -InputCue28=Item 17 Enable -InputSigType28=Digital -InputCue29=Item 18 Enable -InputSigType29=Digital -InputCue30=Item 19 Enable -InputSigType30=Digital -InputCue31=Item 20 Enable -InputSigType31=Digital -InputCue32=[~UNUSED2~] -InputSigType32=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=Item 13 Visible -InputSigType2026=Digital -InputCue2027=Item 14 Visible -InputSigType2027=Digital -InputCue2028=Item 15 Visible -InputSigType2028=Digital -InputCue2029=Item 16 Visible -InputSigType2029=Digital -InputCue2030=Item 17 Visible -InputSigType2030=Digital -InputCue2031=Item 18 Visible -InputSigType2031=Digital -InputCue2032=Item 19 Visible -InputSigType2032=Digital -InputCue2033=Item 20 Visible -InputSigType2033=Digital -InputCue2034=[~UNUSED2~] -InputSigType2034=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=fb37 -InputSigType4052=Digital -InputCue4053=fb38 -InputSigType4053=Digital -InputCue4054=fb39 -InputSigType4054=Digital -InputCue4055=fb40 -InputSigType4055=Digital -InputCue4056=fb41 -InputSigType4056=Digital -InputCue4057=fb42 -InputSigType4057=Digital -InputCue4058=fb43 -InputSigType4058=Digital -InputCue4059=fb44 -InputSigType4059=Digital -InputCue4060=fb45 -InputSigType4060=Digital -InputCue4061=fb46 -InputSigType4061=Digital -InputCue4062=fb47 -InputSigType4062=Digital -InputCue4063=fb48 -InputSigType4063=Digital -InputCue4064=fb49 -InputSigType4064=Digital -InputCue4065=fb50 -InputSigType4065=Digital -InputCue4066=fb51 -InputSigType4066=Digital -InputCue4067=fb52 -InputSigType4067=Digital -InputCue4068=fb53 -InputSigType4068=Digital -InputCue4069=fb54 -InputSigType4069=Digital -InputCue4070=fb55 -InputSigType4070=Digital -InputCue4071=fb56 -InputSigType4071=Digital -InputCue4072=fb57 -InputSigType4072=Digital -InputCue4073=fb58 -InputSigType4073=Digital -InputCue4074=fb59 -InputSigType4074=Digital -InputCue4075=fb60 -InputSigType4075=Digital -InputCue4076=fb61 -InputSigType4076=Digital -InputCue4077=fb62 -InputSigType4077=Digital -InputCue4078=fb63 -InputSigType4078=Digital -InputCue4079=fb64 -InputSigType4079=Digital -InputCue4080=fb65 -InputSigType4080=Digital -InputCue4081=fb66 -InputSigType4081=Digital -InputCue4082=fb67 -InputSigType4082=Digital -InputCue4083=fb68 -InputSigType4083=Digital -InputCue4084=fb69 -InputSigType4084=Digital -InputCue4085=fb70 -InputSigType4085=Digital -InputCue4086=fb71 -InputSigType4086=Digital -InputCue4087=fb72 -InputSigType4087=Digital -InputCue4088=fb73 -InputSigType4088=Digital -InputCue4089=fb74 -InputSigType4089=Digital -InputCue4090=fb75 -InputSigType4090=Digital -InputCue4091=fb76 -InputSigType4091=Digital -InputCue4092=fb77 -InputSigType4092=Digital -InputCue4093=fb78 -InputSigType4093=Digital -InputCue4094=fb79 -InputSigType4094=Digital -InputCue4095=fb80 -InputSigType4095=Digital -InputCue4096=fb81 -InputSigType4096=Digital -InputCue4097=fb82 -InputSigType4097=Digital -InputCue4098=fb83 -InputSigType4098=Digital -InputCue4099=fb84 -InputSigType4099=Digital -InputCue4100=fb85 -InputSigType4100=Digital -InputCue4101=fb86 -InputSigType4101=Digital -InputCue4102=fb87 -InputSigType4102=Digital -InputCue4103=fb88 -InputSigType4103=Digital -InputCue4104=fb89 -InputSigType4104=Digital -InputCue4105=fb90 -InputSigType4105=Digital -InputCue4106=fb91 -InputSigType4106=Digital -InputCue4107=fb92 -InputSigType4107=Digital -InputCue4108=fb93 -InputSigType4108=Digital -InputCue4109=fb94 -InputSigType4109=Digital -InputCue4110=fb95 -InputSigType4110=Digital -InputCue4111=fb96 -InputSigType4111=Digital -InputCue4112=fb97 -InputSigType4112=Digital -InputCue4113=fb98 -InputSigType4113=Digital -InputCue4114=fb99 -InputSigType4114=Digital -InputCue4115=fb100 -InputSigType4115=Digital -InputCue4116=[~EndGroup~]fb -InputSigType4116=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED3~] -OutputSigType24=Digital -OutputCue25=[~UNUSED3~] -OutputSigType25=Digital -OutputCue26=[~UNUSED3~] -OutputSigType26=Digital -OutputCue27=[~UNUSED3~] -OutputSigType27=Digital -OutputCue28=[~UNUSED3~] -OutputSigType28=Digital -OutputCue29=[~UNUSED3~] -OutputSigType29=Digital -OutputCue30=[~UNUSED3~] -OutputSigType30=Digital -OutputCue31=[~UNUSED3~] -OutputSigType31=Digital -OutputCue32=[~UNUSED2~] -OutputSigType32=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED2~] -OutputSigType2034=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=press37 -OutputSigType4052=Digital -OutputCue4053=press38 -OutputSigType4053=Digital -OutputCue4054=press39 -OutputSigType4054=Digital -OutputCue4055=press40 -OutputSigType4055=Digital -OutputCue4056=press41 -OutputSigType4056=Digital -OutputCue4057=press42 -OutputSigType4057=Digital -OutputCue4058=press43 -OutputSigType4058=Digital -OutputCue4059=press44 -OutputSigType4059=Digital -OutputCue4060=press45 -OutputSigType4060=Digital -OutputCue4061=press46 -OutputSigType4061=Digital -OutputCue4062=press47 -OutputSigType4062=Digital -OutputCue4063=press48 -OutputSigType4063=Digital -OutputCue4064=press49 -OutputSigType4064=Digital -OutputCue4065=press50 -OutputSigType4065=Digital -OutputCue4066=press51 -OutputSigType4066=Digital -OutputCue4067=press52 -OutputSigType4067=Digital -OutputCue4068=press53 -OutputSigType4068=Digital -OutputCue4069=press54 -OutputSigType4069=Digital -OutputCue4070=press55 -OutputSigType4070=Digital -OutputCue4071=press56 -OutputSigType4071=Digital -OutputCue4072=press57 -OutputSigType4072=Digital -OutputCue4073=press58 -OutputSigType4073=Digital -OutputCue4074=press59 -OutputSigType4074=Digital -OutputCue4075=press60 -OutputSigType4075=Digital -OutputCue4076=press61 -OutputSigType4076=Digital -OutputCue4077=press62 -OutputSigType4077=Digital -OutputCue4078=press63 -OutputSigType4078=Digital -OutputCue4079=press64 -OutputSigType4079=Digital -OutputCue4080=press65 -OutputSigType4080=Digital -OutputCue4081=press66 -OutputSigType4081=Digital -OutputCue4082=press67 -OutputSigType4082=Digital -OutputCue4083=press68 -OutputSigType4083=Digital -OutputCue4084=press69 -OutputSigType4084=Digital -OutputCue4085=press70 -OutputSigType4085=Digital -OutputCue4086=press71 -OutputSigType4086=Digital -OutputCue4087=press72 -OutputSigType4087=Digital -OutputCue4088=press73 -OutputSigType4088=Digital -OutputCue4089=press74 -OutputSigType4089=Digital -OutputCue4090=press75 -OutputSigType4090=Digital -OutputCue4091=press76 -OutputSigType4091=Digital -OutputCue4092=press77 -OutputSigType4092=Digital -OutputCue4093=press78 -OutputSigType4093=Digital -OutputCue4094=press79 -OutputSigType4094=Digital -OutputCue4095=press80 -OutputSigType4095=Digital -OutputCue4096=press81 -OutputSigType4096=Digital -OutputCue4097=press82 -OutputSigType4097=Digital -OutputCue4098=press83 -OutputSigType4098=Digital -OutputCue4099=press84 -OutputSigType4099=Digital -OutputCue4100=press85 -OutputSigType4100=Digital -OutputCue4101=press86 -OutputSigType4101=Digital -OutputCue4102=press87 -OutputSigType4102=Digital -OutputCue4103=press88 -OutputSigType4103=Digital -OutputCue4104=press89 -OutputSigType4104=Digital -OutputCue4105=press90 -OutputSigType4105=Digital -OutputCue4106=press91 -OutputSigType4106=Digital -OutputCue4107=press92 -OutputSigType4107=Digital -OutputCue4108=press93 -OutputSigType4108=Digital -OutputCue4109=press94 -OutputSigType4109=Digital -OutputCue4110=press95 -OutputSigType4110=Digital -OutputCue4111=press96 -OutputSigType4111=Digital -OutputCue4112=press97 -OutputSigType4112=Digital -OutputCue4113=press98 -OutputSigType4113=Digital -OutputCue4114=press99 -OutputSigType4114=Digital -OutputCue4115=press100 -OutputSigType4115=Digital -OutputCue4116=[~EndGroup~]Press -OutputSigType4116=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=an_fb13 -InputList2SigType24=Analog -InputList2Cue25=an_fb14 -InputList2SigType25=Analog -InputList2Cue26=an_fb15 -InputList2SigType26=Analog -InputList2Cue27=an_fb16 -InputList2SigType27=Analog -InputList2Cue28=an_fb17 -InputList2SigType28=Analog -InputList2Cue29=an_fb18 -InputList2SigType29=Analog -InputList2Cue30=an_fb19 -InputList2SigType30=Analog -InputList2Cue31=an_fb20 -InputList2SigType31=Analog -InputList2Cue32=an_fb21 -InputList2SigType32=Analog -InputList2Cue33=an_fb22 -InputList2SigType33=Analog -InputList2Cue34=an_fb23 -InputList2SigType34=Analog -InputList2Cue35=an_fb24 -InputList2SigType35=Analog -InputList2Cue36=an_fb25 -InputList2SigType36=Analog -InputList2Cue37=an_fb26 -InputList2SigType37=Analog -InputList2Cue38=an_fb27 -InputList2SigType38=Analog -InputList2Cue39=an_fb28 -InputList2SigType39=Analog -InputList2Cue40=an_fb29 -InputList2SigType40=Analog -InputList2Cue41=an_fb30 -InputList2SigType41=Analog -InputList2Cue42=an_fb31 -InputList2SigType42=Analog -InputList2Cue43=an_fb32 -InputList2SigType43=Analog -InputList2Cue44=an_fb33 -InputList2SigType44=Analog -InputList2Cue45=an_fb34 -InputList2SigType45=Analog -InputList2Cue46=an_fb35 -InputList2SigType46=Analog -InputList2Cue47=an_fb36 -InputList2SigType47=Analog -InputList2Cue48=an_fb37 -InputList2SigType48=Analog -InputList2Cue49=an_fb38 -InputList2SigType49=Analog -InputList2Cue50=an_fb39 -InputList2SigType50=Analog -InputList2Cue51=an_fb40 -InputList2SigType51=Analog -InputList2Cue52=an_fb41 -InputList2SigType52=Analog -InputList2Cue53=an_fb42 -InputList2SigType53=Analog -InputList2Cue54=an_fb43 -InputList2SigType54=Analog -InputList2Cue55=an_fb44 -InputList2SigType55=Analog -InputList2Cue56=an_fb45 -InputList2SigType56=Analog -InputList2Cue57=an_fb46 -InputList2SigType57=Analog -InputList2Cue58=an_fb47 -InputList2SigType58=Analog -InputList2Cue59=an_fb48 -InputList2SigType59=Analog -InputList2Cue60=an_fb49 -InputList2SigType60=Analog -InputList2Cue61=an_fb50 -InputList2SigType61=Analog -InputList2Cue62=an_fb51 -InputList2SigType62=Analog -InputList2Cue63=an_fb52 -InputList2SigType63=Analog -InputList2Cue64=an_fb53 -InputList2SigType64=Analog -InputList2Cue65=an_fb54 -InputList2SigType65=Analog -InputList2Cue66=an_fb55 -InputList2SigType66=Analog -InputList2Cue67=an_fb56 -InputList2SigType67=Analog -InputList2Cue68=an_fb57 -InputList2SigType68=Analog -InputList2Cue69=an_fb58 -InputList2SigType69=Analog -InputList2Cue70=an_fb59 -InputList2SigType70=Analog -InputList2Cue71=an_fb60 -InputList2SigType71=Analog -InputList2Cue72=an_fb61 -InputList2SigType72=Analog -InputList2Cue73=an_fb62 -InputList2SigType73=Analog -InputList2Cue74=an_fb63 -InputList2SigType74=Analog -InputList2Cue75=an_fb64 -InputList2SigType75=Analog -InputList2Cue76=an_fb65 -InputList2SigType76=Analog -InputList2Cue77=an_fb66 -InputList2SigType77=Analog -InputList2Cue78=an_fb67 -InputList2SigType78=Analog -InputList2Cue79=an_fb68 -InputList2SigType79=Analog -InputList2Cue80=an_fb69 -InputList2SigType80=Analog -InputList2Cue81=an_fb70 -InputList2SigType81=Analog -InputList2Cue82=an_fb71 -InputList2SigType82=Analog -InputList2Cue83=an_fb72 -InputList2SigType83=Analog -InputList2Cue84=an_fb73 -InputList2SigType84=Analog -InputList2Cue85=an_fb74 -InputList2SigType85=Analog -InputList2Cue86=an_fb75 -InputList2SigType86=Analog -InputList2Cue87=an_fb76 -InputList2SigType87=Analog -InputList2Cue88=an_fb77 -InputList2SigType88=Analog -InputList2Cue89=an_fb78 -InputList2SigType89=Analog -InputList2Cue90=an_fb79 -InputList2SigType90=Analog -InputList2Cue91=an_fb80 -InputList2SigType91=Analog -InputList2Cue92=an_fb81 -InputList2SigType92=Analog -InputList2Cue93=an_fb82 -InputList2SigType93=Analog -InputList2Cue94=an_fb83 -InputList2SigType94=Analog -InputList2Cue95=an_fb84 -InputList2SigType95=Analog -InputList2Cue96=an_fb85 -InputList2SigType96=Analog -InputList2Cue97=an_fb86 -InputList2SigType97=Analog -InputList2Cue98=an_fb87 -InputList2SigType98=Analog -InputList2Cue99=an_fb88 -InputList2SigType99=Analog -InputList2Cue100=an_fb89 -InputList2SigType100=Analog -InputList2Cue101=an_fb90 -InputList2SigType101=Analog -InputList2Cue102=an_fb91 -InputList2SigType102=Analog -InputList2Cue103=an_fb92 -InputList2SigType103=Analog -InputList2Cue104=an_fb93 -InputList2SigType104=Analog -InputList2Cue105=an_fb94 -InputList2SigType105=Analog -InputList2Cue106=an_fb95 -InputList2SigType106=Analog -InputList2Cue107=an_fb96 -InputList2SigType107=Analog -InputList2Cue108=an_fb97 -InputList2SigType108=Analog -InputList2Cue109=an_fb98 -InputList2SigType109=Analog -InputList2Cue110=an_fb99 -InputList2SigType110=Analog -InputList2Cue111=an_fb100 -InputList2SigType111=Analog -InputList2Cue112=[~EndGroup~]an_fb -InputList2SigType112=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=an_act13 -OutputList2SigType24=Analog -OutputList2Cue25=an_act14 -OutputList2SigType25=Analog -OutputList2Cue26=an_act15 -OutputList2SigType26=Analog -OutputList2Cue27=an_act16 -OutputList2SigType27=Analog -OutputList2Cue28=an_act17 -OutputList2SigType28=Analog -OutputList2Cue29=an_act18 -OutputList2SigType29=Analog -OutputList2Cue30=an_act19 -OutputList2SigType30=Analog -OutputList2Cue31=an_act20 -OutputList2SigType31=Analog -OutputList2Cue32=an_act21 -OutputList2SigType32=Analog -OutputList2Cue33=an_act22 -OutputList2SigType33=Analog -OutputList2Cue34=an_act23 -OutputList2SigType34=Analog -OutputList2Cue35=an_act24 -OutputList2SigType35=Analog -OutputList2Cue36=an_act25 -OutputList2SigType36=Analog -OutputList2Cue37=an_act26 -OutputList2SigType37=Analog -OutputList2Cue38=an_act27 -OutputList2SigType38=Analog -OutputList2Cue39=an_act28 -OutputList2SigType39=Analog -OutputList2Cue40=an_act29 -OutputList2SigType40=Analog -OutputList2Cue41=an_act30 -OutputList2SigType41=Analog -OutputList2Cue42=an_act31 -OutputList2SigType42=Analog -OutputList2Cue43=an_act32 -OutputList2SigType43=Analog -OutputList2Cue44=an_act33 -OutputList2SigType44=Analog -OutputList2Cue45=an_act34 -OutputList2SigType45=Analog -OutputList2Cue46=an_act35 -OutputList2SigType46=Analog -OutputList2Cue47=an_act36 -OutputList2SigType47=Analog -OutputList2Cue48=an_act37 -OutputList2SigType48=Analog -OutputList2Cue49=an_act38 -OutputList2SigType49=Analog -OutputList2Cue50=an_act39 -OutputList2SigType50=Analog -OutputList2Cue51=an_act40 -OutputList2SigType51=Analog -OutputList2Cue52=an_act41 -OutputList2SigType52=Analog -OutputList2Cue53=an_act42 -OutputList2SigType53=Analog -OutputList2Cue54=an_act43 -OutputList2SigType54=Analog -OutputList2Cue55=an_act44 -OutputList2SigType55=Analog -OutputList2Cue56=an_act45 -OutputList2SigType56=Analog -OutputList2Cue57=an_act46 -OutputList2SigType57=Analog -OutputList2Cue58=an_act47 -OutputList2SigType58=Analog -OutputList2Cue59=an_act48 -OutputList2SigType59=Analog -OutputList2Cue60=an_act49 -OutputList2SigType60=Analog -OutputList2Cue61=an_act50 -OutputList2SigType61=Analog -OutputList2Cue62=an_act51 -OutputList2SigType62=Analog -OutputList2Cue63=an_act52 -OutputList2SigType63=Analog -OutputList2Cue64=an_act53 -OutputList2SigType64=Analog -OutputList2Cue65=an_act54 -OutputList2SigType65=Analog -OutputList2Cue66=an_act55 -OutputList2SigType66=Analog -OutputList2Cue67=an_act56 -OutputList2SigType67=Analog -OutputList2Cue68=an_act57 -OutputList2SigType68=Analog -OutputList2Cue69=an_act58 -OutputList2SigType69=Analog -OutputList2Cue70=an_act59 -OutputList2SigType70=Analog -OutputList2Cue71=an_act60 -OutputList2SigType71=Analog -OutputList2Cue72=an_act61 -OutputList2SigType72=Analog -OutputList2Cue73=an_act62 -OutputList2SigType73=Analog -OutputList2Cue74=an_act63 -OutputList2SigType74=Analog -OutputList2Cue75=an_act64 -OutputList2SigType75=Analog -OutputList2Cue76=an_act65 -OutputList2SigType76=Analog -OutputList2Cue77=an_act66 -OutputList2SigType77=Analog -OutputList2Cue78=an_act67 -OutputList2SigType78=Analog -OutputList2Cue79=an_act68 -OutputList2SigType79=Analog -OutputList2Cue80=an_act69 -OutputList2SigType80=Analog -OutputList2Cue81=an_act70 -OutputList2SigType81=Analog -OutputList2Cue82=an_act71 -OutputList2SigType82=Analog -OutputList2Cue83=an_act72 -OutputList2SigType83=Analog -OutputList2Cue84=an_act73 -OutputList2SigType84=Analog -OutputList2Cue85=an_act74 -OutputList2SigType85=Analog -OutputList2Cue86=an_act75 -OutputList2SigType86=Analog -OutputList2Cue87=an_act76 -OutputList2SigType87=Analog -OutputList2Cue88=an_act77 -OutputList2SigType88=Analog -OutputList2Cue89=an_act78 -OutputList2SigType89=Analog -OutputList2Cue90=an_act79 -OutputList2SigType90=Analog -OutputList2Cue91=an_act80 -OutputList2SigType91=Analog -OutputList2Cue92=an_act81 -OutputList2SigType92=Analog -OutputList2Cue93=an_act82 -OutputList2SigType93=Analog -OutputList2Cue94=an_act83 -OutputList2SigType94=Analog -OutputList2Cue95=an_act84 -OutputList2SigType95=Analog -OutputList2Cue96=an_act85 -OutputList2SigType96=Analog -OutputList2Cue97=an_act86 -OutputList2SigType97=Analog -OutputList2Cue98=an_act87 -OutputList2SigType98=Analog -OutputList2Cue99=an_act88 -OutputList2SigType99=Analog -OutputList2Cue100=an_act89 -OutputList2SigType100=Analog -OutputList2Cue101=an_act90 -OutputList2SigType101=Analog -OutputList2Cue102=an_act91 -OutputList2SigType102=Analog -OutputList2Cue103=an_act92 -OutputList2SigType103=Analog -OutputList2Cue104=an_act93 -OutputList2SigType104=Analog -OutputList2Cue105=an_act94 -OutputList2SigType105=Analog -OutputList2Cue106=an_act95 -OutputList2SigType106=Analog -OutputList2Cue107=an_act96 -OutputList2SigType107=Analog -OutputList2Cue108=an_act97 -OutputList2SigType108=Analog -OutputList2Cue109=an_act98 -OutputList2SigType109=Analog -OutputList2Cue110=an_act99 -OutputList2SigType110=Analog -OutputList2Cue111=an_act100 -OutputList2SigType111=Analog -OutputList2Cue112=[~EndGroup~]an_act -OutputList2SigType112=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=text-o61 -InputList3SigType72=Serial -InputList3Cue73=text-o62 -InputList3SigType73=Serial -InputList3Cue74=text-o63 -InputList3SigType74=Serial -InputList3Cue75=text-o64 -InputList3SigType75=Serial -InputList3Cue76=text-o65 -InputList3SigType76=Serial -InputList3Cue77=text-o66 -InputList3SigType77=Serial -InputList3Cue78=text-o67 -InputList3SigType78=Serial -InputList3Cue79=text-o68 -InputList3SigType79=Serial -InputList3Cue80=text-o69 -InputList3SigType80=Serial -InputList3Cue81=text-o70 -InputList3SigType81=Serial -InputList3Cue82=text-o71 -InputList3SigType82=Serial -InputList3Cue83=text-o72 -InputList3SigType83=Serial -InputList3Cue84=text-o73 -InputList3SigType84=Serial -InputList3Cue85=text-o74 -InputList3SigType85=Serial -InputList3Cue86=text-o75 -InputList3SigType86=Serial -InputList3Cue87=text-o76 -InputList3SigType87=Serial -InputList3Cue88=text-o77 -InputList3SigType88=Serial -InputList3Cue89=text-o78 -InputList3SigType89=Serial -InputList3Cue90=text-o79 -InputList3SigType90=Serial -InputList3Cue91=text-o80 -InputList3SigType91=Serial -InputList3Cue92=text-o81 -InputList3SigType92=Serial -InputList3Cue93=text-o82 -InputList3SigType93=Serial -InputList3Cue94=text-o83 -InputList3SigType94=Serial -InputList3Cue95=text-o84 -InputList3SigType95=Serial -InputList3Cue96=text-o85 -InputList3SigType96=Serial -InputList3Cue97=text-o86 -InputList3SigType97=Serial -InputList3Cue98=text-o87 -InputList3SigType98=Serial -InputList3Cue99=text-o88 -InputList3SigType99=Serial -InputList3Cue100=text-o89 -InputList3SigType100=Serial -InputList3Cue101=text-o90 -InputList3SigType101=Serial -InputList3Cue102=text-o91 -InputList3SigType102=Serial -InputList3Cue103=text-o92 -InputList3SigType103=Serial -InputList3Cue104=text-o93 -InputList3SigType104=Serial -InputList3Cue105=text-o94 -InputList3SigType105=Serial -InputList3Cue106=text-o95 -InputList3SigType106=Serial -InputList3Cue107=text-o96 -InputList3SigType107=Serial -InputList3Cue108=text-o97 -InputList3SigType108=Serial -InputList3Cue109=text-o98 -InputList3SigType109=Serial -InputList3Cue110=text-o99 -InputList3SigType110=Serial -InputList3Cue111=text-o100 -InputList3SigType111=Serial -InputList3Cue112=[~EndGroup~]text-o -InputList3SigType112=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=text-i61 -OutputList3SigType72=Serial -OutputList3Cue73=text-i62 -OutputList3SigType73=Serial -OutputList3Cue74=text-i63 -OutputList3SigType74=Serial -OutputList3Cue75=text-i64 -OutputList3SigType75=Serial -OutputList3Cue76=text-i65 -OutputList3SigType76=Serial -OutputList3Cue77=text-i66 -OutputList3SigType77=Serial -OutputList3Cue78=text-i67 -OutputList3SigType78=Serial -OutputList3Cue79=text-i68 -OutputList3SigType79=Serial -OutputList3Cue80=text-i69 -OutputList3SigType80=Serial -OutputList3Cue81=text-i70 -OutputList3SigType81=Serial -OutputList3Cue82=text-i71 -OutputList3SigType82=Serial -OutputList3Cue83=text-i72 -OutputList3SigType83=Serial -OutputList3Cue84=text-i73 -OutputList3SigType84=Serial -OutputList3Cue85=text-i74 -OutputList3SigType85=Serial -OutputList3Cue86=text-i75 -OutputList3SigType86=Serial -OutputList3Cue87=text-i76 -OutputList3SigType87=Serial -OutputList3Cue88=text-i77 -OutputList3SigType88=Serial -OutputList3Cue89=text-i78 -OutputList3SigType89=Serial -OutputList3Cue90=text-i79 -OutputList3SigType90=Serial -OutputList3Cue91=text-i80 -OutputList3SigType91=Serial -OutputList3Cue92=text-i81 -OutputList3SigType92=Serial -OutputList3Cue93=text-i82 -OutputList3SigType93=Serial -OutputList3Cue94=text-i83 -OutputList3SigType94=Serial -OutputList3Cue95=text-i84 -OutputList3SigType95=Serial -OutputList3Cue96=text-i85 -OutputList3SigType96=Serial -OutputList3Cue97=text-i86 -OutputList3SigType97=Serial -OutputList3Cue98=text-i87 -OutputList3SigType98=Serial -OutputList3Cue99=text-i88 -OutputList3SigType99=Serial -OutputList3Cue100=text-i89 -OutputList3SigType100=Serial -OutputList3Cue101=text-i90 -OutputList3SigType101=Serial -OutputList3Cue102=text-i91 -OutputList3SigType102=Serial -OutputList3Cue103=text-i92 -OutputList3SigType103=Serial -OutputList3Cue104=text-i93 -OutputList3SigType104=Serial -OutputList3Cue105=text-i94 -OutputList3SigType105=Serial -OutputList3Cue106=text-i95 -OutputList3SigType106=Serial -OutputList3Cue107=text-i96 -OutputList3SigType107=Serial -OutputList3Cue108=text-i97 -OutputList3SigType108=Serial -OutputList3Cue109=text-i98 -OutputList3SigType109=Serial -OutputList3Cue110=text-i99 -OutputList3SigType110=Serial -OutputList3Cue111=text-i100 -OutputList3SigType111=Serial -OutputList3Cue112=[~EndGroup~]text-i -OutputList3SigType112=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=16 -CedH=16 -SmartObjId=1001d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=16 -Tp=1 -HD=TRUE -DV=1001d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=16 -Name=PepperDash Essentials iPad_[Z.Dialogs] Call List_Subpage Reference List Vertical_2.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[E.Technician Controls] Menu_Dynamic Button List Vertical.ced -Hint=Dynamic Button List Vertical (Smart Object ID=3901) -Code=17 -SGControlType=Dynamic Button List Vertical -SGControlName=Dynamic Button List Vertical -GUID=15B95903-FB30-472E-9D10-82A9C3A9D7C7 -SmplCName=PepperDash Essentials iPad_[E.Technician Controls] Menu_Dynamic Button List Vertical.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10112 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=6016 -MaxVariableInputs=6016 -MinVariableOutputs=6016 -MaxVariableOutputs=6016 -NumFixedParams=1 -MinVariableInputsList2=2012 -MaxVariableInputsList2=2012 -MinVariableOutputsList2=2012 -MaxVariableOutputsList2=2012 -MinVariableInputsList3=4014 -MaxVariableInputsList3=4014 -MinVariableOutputsList3=4014 -MaxVariableOutputsList3=4014 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=Disable Redraw -InputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Press -InputSigType11=Digital -InputCue12=Item 1 Selected -InputSigType12=Digital -InputCue13=Item 2 Selected -InputSigType13=Digital -InputCue14=Item 3 Selected -InputSigType14=Digital -InputCue15=Item 4 Selected -InputSigType15=Digital -InputCue16=Item 5 Selected -InputSigType16=Digital -InputCue17=Item 6 Selected -InputSigType17=Digital -InputCue18=Item 7 Selected -InputSigType18=Digital -InputCue19=Item 8 Selected -InputSigType19=Digital -InputCue20=Item 9 Selected -InputSigType20=Digital -InputCue21=Item 10 Selected -InputSigType21=Digital -InputCue22=[~UNUSED2~] -InputSigType22=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Press -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Enable -InputSigType2013=Digital -InputCue2014=Item 1 Enabled -InputSigType2014=Digital -InputCue2015=Item 2 Enabled -InputSigType2015=Digital -InputCue2016=Item 3 Enabled -InputSigType2016=Digital -InputCue2017=Item 4 Enabled -InputSigType2017=Digital -InputCue2018=Item 5 Enabled -InputSigType2018=Digital -InputCue2019=Item 6 Enabled -InputSigType2019=Digital -InputCue2020=Item 7 Enabled -InputSigType2020=Digital -InputCue2021=Item 8 Enabled -InputSigType2021=Digital -InputCue2022=Item 9 Enabled -InputSigType2022=Digital -InputCue2023=Item 10 Enabled -InputSigType2023=Digital -InputCue2024=[~UNUSED2~] -InputSigType2024=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Enable -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]Visible -InputSigType4015=Digital -InputCue4016=Item 1 Visible -InputSigType4016=Digital -InputCue4017=Item 2 Visible -InputSigType4017=Digital -InputCue4018=Item 3 Visible -InputSigType4018=Digital -InputCue4019=Item 4 Visible -InputSigType4019=Digital -InputCue4020=Item 5 Visible -InputSigType4020=Digital -InputCue4021=Item 6 Visible -InputSigType4021=Digital -InputCue4022=Item 7 Visible -InputSigType4022=Digital -InputCue4023=Item 8 Visible -InputSigType4023=Digital -InputCue4024=Item 9 Visible -InputSigType4024=Digital -InputCue4025=Item 10 Visible -InputSigType4025=Digital -InputCue4026=[~UNUSED2~] -InputSigType4026=Digital|Analog|Serial|String -InputCue6016=[~EndGroup~]Visible -InputSigType6016=Digital -OutputCue1=[~UNUSED3~] -OutputSigType1=Digital -OutputCue2=Is Moving -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Press -OutputSigType11=Digital -OutputCue12=Item 1 Pressed -OutputSigType12=Digital -OutputCue13=Item 2 Pressed -OutputSigType13=Digital -OutputCue14=Item 3 Pressed -OutputSigType14=Digital -OutputCue15=Item 4 Pressed -OutputSigType15=Digital -OutputCue16=Item 5 Pressed -OutputSigType16=Digital -OutputCue17=Item 6 Pressed -OutputSigType17=Digital -OutputCue18=Item 7 Pressed -OutputSigType18=Digital -OutputCue19=Item 8 Pressed -OutputSigType19=Digital -OutputCue20=Item 9 Pressed -OutputSigType20=Digital -OutputCue21=Item 10 Pressed -OutputSigType21=Digital -OutputCue22=[~UNUSED2~] -OutputSigType22=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Press -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Enable -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED2~] -OutputSigType2024=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Enable -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Visible -OutputSigType4015=Digital -OutputCue4016=[~UNUSED3~] -OutputSigType4016=Digital -OutputCue4017=[~UNUSED3~] -OutputSigType4017=Digital -OutputCue4018=[~UNUSED3~] -OutputSigType4018=Digital -OutputCue4019=[~UNUSED3~] -OutputSigType4019=Digital -OutputCue4020=[~UNUSED3~] -OutputSigType4020=Digital -OutputCue4021=[~UNUSED3~] -OutputSigType4021=Digital -OutputCue4022=[~UNUSED3~] -OutputSigType4022=Digital -OutputCue4023=[~UNUSED3~] -OutputSigType4023=Digital -OutputCue4024=[~UNUSED3~] -OutputSigType4024=Digital -OutputCue4025=[~UNUSED3~] -OutputSigType4025=Digital -OutputCue4026=[~UNUSED2~] -OutputSigType4026=Digital|Analog|Serial|String -OutputCue6016=[~EndGroup~]Visible -OutputSigType6016=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=[~UNUSED3~] -InputList2SigType2=Analog -InputList2Cue3=Scroll To Item -InputList2SigType3=Analog -InputList2Cue4=Set Number of Items -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]Item Icons -InputList2SigType11=Analog -InputList2Cue12=Set Item 1 Icon Analog -InputList2SigType12=Analog -InputList2Cue13=Set Item 2 Icon Analog -InputList2SigType13=Analog -InputList2Cue14=Set Item 3 Icon Analog -InputList2SigType14=Analog -InputList2Cue15=Set Item 4 Icon Analog -InputList2SigType15=Analog -InputList2Cue16=Set Item 5 Icon Analog -InputList2SigType16=Analog -InputList2Cue17=Set Item 6 Icon Analog -InputList2SigType17=Analog -InputList2Cue18=Set Item 7 Icon Analog -InputList2SigType18=Analog -InputList2Cue19=Set Item 8 Icon Analog -InputList2SigType19=Analog -InputList2Cue20=Set Item 9 Icon Analog -InputList2SigType20=Analog -InputList2Cue21=Set Item 10 Icon Analog -InputList2SigType21=Analog -InputList2Cue22=[~UNUSED2~] -InputList2SigType22=Digital|Analog|Serial|String -InputList2Cue2012=[~EndGroup~]Item Icons -InputList2SigType2012=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=Item Held -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED3~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]Item Icons -OutputList2SigType11=Analog -OutputList2Cue12=[~UNUSED3~] -OutputList2SigType12=Analog -OutputList2Cue13=[~UNUSED3~] -OutputList2SigType13=Analog -OutputList2Cue14=[~UNUSED3~] -OutputList2SigType14=Analog -OutputList2Cue15=[~UNUSED3~] -OutputList2SigType15=Analog -OutputList2Cue16=[~UNUSED3~] -OutputList2SigType16=Analog -OutputList2Cue17=[~UNUSED3~] -OutputList2SigType17=Analog -OutputList2Cue18=[~UNUSED3~] -OutputList2SigType18=Analog -OutputList2Cue19=[~UNUSED3~] -OutputList2SigType19=Analog -OutputList2Cue20=[~UNUSED3~] -OutputList2SigType20=Analog -OutputList2Cue21=[~UNUSED3~] -OutputList2SigType21=Analog -OutputList2Cue22=[~UNUSED2~] -OutputList2SigType22=Digital|Analog|Serial|String -OutputList2Cue2012=[~EndGroup~]Item Icons -OutputList2SigType2012=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]Item Texts -InputList3SigType11=Serial -InputList3Cue12=Set Item 1 Text -InputList3SigType12=Serial -InputList3Cue13=Set Item 2 Text -InputList3SigType13=Serial -InputList3Cue14=Set Item 3 Text -InputList3SigType14=Serial -InputList3Cue15=Set Item 4 Text -InputList3SigType15=Serial -InputList3Cue16=Set Item 5 Text -InputList3SigType16=Serial -InputList3Cue17=Set Item 6 Text -InputList3SigType17=Serial -InputList3Cue18=Set Item 7 Text -InputList3SigType18=Serial -InputList3Cue19=Set Item 8 Text -InputList3SigType19=Serial -InputList3Cue20=Set Item 9 Text -InputList3SigType20=Serial -InputList3Cue21=Set Item 10 Text -InputList3SigType21=Serial -InputList3Cue22=[~UNUSED2~] -InputList3SigType22=Digital|Analog|Serial|String -InputList3Cue2012=[~EndGroup~]Item Texts -InputList3SigType2012=Serial -InputList3Cue2013=[~BeginGroup~]Item Icons -InputList3SigType2013=Serial -InputList3Cue2014=Set Item 1 Icon Serial -InputList3SigType2014=Serial -InputList3Cue2015=Set Item 2 Icon Serial -InputList3SigType2015=Serial -InputList3Cue2016=Set Item 3 Icon Serial -InputList3SigType2016=Serial -InputList3Cue2017=Set Item 4 Icon Serial -InputList3SigType2017=Serial -InputList3Cue2018=Set Item 5 Icon Serial -InputList3SigType2018=Serial -InputList3Cue2019=Set Item 6 Icon Serial -InputList3SigType2019=Serial -InputList3Cue2020=Set Item 7 Icon Serial -InputList3SigType2020=Serial -InputList3Cue2021=Set Item 8 Icon Serial -InputList3SigType2021=Serial -InputList3Cue2022=Set Item 9 Icon Serial -InputList3SigType2022=Serial -InputList3Cue2023=Set Item 10 Icon Serial -InputList3SigType2023=Serial -InputList3Cue2024=[~UNUSED2~] -InputList3SigType2024=Digital|Analog|Serial|String -InputList3Cue4014=[~EndGroup~]Item Icons -InputList3SigType4014=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]Item Texts -OutputList3SigType11=Serial -OutputList3Cue12=[~UNUSED3~] -OutputList3SigType12=Serial -OutputList3Cue13=[~UNUSED3~] -OutputList3SigType13=Serial -OutputList3Cue14=[~UNUSED3~] -OutputList3SigType14=Serial -OutputList3Cue15=[~UNUSED3~] -OutputList3SigType15=Serial -OutputList3Cue16=[~UNUSED3~] -OutputList3SigType16=Serial -OutputList3Cue17=[~UNUSED3~] -OutputList3SigType17=Serial -OutputList3Cue18=[~UNUSED3~] -OutputList3SigType18=Serial -OutputList3Cue19=[~UNUSED3~] -OutputList3SigType19=Serial -OutputList3Cue20=[~UNUSED3~] -OutputList3SigType20=Serial -OutputList3Cue21=[~UNUSED3~] -OutputList3SigType21=Serial -OutputList3Cue22=[~UNUSED2~] -OutputList3SigType22=Digital|Analog|Serial|String -OutputList3Cue2012=[~EndGroup~]Item Texts -OutputList3SigType2012=Serial -OutputList3Cue2013=[~BeginGroup~]Item Icons -OutputList3SigType2013=Serial -OutputList3Cue2014=[~UNUSED3~] -OutputList3SigType2014=Serial -OutputList3Cue2015=[~UNUSED3~] -OutputList3SigType2015=Serial -OutputList3Cue2016=[~UNUSED3~] -OutputList3SigType2016=Serial -OutputList3Cue2017=[~UNUSED3~] -OutputList3SigType2017=Serial -OutputList3Cue2018=[~UNUSED3~] -OutputList3SigType2018=Serial -OutputList3Cue2019=[~UNUSED3~] -OutputList3SigType2019=Serial -OutputList3Cue2020=[~UNUSED3~] -OutputList3SigType2020=Serial -OutputList3Cue2021=[~UNUSED3~] -OutputList3SigType2021=Serial -OutputList3Cue2022=[~UNUSED3~] -OutputList3SigType2022=Serial -OutputList3Cue2023=[~UNUSED3~] -OutputList3SigType2023=Serial -OutputList3Cue2024=[~UNUSED2~] -OutputList3SigType2024=Digital|Analog|Serial|String -OutputList3Cue4014=[~EndGroup~]Item Icons -OutputList3SigType4014=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=17 -CedH=17 -SmartObjId=3901d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=17 -Tp=1 -HD=TRUE -DV=3901d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=17 -Name=PepperDash Essentials iPad_[E.Technician Controls] Menu_Dynamic Button List Vertical.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[Z.Dialogs] Schedule List_Subpage Reference List Vertical.ced -Hint=Subpage Reference List Vertical (Smart Object ID=15023) -Code=18 -SGControlType=Subpage Reference List Vertical -SGControlName=Subpage Reference List Vertical -GUID=EC6E6B35-F033-4F14-9465-FEEBE20455CC -SmplCName=PepperDash Essentials iPad_[Z.Dialogs] Schedule List_Subpage Reference List Vertical.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10125 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=4052 -MaxVariableInputs=4052 -MinVariableOutputs=4052 -MaxVariableOutputs=4052 -NumFixedParams=1 -MinVariableInputsList2=48 -MaxVariableInputsList2=48 -MinVariableOutputsList2=48 -MaxVariableOutputsList2=48 -MinVariableInputsList3=72 -MaxVariableInputsList3=72 -MinVariableOutputsList3=72 -MaxVariableOutputsList3=72 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=[~UNUSED3~] -InputSigType1=Digital -InputCue2=[~UNUSED2~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Enable -InputSigType11=Digital -InputCue12=Item 1 Enable -InputSigType12=Digital -InputCue13=Item 2 Enable -InputSigType13=Digital -InputCue14=Item 3 Enable -InputSigType14=Digital -InputCue15=Item 4 Enable -InputSigType15=Digital -InputCue16=Item 5 Enable -InputSigType16=Digital -InputCue17=Item 6 Enable -InputSigType17=Digital -InputCue18=Item 7 Enable -InputSigType18=Digital -InputCue19=Item 8 Enable -InputSigType19=Digital -InputCue20=Item 9 Enable -InputSigType20=Digital -InputCue21=Item 10 Enable -InputSigType21=Digital -InputCue22=Item 11 Enable -InputSigType22=Digital -InputCue23=Item 12 Enable -InputSigType23=Digital -InputCue24=[~UNUSED2~] -InputSigType24=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Enable -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Visible -InputSigType2013=Digital -InputCue2014=Item 1 Visible -InputSigType2014=Digital -InputCue2015=Item 2 Visible -InputSigType2015=Digital -InputCue2016=Item 3 Visible -InputSigType2016=Digital -InputCue2017=Item 4 Visible -InputSigType2017=Digital -InputCue2018=Item 5 Visible -InputSigType2018=Digital -InputCue2019=Item 6 Visible -InputSigType2019=Digital -InputCue2020=Item 7 Visible -InputSigType2020=Digital -InputCue2021=Item 8 Visible -InputSigType2021=Digital -InputCue2022=Item 9 Visible -InputSigType2022=Digital -InputCue2023=Item 10 Visible -InputSigType2023=Digital -InputCue2024=Item 11 Visible -InputSigType2024=Digital -InputCue2025=Item 12 Visible -InputSigType2025=Digital -InputCue2026=[~UNUSED2~] -InputSigType2026=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Visible -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]fb -InputSigType4015=Digital -InputCue4016=fb1 -InputSigType4016=Digital -InputCue4017=fb2 -InputSigType4017=Digital -InputCue4018=fb3 -InputSigType4018=Digital -InputCue4019=fb4 -InputSigType4019=Digital -InputCue4020=fb5 -InputSigType4020=Digital -InputCue4021=fb6 -InputSigType4021=Digital -InputCue4022=fb7 -InputSigType4022=Digital -InputCue4023=fb8 -InputSigType4023=Digital -InputCue4024=fb9 -InputSigType4024=Digital -InputCue4025=fb10 -InputSigType4025=Digital -InputCue4026=fb11 -InputSigType4026=Digital -InputCue4027=fb12 -InputSigType4027=Digital -InputCue4028=fb13 -InputSigType4028=Digital -InputCue4029=fb14 -InputSigType4029=Digital -InputCue4030=fb15 -InputSigType4030=Digital -InputCue4031=fb16 -InputSigType4031=Digital -InputCue4032=fb17 -InputSigType4032=Digital -InputCue4033=fb18 -InputSigType4033=Digital -InputCue4034=fb19 -InputSigType4034=Digital -InputCue4035=fb20 -InputSigType4035=Digital -InputCue4036=fb21 -InputSigType4036=Digital -InputCue4037=fb22 -InputSigType4037=Digital -InputCue4038=fb23 -InputSigType4038=Digital -InputCue4039=fb24 -InputSigType4039=Digital -InputCue4040=fb25 -InputSigType4040=Digital -InputCue4041=fb26 -InputSigType4041=Digital -InputCue4042=fb27 -InputSigType4042=Digital -InputCue4043=fb28 -InputSigType4043=Digital -InputCue4044=fb29 -InputSigType4044=Digital -InputCue4045=fb30 -InputSigType4045=Digital -InputCue4046=fb31 -InputSigType4046=Digital -InputCue4047=fb32 -InputSigType4047=Digital -InputCue4048=fb33 -InputSigType4048=Digital -InputCue4049=fb34 -InputSigType4049=Digital -InputCue4050=fb35 -InputSigType4050=Digital -InputCue4051=fb36 -InputSigType4051=Digital -InputCue4052=[~EndGroup~]fb -InputSigType4052=Digital -OutputCue1=Is Moving -OutputSigType1=Digital -OutputCue2=[~UNUSED2~] -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Enable -OutputSigType11=Digital -OutputCue12=[~UNUSED3~] -OutputSigType12=Digital -OutputCue13=[~UNUSED3~] -OutputSigType13=Digital -OutputCue14=[~UNUSED3~] -OutputSigType14=Digital -OutputCue15=[~UNUSED3~] -OutputSigType15=Digital -OutputCue16=[~UNUSED3~] -OutputSigType16=Digital -OutputCue17=[~UNUSED3~] -OutputSigType17=Digital -OutputCue18=[~UNUSED3~] -OutputSigType18=Digital -OutputCue19=[~UNUSED3~] -OutputSigType19=Digital -OutputCue20=[~UNUSED3~] -OutputSigType20=Digital -OutputCue21=[~UNUSED3~] -OutputSigType21=Digital -OutputCue22=[~UNUSED3~] -OutputSigType22=Digital -OutputCue23=[~UNUSED3~] -OutputSigType23=Digital -OutputCue24=[~UNUSED2~] -OutputSigType24=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Enable -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Visible -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED2~] -OutputSigType2026=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Visible -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Press -OutputSigType4015=Digital -OutputCue4016=press1 -OutputSigType4016=Digital -OutputCue4017=press2 -OutputSigType4017=Digital -OutputCue4018=press3 -OutputSigType4018=Digital -OutputCue4019=press4 -OutputSigType4019=Digital -OutputCue4020=press5 -OutputSigType4020=Digital -OutputCue4021=press6 -OutputSigType4021=Digital -OutputCue4022=press7 -OutputSigType4022=Digital -OutputCue4023=press8 -OutputSigType4023=Digital -OutputCue4024=press9 -OutputSigType4024=Digital -OutputCue4025=press10 -OutputSigType4025=Digital -OutputCue4026=press11 -OutputSigType4026=Digital -OutputCue4027=press12 -OutputSigType4027=Digital -OutputCue4028=press13 -OutputSigType4028=Digital -OutputCue4029=press14 -OutputSigType4029=Digital -OutputCue4030=press15 -OutputSigType4030=Digital -OutputCue4031=press16 -OutputSigType4031=Digital -OutputCue4032=press17 -OutputSigType4032=Digital -OutputCue4033=press18 -OutputSigType4033=Digital -OutputCue4034=press19 -OutputSigType4034=Digital -OutputCue4035=press20 -OutputSigType4035=Digital -OutputCue4036=press21 -OutputSigType4036=Digital -OutputCue4037=press22 -OutputSigType4037=Digital -OutputCue4038=press23 -OutputSigType4038=Digital -OutputCue4039=press24 -OutputSigType4039=Digital -OutputCue4040=press25 -OutputSigType4040=Digital -OutputCue4041=press26 -OutputSigType4041=Digital -OutputCue4042=press27 -OutputSigType4042=Digital -OutputCue4043=press28 -OutputSigType4043=Digital -OutputCue4044=press29 -OutputSigType4044=Digital -OutputCue4045=press30 -OutputSigType4045=Digital -OutputCue4046=press31 -OutputSigType4046=Digital -OutputCue4047=press32 -OutputSigType4047=Digital -OutputCue4048=press33 -OutputSigType4048=Digital -OutputCue4049=press34 -OutputSigType4049=Digital -OutputCue4050=press35 -OutputSigType4050=Digital -OutputCue4051=press36 -OutputSigType4051=Digital -OutputCue4052=[~EndGroup~]Press -OutputSigType4052=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=Scroll To Item -InputList2SigType2=Analog -InputList2Cue3=Set Number of Items -InputList2SigType3=Analog -InputList2Cue4=[~UNUSED2~] -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]an_fb -InputList2SigType11=Analog -InputList2Cue12=an_fb1 -InputList2SigType12=Analog -InputList2Cue13=an_fb2 -InputList2SigType13=Analog -InputList2Cue14=an_fb3 -InputList2SigType14=Analog -InputList2Cue15=an_fb4 -InputList2SigType15=Analog -InputList2Cue16=an_fb5 -InputList2SigType16=Analog -InputList2Cue17=an_fb6 -InputList2SigType17=Analog -InputList2Cue18=an_fb7 -InputList2SigType18=Analog -InputList2Cue19=an_fb8 -InputList2SigType19=Analog -InputList2Cue20=an_fb9 -InputList2SigType20=Analog -InputList2Cue21=an_fb10 -InputList2SigType21=Analog -InputList2Cue22=an_fb11 -InputList2SigType22=Analog -InputList2Cue23=an_fb12 -InputList2SigType23=Analog -InputList2Cue24=an_fb13 -InputList2SigType24=Analog -InputList2Cue25=an_fb14 -InputList2SigType25=Analog -InputList2Cue26=an_fb15 -InputList2SigType26=Analog -InputList2Cue27=an_fb16 -InputList2SigType27=Analog -InputList2Cue28=an_fb17 -InputList2SigType28=Analog -InputList2Cue29=an_fb18 -InputList2SigType29=Analog -InputList2Cue30=an_fb19 -InputList2SigType30=Analog -InputList2Cue31=an_fb20 -InputList2SigType31=Analog -InputList2Cue32=an_fb21 -InputList2SigType32=Analog -InputList2Cue33=an_fb22 -InputList2SigType33=Analog -InputList2Cue34=an_fb23 -InputList2SigType34=Analog -InputList2Cue35=an_fb24 -InputList2SigType35=Analog -InputList2Cue36=an_fb25 -InputList2SigType36=Analog -InputList2Cue37=an_fb26 -InputList2SigType37=Analog -InputList2Cue38=an_fb27 -InputList2SigType38=Analog -InputList2Cue39=an_fb28 -InputList2SigType39=Analog -InputList2Cue40=an_fb29 -InputList2SigType40=Analog -InputList2Cue41=an_fb30 -InputList2SigType41=Analog -InputList2Cue42=an_fb31 -InputList2SigType42=Analog -InputList2Cue43=an_fb32 -InputList2SigType43=Analog -InputList2Cue44=an_fb33 -InputList2SigType44=Analog -InputList2Cue45=an_fb34 -InputList2SigType45=Analog -InputList2Cue46=an_fb35 -InputList2SigType46=Analog -InputList2Cue47=an_fb36 -InputList2SigType47=Analog -InputList2Cue48=[~EndGroup~]an_fb -InputList2SigType48=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=[~UNUSED3~] -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED2~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]an_act -OutputList2SigType11=Analog -OutputList2Cue12=an_act1 -OutputList2SigType12=Analog -OutputList2Cue13=an_act2 -OutputList2SigType13=Analog -OutputList2Cue14=an_act3 -OutputList2SigType14=Analog -OutputList2Cue15=an_act4 -OutputList2SigType15=Analog -OutputList2Cue16=an_act5 -OutputList2SigType16=Analog -OutputList2Cue17=an_act6 -OutputList2SigType17=Analog -OutputList2Cue18=an_act7 -OutputList2SigType18=Analog -OutputList2Cue19=an_act8 -OutputList2SigType19=Analog -OutputList2Cue20=an_act9 -OutputList2SigType20=Analog -OutputList2Cue21=an_act10 -OutputList2SigType21=Analog -OutputList2Cue22=an_act11 -OutputList2SigType22=Analog -OutputList2Cue23=an_act12 -OutputList2SigType23=Analog -OutputList2Cue24=an_act13 -OutputList2SigType24=Analog -OutputList2Cue25=an_act14 -OutputList2SigType25=Analog -OutputList2Cue26=an_act15 -OutputList2SigType26=Analog -OutputList2Cue27=an_act16 -OutputList2SigType27=Analog -OutputList2Cue28=an_act17 -OutputList2SigType28=Analog -OutputList2Cue29=an_act18 -OutputList2SigType29=Analog -OutputList2Cue30=an_act19 -OutputList2SigType30=Analog -OutputList2Cue31=an_act20 -OutputList2SigType31=Analog -OutputList2Cue32=an_act21 -OutputList2SigType32=Analog -OutputList2Cue33=an_act22 -OutputList2SigType33=Analog -OutputList2Cue34=an_act23 -OutputList2SigType34=Analog -OutputList2Cue35=an_act24 -OutputList2SigType35=Analog -OutputList2Cue36=an_act25 -OutputList2SigType36=Analog -OutputList2Cue37=an_act26 -OutputList2SigType37=Analog -OutputList2Cue38=an_act27 -OutputList2SigType38=Analog -OutputList2Cue39=an_act28 -OutputList2SigType39=Analog -OutputList2Cue40=an_act29 -OutputList2SigType40=Analog -OutputList2Cue41=an_act30 -OutputList2SigType41=Analog -OutputList2Cue42=an_act31 -OutputList2SigType42=Analog -OutputList2Cue43=an_act32 -OutputList2SigType43=Analog -OutputList2Cue44=an_act33 -OutputList2SigType44=Analog -OutputList2Cue45=an_act34 -OutputList2SigType45=Analog -OutputList2Cue46=an_act35 -OutputList2SigType46=Analog -OutputList2Cue47=an_act36 -OutputList2SigType47=Analog -OutputList2Cue48=[~EndGroup~]an_act -OutputList2SigType48=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]text-o -InputList3SigType11=Serial -InputList3Cue12=text-o1 -InputList3SigType12=Serial -InputList3Cue13=text-o2 -InputList3SigType13=Serial -InputList3Cue14=text-o3 -InputList3SigType14=Serial -InputList3Cue15=text-o4 -InputList3SigType15=Serial -InputList3Cue16=text-o5 -InputList3SigType16=Serial -InputList3Cue17=text-o6 -InputList3SigType17=Serial -InputList3Cue18=text-o7 -InputList3SigType18=Serial -InputList3Cue19=text-o8 -InputList3SigType19=Serial -InputList3Cue20=text-o9 -InputList3SigType20=Serial -InputList3Cue21=text-o10 -InputList3SigType21=Serial -InputList3Cue22=text-o11 -InputList3SigType22=Serial -InputList3Cue23=text-o12 -InputList3SigType23=Serial -InputList3Cue24=text-o13 -InputList3SigType24=Serial -InputList3Cue25=text-o14 -InputList3SigType25=Serial -InputList3Cue26=text-o15 -InputList3SigType26=Serial -InputList3Cue27=text-o16 -InputList3SigType27=Serial -InputList3Cue28=text-o17 -InputList3SigType28=Serial -InputList3Cue29=text-o18 -InputList3SigType29=Serial -InputList3Cue30=text-o19 -InputList3SigType30=Serial -InputList3Cue31=text-o20 -InputList3SigType31=Serial -InputList3Cue32=text-o21 -InputList3SigType32=Serial -InputList3Cue33=text-o22 -InputList3SigType33=Serial -InputList3Cue34=text-o23 -InputList3SigType34=Serial -InputList3Cue35=text-o24 -InputList3SigType35=Serial -InputList3Cue36=text-o25 -InputList3SigType36=Serial -InputList3Cue37=text-o26 -InputList3SigType37=Serial -InputList3Cue38=text-o27 -InputList3SigType38=Serial -InputList3Cue39=text-o28 -InputList3SigType39=Serial -InputList3Cue40=text-o29 -InputList3SigType40=Serial -InputList3Cue41=text-o30 -InputList3SigType41=Serial -InputList3Cue42=text-o31 -InputList3SigType42=Serial -InputList3Cue43=text-o32 -InputList3SigType43=Serial -InputList3Cue44=text-o33 -InputList3SigType44=Serial -InputList3Cue45=text-o34 -InputList3SigType45=Serial -InputList3Cue46=text-o35 -InputList3SigType46=Serial -InputList3Cue47=text-o36 -InputList3SigType47=Serial -InputList3Cue48=text-o37 -InputList3SigType48=Serial -InputList3Cue49=text-o38 -InputList3SigType49=Serial -InputList3Cue50=text-o39 -InputList3SigType50=Serial -InputList3Cue51=text-o40 -InputList3SigType51=Serial -InputList3Cue52=text-o41 -InputList3SigType52=Serial -InputList3Cue53=text-o42 -InputList3SigType53=Serial -InputList3Cue54=text-o43 -InputList3SigType54=Serial -InputList3Cue55=text-o44 -InputList3SigType55=Serial -InputList3Cue56=text-o45 -InputList3SigType56=Serial -InputList3Cue57=text-o46 -InputList3SigType57=Serial -InputList3Cue58=text-o47 -InputList3SigType58=Serial -InputList3Cue59=text-o48 -InputList3SigType59=Serial -InputList3Cue60=text-o49 -InputList3SigType60=Serial -InputList3Cue61=text-o50 -InputList3SigType61=Serial -InputList3Cue62=text-o51 -InputList3SigType62=Serial -InputList3Cue63=text-o52 -InputList3SigType63=Serial -InputList3Cue64=text-o53 -InputList3SigType64=Serial -InputList3Cue65=text-o54 -InputList3SigType65=Serial -InputList3Cue66=text-o55 -InputList3SigType66=Serial -InputList3Cue67=text-o56 -InputList3SigType67=Serial -InputList3Cue68=text-o57 -InputList3SigType68=Serial -InputList3Cue69=text-o58 -InputList3SigType69=Serial -InputList3Cue70=text-o59 -InputList3SigType70=Serial -InputList3Cue71=text-o60 -InputList3SigType71=Serial -InputList3Cue72=[~EndGroup~]text-o -InputList3SigType72=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]text-i -OutputList3SigType11=Serial -OutputList3Cue12=text-i1 -OutputList3SigType12=Serial -OutputList3Cue13=text-i2 -OutputList3SigType13=Serial -OutputList3Cue14=text-i3 -OutputList3SigType14=Serial -OutputList3Cue15=text-i4 -OutputList3SigType15=Serial -OutputList3Cue16=text-i5 -OutputList3SigType16=Serial -OutputList3Cue17=text-i6 -OutputList3SigType17=Serial -OutputList3Cue18=text-i7 -OutputList3SigType18=Serial -OutputList3Cue19=text-i8 -OutputList3SigType19=Serial -OutputList3Cue20=text-i9 -OutputList3SigType20=Serial -OutputList3Cue21=text-i10 -OutputList3SigType21=Serial -OutputList3Cue22=text-i11 -OutputList3SigType22=Serial -OutputList3Cue23=text-i12 -OutputList3SigType23=Serial -OutputList3Cue24=text-i13 -OutputList3SigType24=Serial -OutputList3Cue25=text-i14 -OutputList3SigType25=Serial -OutputList3Cue26=text-i15 -OutputList3SigType26=Serial -OutputList3Cue27=text-i16 -OutputList3SigType27=Serial -OutputList3Cue28=text-i17 -OutputList3SigType28=Serial -OutputList3Cue29=text-i18 -OutputList3SigType29=Serial -OutputList3Cue30=text-i19 -OutputList3SigType30=Serial -OutputList3Cue31=text-i20 -OutputList3SigType31=Serial -OutputList3Cue32=text-i21 -OutputList3SigType32=Serial -OutputList3Cue33=text-i22 -OutputList3SigType33=Serial -OutputList3Cue34=text-i23 -OutputList3SigType34=Serial -OutputList3Cue35=text-i24 -OutputList3SigType35=Serial -OutputList3Cue36=text-i25 -OutputList3SigType36=Serial -OutputList3Cue37=text-i26 -OutputList3SigType37=Serial -OutputList3Cue38=text-i27 -OutputList3SigType38=Serial -OutputList3Cue39=text-i28 -OutputList3SigType39=Serial -OutputList3Cue40=text-i29 -OutputList3SigType40=Serial -OutputList3Cue41=text-i30 -OutputList3SigType41=Serial -OutputList3Cue42=text-i31 -OutputList3SigType42=Serial -OutputList3Cue43=text-i32 -OutputList3SigType43=Serial -OutputList3Cue44=text-i33 -OutputList3SigType44=Serial -OutputList3Cue45=text-i34 -OutputList3SigType45=Serial -OutputList3Cue46=text-i35 -OutputList3SigType46=Serial -OutputList3Cue47=text-i36 -OutputList3SigType47=Serial -OutputList3Cue48=text-i37 -OutputList3SigType48=Serial -OutputList3Cue49=text-i38 -OutputList3SigType49=Serial -OutputList3Cue50=text-i39 -OutputList3SigType50=Serial -OutputList3Cue51=text-i40 -OutputList3SigType51=Serial -OutputList3Cue52=text-i41 -OutputList3SigType52=Serial -OutputList3Cue53=text-i42 -OutputList3SigType53=Serial -OutputList3Cue54=text-i43 -OutputList3SigType54=Serial -OutputList3Cue55=text-i44 -OutputList3SigType55=Serial -OutputList3Cue56=text-i45 -OutputList3SigType56=Serial -OutputList3Cue57=text-i46 -OutputList3SigType57=Serial -OutputList3Cue58=text-i47 -OutputList3SigType58=Serial -OutputList3Cue59=text-i48 -OutputList3SigType59=Serial -OutputList3Cue60=text-i49 -OutputList3SigType60=Serial -OutputList3Cue61=text-i50 -OutputList3SigType61=Serial -OutputList3Cue62=text-i51 -OutputList3SigType62=Serial -OutputList3Cue63=text-i52 -OutputList3SigType63=Serial -OutputList3Cue64=text-i53 -OutputList3SigType64=Serial -OutputList3Cue65=text-i54 -OutputList3SigType65=Serial -OutputList3Cue66=text-i55 -OutputList3SigType66=Serial -OutputList3Cue67=text-i56 -OutputList3SigType67=Serial -OutputList3Cue68=text-i57 -OutputList3SigType68=Serial -OutputList3Cue69=text-i58 -OutputList3SigType69=Serial -OutputList3Cue70=text-i59 -OutputList3SigType70=Serial -OutputList3Cue71=text-i60 -OutputList3SigType71=Serial -OutputList3Cue72=[~EndGroup~]text-i -OutputList3SigType72=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=18 -CedH=18 -SmartObjId=15023d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=18 -Tp=1 -HD=TRUE -DV=15023d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=18 -Name=PepperDash Essentials iPad_[Z.Dialogs] Schedule List_Subpage Reference List Vertical.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] -;================================================================================ -[ -ObjTp=Symbol -Name=PepperDash Essentials iPad_[D.VC] Recents_Dynamic Button List Vertical_2.ced -Hint=Dynamic Button List Vertical_2 (Smart Object ID=1203) -Code=19 -SGControlType=Dynamic Button List Vertical -SGControlName=Dynamic Button List Vertical_2 -GUID=2C4B55E4-42AC-486D-BC6E-C7DD7D24C974 -SmplCName=PepperDash Essentials iPad_[D.VC] Recents_Dynamic Button List Vertical_2.ced -SMWRev=4.02.20 -Expand=expand_random -HelpID=10112 -Render=8 -;Define the number of inputs, outputs and parameters -MinVariableInputs=6016 -MaxVariableInputs=6016 -MinVariableOutputs=6016 -MaxVariableOutputs=6016 -NumFixedParams=1 -MinVariableInputsList2=2012 -MaxVariableInputsList2=2012 -MinVariableOutputsList2=2012 -MaxVariableOutputsList2=2012 -MinVariableInputsList3=4014 -MaxVariableInputsList3=4014 -MinVariableOutputsList3=4014 -MaxVariableOutputsList3=4014 -InputSigType1=Digital -OutputSigType1=Digital -InputList2SigType1=Analog -OutputList2SigType1=Analog -InputList3SigType1=Serial -OutputList3SigType1=Serial - -;Define the cues, and signal types each input, output and parameter. -InputCue1=Disable Redraw -InputSigType1=Digital -InputCue2=[~UNUSED3~] -InputSigType2=Digital -InputCue3=[~UNUSED2~] -InputSigType3=Digital -InputCue4=[~UNUSED2~] -InputSigType4=Digital -InputCue5=[~UNUSED2~] -InputSigType5=Digital -InputCue6=[~UNUSED2~] -InputSigType6=Digital -InputCue7=[~UNUSED2~] -InputSigType7=Digital -InputCue8=[~UNUSED2~] -InputSigType8=Digital -InputCue9=[~UNUSED2~] -InputSigType9=Digital -InputCue10=[~UNUSED2~] -InputSigType10=Digital -InputCue11=[~BeginGroup~]Press -InputSigType11=Digital -InputCue12=Item 1 Selected -InputSigType12=Digital -InputCue13=Item 2 Selected -InputSigType13=Digital -InputCue14=Item 3 Selected -InputSigType14=Digital -InputCue15=Item 4 Selected -InputSigType15=Digital -InputCue16=Item 5 Selected -InputSigType16=Digital -InputCue17=Item 6 Selected -InputSigType17=Digital -InputCue18=Item 7 Selected -InputSigType18=Digital -InputCue19=Item 8 Selected -InputSigType19=Digital -InputCue20=Item 9 Selected -InputSigType20=Digital -InputCue21=Item 10 Selected -InputSigType21=Digital -InputCue22=Item 11 Selected -InputSigType22=Digital -InputCue23=Item 12 Selected -InputSigType23=Digital -InputCue24=Item 13 Selected -InputSigType24=Digital -InputCue25=Item 14 Selected -InputSigType25=Digital -InputCue26=Item 15 Selected -InputSigType26=Digital -InputCue27=Item 16 Selected -InputSigType27=Digital -InputCue28=Item 17 Selected -InputSigType28=Digital -InputCue29=Item 18 Selected -InputSigType29=Digital -InputCue30=Item 19 Selected -InputSigType30=Digital -InputCue31=Item 20 Selected -InputSigType31=Digital -InputCue32=Item 21 Selected -InputSigType32=Digital -InputCue33=Item 22 Selected -InputSigType33=Digital -InputCue34=Item 23 Selected -InputSigType34=Digital -InputCue35=Item 24 Selected -InputSigType35=Digital -InputCue36=Item 25 Selected -InputSigType36=Digital -InputCue37=Item 26 Selected -InputSigType37=Digital -InputCue38=Item 27 Selected -InputSigType38=Digital -InputCue39=Item 28 Selected -InputSigType39=Digital -InputCue40=Item 29 Selected -InputSigType40=Digital -InputCue41=Item 30 Selected -InputSigType41=Digital -InputCue42=[~UNUSED2~] -InputSigType42=Digital|Analog|Serial|String -InputCue2012=[~EndGroup~]Press -InputSigType2012=Digital -InputCue2013=[~BeginGroup~]Enable -InputSigType2013=Digital -InputCue2014=Item 1 Enabled -InputSigType2014=Digital -InputCue2015=Item 2 Enabled -InputSigType2015=Digital -InputCue2016=Item 3 Enabled -InputSigType2016=Digital -InputCue2017=Item 4 Enabled -InputSigType2017=Digital -InputCue2018=Item 5 Enabled -InputSigType2018=Digital -InputCue2019=Item 6 Enabled -InputSigType2019=Digital -InputCue2020=Item 7 Enabled -InputSigType2020=Digital -InputCue2021=Item 8 Enabled -InputSigType2021=Digital -InputCue2022=Item 9 Enabled -InputSigType2022=Digital -InputCue2023=Item 10 Enabled -InputSigType2023=Digital -InputCue2024=Item 11 Enabled -InputSigType2024=Digital -InputCue2025=Item 12 Enabled -InputSigType2025=Digital -InputCue2026=Item 13 Enabled -InputSigType2026=Digital -InputCue2027=Item 14 Enabled -InputSigType2027=Digital -InputCue2028=Item 15 Enabled -InputSigType2028=Digital -InputCue2029=Item 16 Enabled -InputSigType2029=Digital -InputCue2030=Item 17 Enabled -InputSigType2030=Digital -InputCue2031=Item 18 Enabled -InputSigType2031=Digital -InputCue2032=Item 19 Enabled -InputSigType2032=Digital -InputCue2033=Item 20 Enabled -InputSigType2033=Digital -InputCue2034=Item 21 Enabled -InputSigType2034=Digital -InputCue2035=Item 22 Enabled -InputSigType2035=Digital -InputCue2036=Item 23 Enabled -InputSigType2036=Digital -InputCue2037=Item 24 Enabled -InputSigType2037=Digital -InputCue2038=Item 25 Enabled -InputSigType2038=Digital -InputCue2039=Item 26 Enabled -InputSigType2039=Digital -InputCue2040=Item 27 Enabled -InputSigType2040=Digital -InputCue2041=Item 28 Enabled -InputSigType2041=Digital -InputCue2042=Item 29 Enabled -InputSigType2042=Digital -InputCue2043=Item 30 Enabled -InputSigType2043=Digital -InputCue2044=[~UNUSED2~] -InputSigType2044=Digital|Analog|Serial|String -InputCue4014=[~EndGroup~]Enable -InputSigType4014=Digital -InputCue4015=[~BeginGroup~]Visible -InputSigType4015=Digital -InputCue4016=Item 1 Visible -InputSigType4016=Digital -InputCue4017=Item 2 Visible -InputSigType4017=Digital -InputCue4018=Item 3 Visible -InputSigType4018=Digital -InputCue4019=Item 4 Visible -InputSigType4019=Digital -InputCue4020=Item 5 Visible -InputSigType4020=Digital -InputCue4021=Item 6 Visible -InputSigType4021=Digital -InputCue4022=Item 7 Visible -InputSigType4022=Digital -InputCue4023=Item 8 Visible -InputSigType4023=Digital -InputCue4024=Item 9 Visible -InputSigType4024=Digital -InputCue4025=Item 10 Visible -InputSigType4025=Digital -InputCue4026=Item 11 Visible -InputSigType4026=Digital -InputCue4027=Item 12 Visible -InputSigType4027=Digital -InputCue4028=Item 13 Visible -InputSigType4028=Digital -InputCue4029=Item 14 Visible -InputSigType4029=Digital -InputCue4030=Item 15 Visible -InputSigType4030=Digital -InputCue4031=Item 16 Visible -InputSigType4031=Digital -InputCue4032=Item 17 Visible -InputSigType4032=Digital -InputCue4033=Item 18 Visible -InputSigType4033=Digital -InputCue4034=Item 19 Visible -InputSigType4034=Digital -InputCue4035=Item 20 Visible -InputSigType4035=Digital -InputCue4036=Item 21 Visible -InputSigType4036=Digital -InputCue4037=Item 22 Visible -InputSigType4037=Digital -InputCue4038=Item 23 Visible -InputSigType4038=Digital -InputCue4039=Item 24 Visible -InputSigType4039=Digital -InputCue4040=Item 25 Visible -InputSigType4040=Digital -InputCue4041=Item 26 Visible -InputSigType4041=Digital -InputCue4042=Item 27 Visible -InputSigType4042=Digital -InputCue4043=Item 28 Visible -InputSigType4043=Digital -InputCue4044=Item 29 Visible -InputSigType4044=Digital -InputCue4045=Item 30 Visible -InputSigType4045=Digital -InputCue4046=[~UNUSED2~] -InputSigType4046=Digital|Analog|Serial|String -InputCue6016=[~EndGroup~]Visible -InputSigType6016=Digital -OutputCue1=[~UNUSED3~] -OutputSigType1=Digital -OutputCue2=Is Moving -OutputSigType2=Digital -OutputCue3=[~UNUSED2~] -OutputSigType3=Digital -OutputCue4=[~UNUSED2~] -OutputSigType4=Digital -OutputCue5=[~UNUSED2~] -OutputSigType5=Digital -OutputCue6=[~UNUSED2~] -OutputSigType6=Digital -OutputCue7=[~UNUSED2~] -OutputSigType7=Digital -OutputCue8=[~UNUSED2~] -OutputSigType8=Digital -OutputCue9=[~UNUSED2~] -OutputSigType9=Digital -OutputCue10=[~UNUSED2~] -OutputSigType10=Digital -OutputCue11=[~BeginGroup~]Press -OutputSigType11=Digital -OutputCue12=Item 1 Pressed -OutputSigType12=Digital -OutputCue13=Item 2 Pressed -OutputSigType13=Digital -OutputCue14=Item 3 Pressed -OutputSigType14=Digital -OutputCue15=Item 4 Pressed -OutputSigType15=Digital -OutputCue16=Item 5 Pressed -OutputSigType16=Digital -OutputCue17=Item 6 Pressed -OutputSigType17=Digital -OutputCue18=Item 7 Pressed -OutputSigType18=Digital -OutputCue19=Item 8 Pressed -OutputSigType19=Digital -OutputCue20=Item 9 Pressed -OutputSigType20=Digital -OutputCue21=Item 10 Pressed -OutputSigType21=Digital -OutputCue22=Item 11 Pressed -OutputSigType22=Digital -OutputCue23=Item 12 Pressed -OutputSigType23=Digital -OutputCue24=Item 13 Pressed -OutputSigType24=Digital -OutputCue25=Item 14 Pressed -OutputSigType25=Digital -OutputCue26=Item 15 Pressed -OutputSigType26=Digital -OutputCue27=Item 16 Pressed -OutputSigType27=Digital -OutputCue28=Item 17 Pressed -OutputSigType28=Digital -OutputCue29=Item 18 Pressed -OutputSigType29=Digital -OutputCue30=Item 19 Pressed -OutputSigType30=Digital -OutputCue31=Item 20 Pressed -OutputSigType31=Digital -OutputCue32=Item 21 Pressed -OutputSigType32=Digital -OutputCue33=Item 22 Pressed -OutputSigType33=Digital -OutputCue34=Item 23 Pressed -OutputSigType34=Digital -OutputCue35=Item 24 Pressed -OutputSigType35=Digital -OutputCue36=Item 25 Pressed -OutputSigType36=Digital -OutputCue37=Item 26 Pressed -OutputSigType37=Digital -OutputCue38=Item 27 Pressed -OutputSigType38=Digital -OutputCue39=Item 28 Pressed -OutputSigType39=Digital -OutputCue40=Item 29 Pressed -OutputSigType40=Digital -OutputCue41=Item 30 Pressed -OutputSigType41=Digital -OutputCue42=[~UNUSED2~] -OutputSigType42=Digital|Analog|Serial|String -OutputCue2012=[~EndGroup~]Press -OutputSigType2012=Digital -OutputCue2013=[~BeginGroup~]Enable -OutputSigType2013=Digital -OutputCue2014=[~UNUSED3~] -OutputSigType2014=Digital -OutputCue2015=[~UNUSED3~] -OutputSigType2015=Digital -OutputCue2016=[~UNUSED3~] -OutputSigType2016=Digital -OutputCue2017=[~UNUSED3~] -OutputSigType2017=Digital -OutputCue2018=[~UNUSED3~] -OutputSigType2018=Digital -OutputCue2019=[~UNUSED3~] -OutputSigType2019=Digital -OutputCue2020=[~UNUSED3~] -OutputSigType2020=Digital -OutputCue2021=[~UNUSED3~] -OutputSigType2021=Digital -OutputCue2022=[~UNUSED3~] -OutputSigType2022=Digital -OutputCue2023=[~UNUSED3~] -OutputSigType2023=Digital -OutputCue2024=[~UNUSED3~] -OutputSigType2024=Digital -OutputCue2025=[~UNUSED3~] -OutputSigType2025=Digital -OutputCue2026=[~UNUSED3~] -OutputSigType2026=Digital -OutputCue2027=[~UNUSED3~] -OutputSigType2027=Digital -OutputCue2028=[~UNUSED3~] -OutputSigType2028=Digital -OutputCue2029=[~UNUSED3~] -OutputSigType2029=Digital -OutputCue2030=[~UNUSED3~] -OutputSigType2030=Digital -OutputCue2031=[~UNUSED3~] -OutputSigType2031=Digital -OutputCue2032=[~UNUSED3~] -OutputSigType2032=Digital -OutputCue2033=[~UNUSED3~] -OutputSigType2033=Digital -OutputCue2034=[~UNUSED3~] -OutputSigType2034=Digital -OutputCue2035=[~UNUSED3~] -OutputSigType2035=Digital -OutputCue2036=[~UNUSED3~] -OutputSigType2036=Digital -OutputCue2037=[~UNUSED3~] -OutputSigType2037=Digital -OutputCue2038=[~UNUSED3~] -OutputSigType2038=Digital -OutputCue2039=[~UNUSED3~] -OutputSigType2039=Digital -OutputCue2040=[~UNUSED3~] -OutputSigType2040=Digital -OutputCue2041=[~UNUSED3~] -OutputSigType2041=Digital -OutputCue2042=[~UNUSED3~] -OutputSigType2042=Digital -OutputCue2043=[~UNUSED3~] -OutputSigType2043=Digital -OutputCue2044=[~UNUSED2~] -OutputSigType2044=Digital|Analog|Serial|String -OutputCue4014=[~EndGroup~]Enable -OutputSigType4014=Digital -OutputCue4015=[~BeginGroup~]Visible -OutputSigType4015=Digital -OutputCue4016=[~UNUSED3~] -OutputSigType4016=Digital -OutputCue4017=[~UNUSED3~] -OutputSigType4017=Digital -OutputCue4018=[~UNUSED3~] -OutputSigType4018=Digital -OutputCue4019=[~UNUSED3~] -OutputSigType4019=Digital -OutputCue4020=[~UNUSED3~] -OutputSigType4020=Digital -OutputCue4021=[~UNUSED3~] -OutputSigType4021=Digital -OutputCue4022=[~UNUSED3~] -OutputSigType4022=Digital -OutputCue4023=[~UNUSED3~] -OutputSigType4023=Digital -OutputCue4024=[~UNUSED3~] -OutputSigType4024=Digital -OutputCue4025=[~UNUSED3~] -OutputSigType4025=Digital -OutputCue4026=[~UNUSED3~] -OutputSigType4026=Digital -OutputCue4027=[~UNUSED3~] -OutputSigType4027=Digital -OutputCue4028=[~UNUSED3~] -OutputSigType4028=Digital -OutputCue4029=[~UNUSED3~] -OutputSigType4029=Digital -OutputCue4030=[~UNUSED3~] -OutputSigType4030=Digital -OutputCue4031=[~UNUSED3~] -OutputSigType4031=Digital -OutputCue4032=[~UNUSED3~] -OutputSigType4032=Digital -OutputCue4033=[~UNUSED3~] -OutputSigType4033=Digital -OutputCue4034=[~UNUSED3~] -OutputSigType4034=Digital -OutputCue4035=[~UNUSED3~] -OutputSigType4035=Digital -OutputCue4036=[~UNUSED3~] -OutputSigType4036=Digital -OutputCue4037=[~UNUSED3~] -OutputSigType4037=Digital -OutputCue4038=[~UNUSED3~] -OutputSigType4038=Digital -OutputCue4039=[~UNUSED3~] -OutputSigType4039=Digital -OutputCue4040=[~UNUSED3~] -OutputSigType4040=Digital -OutputCue4041=[~UNUSED3~] -OutputSigType4041=Digital -OutputCue4042=[~UNUSED3~] -OutputSigType4042=Digital -OutputCue4043=[~UNUSED3~] -OutputSigType4043=Digital -OutputCue4044=[~UNUSED3~] -OutputSigType4044=Digital -OutputCue4045=[~UNUSED3~] -OutputSigType4045=Digital -OutputCue4046=[~UNUSED2~] -OutputSigType4046=Digital|Analog|Serial|String -OutputCue6016=[~EndGroup~]Visible -OutputSigType6016=Digital -InputList2Cue1=[~UNUSED3~] -InputList2SigType1=Analog -InputList2Cue2=[~UNUSED3~] -InputList2SigType2=Analog -InputList2Cue3=Scroll To Item -InputList2SigType3=Analog -InputList2Cue4=Set Number of Items -InputList2SigType4=Analog -InputList2Cue5=[~UNUSED2~] -InputList2SigType5=Analog -InputList2Cue6=[~UNUSED2~] -InputList2SigType6=Analog -InputList2Cue7=[~UNUSED2~] -InputList2SigType7=Analog -InputList2Cue8=[~UNUSED2~] -InputList2SigType8=Analog -InputList2Cue9=[~UNUSED2~] -InputList2SigType9=Analog -InputList2Cue10=[~UNUSED2~] -InputList2SigType10=Analog -InputList2Cue11=[~BeginGroup~]Item Icons -InputList2SigType11=Analog -InputList2Cue12=Set Item 1 Icon Analog -InputList2SigType12=Analog -InputList2Cue13=Set Item 2 Icon Analog -InputList2SigType13=Analog -InputList2Cue14=Set Item 3 Icon Analog -InputList2SigType14=Analog -InputList2Cue15=Set Item 4 Icon Analog -InputList2SigType15=Analog -InputList2Cue16=Set Item 5 Icon Analog -InputList2SigType16=Analog -InputList2Cue17=Set Item 6 Icon Analog -InputList2SigType17=Analog -InputList2Cue18=Set Item 7 Icon Analog -InputList2SigType18=Analog -InputList2Cue19=Set Item 8 Icon Analog -InputList2SigType19=Analog -InputList2Cue20=Set Item 9 Icon Analog -InputList2SigType20=Analog -InputList2Cue21=Set Item 10 Icon Analog -InputList2SigType21=Analog -InputList2Cue22=Set Item 11 Icon Analog -InputList2SigType22=Analog -InputList2Cue23=Set Item 12 Icon Analog -InputList2SigType23=Analog -InputList2Cue24=Set Item 13 Icon Analog -InputList2SigType24=Analog -InputList2Cue25=Set Item 14 Icon Analog -InputList2SigType25=Analog -InputList2Cue26=Set Item 15 Icon Analog -InputList2SigType26=Analog -InputList2Cue27=Set Item 16 Icon Analog -InputList2SigType27=Analog -InputList2Cue28=Set Item 17 Icon Analog -InputList2SigType28=Analog -InputList2Cue29=Set Item 18 Icon Analog -InputList2SigType29=Analog -InputList2Cue30=Set Item 19 Icon Analog -InputList2SigType30=Analog -InputList2Cue31=Set Item 20 Icon Analog -InputList2SigType31=Analog -InputList2Cue32=Set Item 21 Icon Analog -InputList2SigType32=Analog -InputList2Cue33=Set Item 22 Icon Analog -InputList2SigType33=Analog -InputList2Cue34=Set Item 23 Icon Analog -InputList2SigType34=Analog -InputList2Cue35=Set Item 24 Icon Analog -InputList2SigType35=Analog -InputList2Cue36=Set Item 25 Icon Analog -InputList2SigType36=Analog -InputList2Cue37=Set Item 26 Icon Analog -InputList2SigType37=Analog -InputList2Cue38=Set Item 27 Icon Analog -InputList2SigType38=Analog -InputList2Cue39=Set Item 28 Icon Analog -InputList2SigType39=Analog -InputList2Cue40=Set Item 29 Icon Analog -InputList2SigType40=Analog -InputList2Cue41=Set Item 30 Icon Analog -InputList2SigType41=Analog -InputList2Cue42=[~UNUSED2~] -InputList2SigType42=Digital|Analog|Serial|String -InputList2Cue2012=[~EndGroup~]Item Icons -InputList2SigType2012=Analog -OutputList2Cue1=Item Clicked -OutputList2SigType1=Analog -OutputList2Cue2=Item Held -OutputList2SigType2=Analog -OutputList2Cue3=[~UNUSED3~] -OutputList2SigType3=Analog -OutputList2Cue4=[~UNUSED3~] -OutputList2SigType4=Analog -OutputList2Cue5=[~UNUSED2~] -OutputList2SigType5=Analog -OutputList2Cue6=[~UNUSED2~] -OutputList2SigType6=Analog -OutputList2Cue7=[~UNUSED2~] -OutputList2SigType7=Analog -OutputList2Cue8=[~UNUSED2~] -OutputList2SigType8=Analog -OutputList2Cue9=[~UNUSED2~] -OutputList2SigType9=Analog -OutputList2Cue10=[~UNUSED2~] -OutputList2SigType10=Analog -OutputList2Cue11=[~BeginGroup~]Item Icons -OutputList2SigType11=Analog -OutputList2Cue12=[~UNUSED3~] -OutputList2SigType12=Analog -OutputList2Cue13=[~UNUSED3~] -OutputList2SigType13=Analog -OutputList2Cue14=[~UNUSED3~] -OutputList2SigType14=Analog -OutputList2Cue15=[~UNUSED3~] -OutputList2SigType15=Analog -OutputList2Cue16=[~UNUSED3~] -OutputList2SigType16=Analog -OutputList2Cue17=[~UNUSED3~] -OutputList2SigType17=Analog -OutputList2Cue18=[~UNUSED3~] -OutputList2SigType18=Analog -OutputList2Cue19=[~UNUSED3~] -OutputList2SigType19=Analog -OutputList2Cue20=[~UNUSED3~] -OutputList2SigType20=Analog -OutputList2Cue21=[~UNUSED3~] -OutputList2SigType21=Analog -OutputList2Cue22=[~UNUSED3~] -OutputList2SigType22=Analog -OutputList2Cue23=[~UNUSED3~] -OutputList2SigType23=Analog -OutputList2Cue24=[~UNUSED3~] -OutputList2SigType24=Analog -OutputList2Cue25=[~UNUSED3~] -OutputList2SigType25=Analog -OutputList2Cue26=[~UNUSED3~] -OutputList2SigType26=Analog -OutputList2Cue27=[~UNUSED3~] -OutputList2SigType27=Analog -OutputList2Cue28=[~UNUSED3~] -OutputList2SigType28=Analog -OutputList2Cue29=[~UNUSED3~] -OutputList2SigType29=Analog -OutputList2Cue30=[~UNUSED3~] -OutputList2SigType30=Analog -OutputList2Cue31=[~UNUSED3~] -OutputList2SigType31=Analog -OutputList2Cue32=[~UNUSED3~] -OutputList2SigType32=Analog -OutputList2Cue33=[~UNUSED3~] -OutputList2SigType33=Analog -OutputList2Cue34=[~UNUSED3~] -OutputList2SigType34=Analog -OutputList2Cue35=[~UNUSED3~] -OutputList2SigType35=Analog -OutputList2Cue36=[~UNUSED3~] -OutputList2SigType36=Analog -OutputList2Cue37=[~UNUSED3~] -OutputList2SigType37=Analog -OutputList2Cue38=[~UNUSED3~] -OutputList2SigType38=Analog -OutputList2Cue39=[~UNUSED3~] -OutputList2SigType39=Analog -OutputList2Cue40=[~UNUSED3~] -OutputList2SigType40=Analog -OutputList2Cue41=[~UNUSED3~] -OutputList2SigType41=Analog -OutputList2Cue42=[~UNUSED2~] -OutputList2SigType42=Digital|Analog|Serial|String -OutputList2Cue2012=[~EndGroup~]Item Icons -OutputList2SigType2012=Analog -InputList3Cue1=[~UNUSED2~] -InputList3SigType1=Serial -InputList3Cue2=[~UNUSED2~] -InputList3SigType2=Serial -InputList3Cue3=[~UNUSED2~] -InputList3SigType3=Serial -InputList3Cue4=[~UNUSED2~] -InputList3SigType4=Serial -InputList3Cue5=[~UNUSED2~] -InputList3SigType5=Serial -InputList3Cue6=[~UNUSED2~] -InputList3SigType6=Serial -InputList3Cue7=[~UNUSED2~] -InputList3SigType7=Serial -InputList3Cue8=[~UNUSED2~] -InputList3SigType8=Serial -InputList3Cue9=[~UNUSED2~] -InputList3SigType9=Serial -InputList3Cue10=[~UNUSED2~] -InputList3SigType10=Serial -InputList3Cue11=[~BeginGroup~]Item Texts -InputList3SigType11=Serial -InputList3Cue12=Set Item 1 Text -InputList3SigType12=Serial -InputList3Cue13=Set Item 2 Text -InputList3SigType13=Serial -InputList3Cue14=Set Item 3 Text -InputList3SigType14=Serial -InputList3Cue15=Set Item 4 Text -InputList3SigType15=Serial -InputList3Cue16=Set Item 5 Text -InputList3SigType16=Serial -InputList3Cue17=Set Item 6 Text -InputList3SigType17=Serial -InputList3Cue18=Set Item 7 Text -InputList3SigType18=Serial -InputList3Cue19=Set Item 8 Text -InputList3SigType19=Serial -InputList3Cue20=Set Item 9 Text -InputList3SigType20=Serial -InputList3Cue21=Set Item 10 Text -InputList3SigType21=Serial -InputList3Cue22=Set Item 11 Text -InputList3SigType22=Serial -InputList3Cue23=Set Item 12 Text -InputList3SigType23=Serial -InputList3Cue24=Set Item 13 Text -InputList3SigType24=Serial -InputList3Cue25=Set Item 14 Text -InputList3SigType25=Serial -InputList3Cue26=Set Item 15 Text -InputList3SigType26=Serial -InputList3Cue27=Set Item 16 Text -InputList3SigType27=Serial -InputList3Cue28=Set Item 17 Text -InputList3SigType28=Serial -InputList3Cue29=Set Item 18 Text -InputList3SigType29=Serial -InputList3Cue30=Set Item 19 Text -InputList3SigType30=Serial -InputList3Cue31=Set Item 20 Text -InputList3SigType31=Serial -InputList3Cue32=Set Item 21 Text -InputList3SigType32=Serial -InputList3Cue33=Set Item 22 Text -InputList3SigType33=Serial -InputList3Cue34=Set Item 23 Text -InputList3SigType34=Serial -InputList3Cue35=Set Item 24 Text -InputList3SigType35=Serial -InputList3Cue36=Set Item 25 Text -InputList3SigType36=Serial -InputList3Cue37=Set Item 26 Text -InputList3SigType37=Serial -InputList3Cue38=Set Item 27 Text -InputList3SigType38=Serial -InputList3Cue39=Set Item 28 Text -InputList3SigType39=Serial -InputList3Cue40=Set Item 29 Text -InputList3SigType40=Serial -InputList3Cue41=Set Item 30 Text -InputList3SigType41=Serial -InputList3Cue42=[~UNUSED2~] -InputList3SigType42=Digital|Analog|Serial|String -InputList3Cue2012=[~EndGroup~]Item Texts -InputList3SigType2012=Serial -InputList3Cue2013=[~BeginGroup~]Item Icons -InputList3SigType2013=Serial -InputList3Cue2014=Set Item 1 Icon Serial -InputList3SigType2014=Serial -InputList3Cue2015=Set Item 2 Icon Serial -InputList3SigType2015=Serial -InputList3Cue2016=Set Item 3 Icon Serial -InputList3SigType2016=Serial -InputList3Cue2017=Set Item 4 Icon Serial -InputList3SigType2017=Serial -InputList3Cue2018=Set Item 5 Icon Serial -InputList3SigType2018=Serial -InputList3Cue2019=Set Item 6 Icon Serial -InputList3SigType2019=Serial -InputList3Cue2020=Set Item 7 Icon Serial -InputList3SigType2020=Serial -InputList3Cue2021=Set Item 8 Icon Serial -InputList3SigType2021=Serial -InputList3Cue2022=Set Item 9 Icon Serial -InputList3SigType2022=Serial -InputList3Cue2023=Set Item 10 Icon Serial -InputList3SigType2023=Serial -InputList3Cue2024=Set Item 11 Icon Serial -InputList3SigType2024=Serial -InputList3Cue2025=Set Item 12 Icon Serial -InputList3SigType2025=Serial -InputList3Cue2026=Set Item 13 Icon Serial -InputList3SigType2026=Serial -InputList3Cue2027=Set Item 14 Icon Serial -InputList3SigType2027=Serial -InputList3Cue2028=Set Item 15 Icon Serial -InputList3SigType2028=Serial -InputList3Cue2029=Set Item 16 Icon Serial -InputList3SigType2029=Serial -InputList3Cue2030=Set Item 17 Icon Serial -InputList3SigType2030=Serial -InputList3Cue2031=Set Item 18 Icon Serial -InputList3SigType2031=Serial -InputList3Cue2032=Set Item 19 Icon Serial -InputList3SigType2032=Serial -InputList3Cue2033=Set Item 20 Icon Serial -InputList3SigType2033=Serial -InputList3Cue2034=Set Item 21 Icon Serial -InputList3SigType2034=Serial -InputList3Cue2035=Set Item 22 Icon Serial -InputList3SigType2035=Serial -InputList3Cue2036=Set Item 23 Icon Serial -InputList3SigType2036=Serial -InputList3Cue2037=Set Item 24 Icon Serial -InputList3SigType2037=Serial -InputList3Cue2038=Set Item 25 Icon Serial -InputList3SigType2038=Serial -InputList3Cue2039=Set Item 26 Icon Serial -InputList3SigType2039=Serial -InputList3Cue2040=Set Item 27 Icon Serial -InputList3SigType2040=Serial -InputList3Cue2041=Set Item 28 Icon Serial -InputList3SigType2041=Serial -InputList3Cue2042=Set Item 29 Icon Serial -InputList3SigType2042=Serial -InputList3Cue2043=Set Item 30 Icon Serial -InputList3SigType2043=Serial -InputList3Cue2044=[~UNUSED2~] -InputList3SigType2044=Digital|Analog|Serial|String -InputList3Cue4014=[~EndGroup~]Item Icons -InputList3SigType4014=Serial -OutputList3Cue1=[~UNUSED2~] -OutputList3SigType1=Serial -OutputList3Cue2=[~UNUSED2~] -OutputList3SigType2=Serial -OutputList3Cue3=[~UNUSED2~] -OutputList3SigType3=Serial -OutputList3Cue4=[~UNUSED2~] -OutputList3SigType4=Serial -OutputList3Cue5=[~UNUSED2~] -OutputList3SigType5=Serial -OutputList3Cue6=[~UNUSED2~] -OutputList3SigType6=Serial -OutputList3Cue7=[~UNUSED2~] -OutputList3SigType7=Serial -OutputList3Cue8=[~UNUSED2~] -OutputList3SigType8=Serial -OutputList3Cue9=[~UNUSED2~] -OutputList3SigType9=Serial -OutputList3Cue10=[~UNUSED2~] -OutputList3SigType10=Serial -OutputList3Cue11=[~BeginGroup~]Item Texts -OutputList3SigType11=Serial -OutputList3Cue12=[~UNUSED3~] -OutputList3SigType12=Serial -OutputList3Cue13=[~UNUSED3~] -OutputList3SigType13=Serial -OutputList3Cue14=[~UNUSED3~] -OutputList3SigType14=Serial -OutputList3Cue15=[~UNUSED3~] -OutputList3SigType15=Serial -OutputList3Cue16=[~UNUSED3~] -OutputList3SigType16=Serial -OutputList3Cue17=[~UNUSED3~] -OutputList3SigType17=Serial -OutputList3Cue18=[~UNUSED3~] -OutputList3SigType18=Serial -OutputList3Cue19=[~UNUSED3~] -OutputList3SigType19=Serial -OutputList3Cue20=[~UNUSED3~] -OutputList3SigType20=Serial -OutputList3Cue21=[~UNUSED3~] -OutputList3SigType21=Serial -OutputList3Cue22=[~UNUSED3~] -OutputList3SigType22=Serial -OutputList3Cue23=[~UNUSED3~] -OutputList3SigType23=Serial -OutputList3Cue24=[~UNUSED3~] -OutputList3SigType24=Serial -OutputList3Cue25=[~UNUSED3~] -OutputList3SigType25=Serial -OutputList3Cue26=[~UNUSED3~] -OutputList3SigType26=Serial -OutputList3Cue27=[~UNUSED3~] -OutputList3SigType27=Serial -OutputList3Cue28=[~UNUSED3~] -OutputList3SigType28=Serial -OutputList3Cue29=[~UNUSED3~] -OutputList3SigType29=Serial -OutputList3Cue30=[~UNUSED3~] -OutputList3SigType30=Serial -OutputList3Cue31=[~UNUSED3~] -OutputList3SigType31=Serial -OutputList3Cue32=[~UNUSED3~] -OutputList3SigType32=Serial -OutputList3Cue33=[~UNUSED3~] -OutputList3SigType33=Serial -OutputList3Cue34=[~UNUSED3~] -OutputList3SigType34=Serial -OutputList3Cue35=[~UNUSED3~] -OutputList3SigType35=Serial -OutputList3Cue36=[~UNUSED3~] -OutputList3SigType36=Serial -OutputList3Cue37=[~UNUSED3~] -OutputList3SigType37=Serial -OutputList3Cue38=[~UNUSED3~] -OutputList3SigType38=Serial -OutputList3Cue39=[~UNUSED3~] -OutputList3SigType39=Serial -OutputList3Cue40=[~UNUSED3~] -OutputList3SigType40=Serial -OutputList3Cue41=[~UNUSED3~] -OutputList3SigType41=Serial -OutputList3Cue42=[~UNUSED2~] -OutputList3SigType42=Digital|Analog|Serial|String -OutputList3Cue2012=[~EndGroup~]Item Texts -OutputList3SigType2012=Serial -OutputList3Cue2013=[~BeginGroup~]Item Icons -OutputList3SigType2013=Serial -OutputList3Cue2014=[~UNUSED3~] -OutputList3SigType2014=Serial -OutputList3Cue2015=[~UNUSED3~] -OutputList3SigType2015=Serial -OutputList3Cue2016=[~UNUSED3~] -OutputList3SigType2016=Serial -OutputList3Cue2017=[~UNUSED3~] -OutputList3SigType2017=Serial -OutputList3Cue2018=[~UNUSED3~] -OutputList3SigType2018=Serial -OutputList3Cue2019=[~UNUSED3~] -OutputList3SigType2019=Serial -OutputList3Cue2020=[~UNUSED3~] -OutputList3SigType2020=Serial -OutputList3Cue2021=[~UNUSED3~] -OutputList3SigType2021=Serial -OutputList3Cue2022=[~UNUSED3~] -OutputList3SigType2022=Serial -OutputList3Cue2023=[~UNUSED3~] -OutputList3SigType2023=Serial -OutputList3Cue2024=[~UNUSED3~] -OutputList3SigType2024=Serial -OutputList3Cue2025=[~UNUSED3~] -OutputList3SigType2025=Serial -OutputList3Cue2026=[~UNUSED3~] -OutputList3SigType2026=Serial -OutputList3Cue2027=[~UNUSED3~] -OutputList3SigType2027=Serial -OutputList3Cue2028=[~UNUSED3~] -OutputList3SigType2028=Serial -OutputList3Cue2029=[~UNUSED3~] -OutputList3SigType2029=Serial -OutputList3Cue2030=[~UNUSED3~] -OutputList3SigType2030=Serial -OutputList3Cue2031=[~UNUSED3~] -OutputList3SigType2031=Serial -OutputList3Cue2032=[~UNUSED3~] -OutputList3SigType2032=Serial -OutputList3Cue2033=[~UNUSED3~] -OutputList3SigType2033=Serial -OutputList3Cue2034=[~UNUSED3~] -OutputList3SigType2034=Serial -OutputList3Cue2035=[~UNUSED3~] -OutputList3SigType2035=Serial -OutputList3Cue2036=[~UNUSED3~] -OutputList3SigType2036=Serial -OutputList3Cue2037=[~UNUSED3~] -OutputList3SigType2037=Serial -OutputList3Cue2038=[~UNUSED3~] -OutputList3SigType2038=Serial -OutputList3Cue2039=[~UNUSED3~] -OutputList3SigType2039=Serial -OutputList3Cue2040=[~UNUSED3~] -OutputList3SigType2040=Serial -OutputList3Cue2041=[~UNUSED3~] -OutputList3SigType2041=Serial -OutputList3Cue2042=[~UNUSED3~] -OutputList3SigType2042=Serial -OutputList3Cue2043=[~UNUSED3~] -OutputList3SigType2043=Serial -OutputList3Cue2044=[~UNUSED2~] -OutputList3SigType2044=Digital|Analog|Serial|String -OutputList3Cue4014=[~EndGroup~]Item Icons -OutputList3SigType4014=Serial -ParamCue1=SmartObjectId -ParamSigType1=Constant -MPp=1 -Pp1=19 -CedH=19 -SmartObjId=1203d -] -; Parameter Properties for Smart Object ID -[ -ObjTp=Dp -H=19 -Tp=1 -HD=TRUE -DV=1203d -NF=1 -DNF=1 -EncFmt=0 -DVLF=1 -Sgn=0 -] -; Smart Objects Definition section -[ -ObjTp=CED -H=19 -Name=PepperDash Essentials iPad_[D.VC] Recents_Dynamic Button List Vertical_2.ced -;Cedver is the version of the Smart Graphics control, not the CED file format. -;If the control definition changes, increment this. -CedVer=1 -] diff --git a/PepperDashEssentials/UI - FILES ORPHANED-DELETE/CrestronTouchpanelPropertiesConfig.cs b/PepperDashEssentials/UI - FILES ORPHANED-DELETE/CrestronTouchpanelPropertiesConfig.cs deleted file mode 100644 index f327e0d5..00000000 --- a/PepperDashEssentials/UI - FILES ORPHANED-DELETE/CrestronTouchpanelPropertiesConfig.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace PepperDash.Essentials -{ - public class CrestronTouchpanelPropertiesConfig - { - public string IpId { get; set; } - public string DefaultRoomKey { get; set; } - public string RoomListKey { get; set; } - public string SgdFile { get; set; } - public string ProjectName { get; set; } - public bool ShowVolumeGauge { get; set; } - public bool UsesSplashPage { get; set; } - public bool ShowDate { get; set; } - public bool ShowTime { get; set; } - public UiSetupPropertiesConfig Setup { get; set; } - - /// - /// The count of sources that will trigger the "additional" arrows to show on the SRL. - /// Defaults to 5 - /// - public int SourcesOverflowCount { get; set; } - - public CrestronTouchpanelPropertiesConfig() - { - SourcesOverflowCount = 5; - } - } - - public class UiSetupPropertiesConfig - { - public bool IsVisible { get; set; } - } - -} \ No newline at end of file diff --git a/PepperDashEssentials/UI - FILES ORPHANED-DELETE/DualDisplaySourceSRLController.cs b/PepperDashEssentials/UI - FILES ORPHANED-DELETE/DualDisplaySourceSRLController.cs deleted file mode 100644 index c91d72f1..00000000 --- a/PepperDashEssentials/UI - FILES ORPHANED-DELETE/DualDisplaySourceSRLController.cs +++ /dev/null @@ -1,28 +0,0 @@ -//using System; -//using System.Collections.Generic; -//using System.Linq; -//using System.Text; -//using Crestron.SimplSharp; -//using Crestron.SimplSharpPro; -//using Crestron.SimplSharpPro.DeviceSupport; -//using Crestron.SimplSharpPro.UI; - -//using PepperDash.Essentials.Core; - -//namespace PepperDash.Essentials -//{ -// public class DualDisplaySourceSRLController : SubpageReferenceList -// { -// public DualDisplaySourceSRLController(BasicTriListWithSmartObject triList, -// uint smartObjectId, EssentialsPresentationRoom room) -// : base(triList, smartObjectId, 3, 3, 3) -// { -// var srcList = room.s items.Values.ToList().OrderBy(s => s.Order); -// foreach (var item in srcList) -// { -// GetBoolFeedbackSig(index, 1).UserObject = new Action(routeAction); - -// } -// } -// } -//} \ No newline at end of file diff --git a/PepperDashEssentials/UI - FILES ORPHANED-DELETE/EssentialsTouchpanelController.cs b/PepperDashEssentials/UI - FILES ORPHANED-DELETE/EssentialsTouchpanelController.cs deleted file mode 100644 index 8ad6ab1a..00000000 --- a/PepperDashEssentials/UI - FILES ORPHANED-DELETE/EssentialsTouchpanelController.cs +++ /dev/null @@ -1,221 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharp.CrestronIO; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.UI; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.PageManagers; - -namespace PepperDash.Essentials -{ - public class EssentialsTouchpanelController : Device - { - public BasicTriListWithSmartObject Panel { get; private set; } - - public PanelDriverBase PanelDriver { get; private set; } - - CTimer BacklightTransitionedOnTimer; - - public EssentialsTouchpanelController(string key, string name, Tswx52ButtonVoiceControl tsw, - string projectName, string sgdPath) - : base(key, name) - { - Panel = tsw; - tsw.LoadSmartObjects(sgdPath); - tsw.SigChange += new Crestron.SimplSharpPro.DeviceSupport.SigEventHandler(Tsw_SigChange); - } - - /// - /// Config constructor - /// - public EssentialsTouchpanelController(string key, string name, string type, CrestronTouchpanelPropertiesConfig props, uint id) - : base(key, name) - { - AddPostActivationAction(() => - { - Debug.Console(0, this, "post-activation linking"); - type = type.ToLower(); - try - { - if (type == "crestronapp") - { - var app = new CrestronApp(id, Global.ControlSystem); - app.ParameterProjectName.Value = props.ProjectName; - Panel = app; - } - else if (type == "tsw560") - Panel = new Tsw560(id, Global.ControlSystem); - else if (type == "tsw752") - Panel = new Tsw752(id, Global.ControlSystem); - else if (type == "tsw1052") - Panel = new Tsw1052(id, Global.ControlSystem); - else - { - Debug.Console(0, this, "WARNING: Cannot create TSW controller with type '{0}'", type); - return; - } - } - catch (Exception e) - { - Debug.Console(0, this, "WARNING: Cannot create TSW base class. Panel will not function: {0}", e.Message); - return; - } - - // Reserved sigs - if (Panel is TswFt5ButtonSystem) - { - var tsw = Panel as TswFt5ButtonSystem; - tsw.ExtenderSystemReservedSigs.Use(); - tsw.ExtenderSystemReservedSigs.DeviceExtenderSigChange - += ExtenderSystemReservedSigs_DeviceExtenderSigChange; - } - - new CTimer(o => - { - var regSuccess = Panel.Register(); - if (regSuccess != eDeviceRegistrationUnRegistrationResponse.Success) - Debug.Console(0, this, "WARNING: Registration failed. Continuing, but panel may not function: {0}", regSuccess); - - // Give up cleanly if SGD is not present. - var sgdName = @"\NVRAM\Program" + InitialParametersClass.ApplicationNumber - + @"\sgd\" + props.SgdFile; - if (!File.Exists(sgdName)) - { - Debug.Console(0, this, "WARNING: Smart object file '{0}' not present. Exiting TSW load", sgdName); - return; - } - - Panel.LoadSmartObjects(sgdName); - Panel.SigChange += Tsw_SigChange; - - var mainDriver = new EssentialsPanelMainInterfaceDriver(Panel, props); - // Then the AV driver - - // spin up different room drivers depending on room type - var room = DeviceManager.GetDeviceForKey(props.DefaultRoomKey); - if (room is EssentialsHuddleSpaceRoom) - { - Debug.Console(0, this, "Adding huddle space driver"); - var avDriver = new EssentialsHuddlePanelAvFunctionsDriver(mainDriver, props); - avDriver.CurrentRoom = room as EssentialsHuddleSpaceRoom; - avDriver.DefaultRoomKey = props.DefaultRoomKey; - mainDriver.AvDriver = avDriver; - LoadAndShowDriver(mainDriver); // This is a little convoluted. - - if (Panel is TswFt5ButtonSystem) - { - var tsw = Panel as TswFt5ButtonSystem; - // Wire up hard keys - tsw.Power.UserObject = new Action(b => { if (!b) avDriver.PowerButtonPressed(); }); - //tsw.Home.UserObject = new Action(b => { if (!b) HomePressed(); }); - tsw.Up.UserObject = new Action(avDriver.VolumeUpPress); - tsw.Down.UserObject = new Action(avDriver.VolumeDownPress); - tsw.ButtonStateChange += new ButtonEventHandler(Tsw_ButtonStateChange); - } - } - else if (room is EssentialsPresentationRoom) - { - Debug.Console(0, this, "Adding presentation room driver"); - var avDriver = new EssentialsPresentationPanelAvFunctionsDriver(mainDriver, props); - avDriver.CurrentRoom = room as EssentialsPresentationRoom; - avDriver.DefaultRoomKey = props.DefaultRoomKey; - mainDriver.AvDriver = avDriver; - LoadAndShowDriver(mainDriver); - - if (Panel is TswFt5ButtonSystem) - { - var tsw = Panel as TswFt5ButtonSystem; - // Wire up hard keys - tsw.Power.UserObject = new Action(b => { if (!b) avDriver.PowerButtonPressed(); }); - //tsw.Home.UserObject = new Action(b => { if (!b) HomePressed(); }); - tsw.Up.UserObject = new Action(avDriver.VolumeUpPress); - tsw.Down.UserObject = new Action(avDriver.VolumeDownPress); - tsw.ButtonStateChange += new ButtonEventHandler(Tsw_ButtonStateChange); - } - } - else - { - Debug.Console(0, this, "ERROR: Cannot load AvFunctionsDriver for room '{0}'", props.DefaultRoomKey); - } - }, 0); - }); - } - - public void LoadAndShowDriver(PanelDriverBase driver) - { - PanelDriver = driver; - driver.Show(); - } - - void HomePressed() - { - if (BacklightTransitionedOnTimer == null) - PanelDriver.BackButtonPressed(); - } - - - void ExtenderSystemReservedSigs_DeviceExtenderSigChange(DeviceExtender currentDeviceExtender, SigEventArgs args) - { - // If the sig is transitioning on, mark it in case it was home button that transitioned it - var blOnSig = (Panel as TswFt5ButtonSystem).ExtenderSystemReservedSigs.BacklightOnFeedback; - if (args.Sig == blOnSig && blOnSig.BoolValue) - { - BacklightTransitionedOnTimer = new CTimer(o => - { - BacklightTransitionedOnTimer = null; - }, 200); - } - } - - public void PulseBool(uint join) - { - var act = Panel.BooleanInput[join].UserObject as Action; - if (act != null) - { - act(true); - act(false); - } - } - - public void SetBoolSig(uint join, bool value) - { - var act = Panel.BooleanInput[join].UserObject as Action; - if (act != null) - act(value); - } - - public void SetIntSig(uint join, ushort value) - { - var act = Panel.BooleanInput[join].UserObject as Action; - if (act != null) - { - act(value); - } - } - - void Tsw_SigChange(object currentDevice, Crestron.SimplSharpPro.SigEventArgs args) - { - if (Debug.Level == 2) - Debug.Console(2, this, "Sig change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue); - var uo = args.Sig.UserObject; - if (uo is Action) - (uo as Action)(args.Sig.BoolValue); - else if (uo is Action) - (uo as Action)(args.Sig.UShortValue); - else if (uo is Action) - (uo as Action)(args.Sig.StringValue); - } - - void Tsw_ButtonStateChange(GenericBase device, ButtonEventArgs args) - { - var uo = args.Button.UserObject; - if(uo is Action) - (uo as Action)(args.Button.State == eButtonState.Pressed); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UI - FILES ORPHANED-DELETE/SubpageReferenceListActivityItem.cs b/PepperDashEssentials/UI - FILES ORPHANED-DELETE/SubpageReferenceListActivityItem.cs deleted file mode 100644 index 4747a61a..00000000 --- a/PepperDashEssentials/UI - FILES ORPHANED-DELETE/SubpageReferenceListActivityItem.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.UI; - -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials -{ - public class SubpageReferenceListActivityItem : SubpageReferenceListItem - { - /// - /// - /// - /// - /// - /// 0=Share, 1=Phone Call, 2=Video Call, 3=End Meeting - /// - public SubpageReferenceListActivityItem(uint index, SubpageReferenceList owner, - ushort buttonMode, Action pressAction) - : base(index, owner) - { - Owner.GetBoolFeedbackSig(Index, 1).UserObject = pressAction; - Owner.UShortInputSig(Index, 1).UShortValue = buttonMode; - } - - /// - /// Called by SRL to release all referenced objects - /// - public override void Clear() - { - Owner.BoolInputSig(Index, 1).UserObject = null; - Owner.UShortInputSig(Index, 1).UShortValue = 0; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UI - FILES ORPHANED-DELETE/SubpageReferenceListSourceItem.cs b/PepperDashEssentials/UI - FILES ORPHANED-DELETE/SubpageReferenceListSourceItem.cs deleted file mode 100644 index 73cc5e71..00000000 --- a/PepperDashEssentials/UI - FILES ORPHANED-DELETE/SubpageReferenceListSourceItem.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.UI; - -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials -{ - public class SubpageReferenceListSourceItem : SubpageReferenceListItem - { - public SourceListItem SourceItem { get; private set; } - - public SubpageReferenceListSourceItem(uint index, SubpageReferenceList owner, - SourceListItem sourceItem, Action routeAction) - : base(index, owner) - { - SourceItem = sourceItem; - owner.GetBoolFeedbackSig(index, 1).UserObject = new Action(routeAction); - owner.StringInputSig(index, 1).StringValue = SourceItem.PreferredName; - } - - public void RegisterForSourceChange(IHasCurrentSourceInfoChange room) - { - room.CurrentSingleSourceChange -= room_CurrentSourceInfoChange; - room.CurrentSingleSourceChange += room_CurrentSourceInfoChange; - } - - void room_CurrentSourceInfoChange(EssentialsRoomBase room, SourceListItem info, ChangeType type) - { - if (type == ChangeType.WillChange && info == SourceItem) - ClearFeedback(); - else if (type == ChangeType.DidChange && info == SourceItem) - SetFeedback(); - } - - /// - /// Called by SRL to release all referenced objects - /// - public override void Clear() - { - Owner.BoolInputSig(Index, 1).UserObject = null; - Owner.StringInputSig(Index, 1).StringValue = ""; - } - - /// - /// Sets the selected feedback on the button - /// - public void SetFeedback() - { - Owner.BoolInputSig(Index, 1).BoolValue = true; - } - - /// - /// Clears the selected feedback on the button - /// - public void ClearFeedback() - { - Owner.BoolInputSig(Index, 1).BoolValue = false; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UI/DualDisplaySourceSRLController.cs b/PepperDashEssentials/UI/DualDisplaySourceSRLController.cs deleted file mode 100644 index c91d72f1..00000000 --- a/PepperDashEssentials/UI/DualDisplaySourceSRLController.cs +++ /dev/null @@ -1,28 +0,0 @@ -//using System; -//using System.Collections.Generic; -//using System.Linq; -//using System.Text; -//using Crestron.SimplSharp; -//using Crestron.SimplSharpPro; -//using Crestron.SimplSharpPro.DeviceSupport; -//using Crestron.SimplSharpPro.UI; - -//using PepperDash.Essentials.Core; - -//namespace PepperDash.Essentials -//{ -// public class DualDisplaySourceSRLController : SubpageReferenceList -// { -// public DualDisplaySourceSRLController(BasicTriListWithSmartObject triList, -// uint smartObjectId, EssentialsPresentationRoom room) -// : base(triList, smartObjectId, 3, 3, 3) -// { -// var srcList = room.s items.Values.ToList().OrderBy(s => s.Order); -// foreach (var item in srcList) -// { -// GetBoolFeedbackSig(index, 1).UserObject = new Action(routeAction); - -// } -// } -// } -//} \ No newline at end of file diff --git a/PepperDashEssentials/UI/EssentialsTouchpanelController.cs b/PepperDashEssentials/UI/EssentialsTouchpanelController.cs deleted file mode 100644 index 67f25f42..00000000 --- a/PepperDashEssentials/UI/EssentialsTouchpanelController.cs +++ /dev/null @@ -1,288 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharp.CrestronIO; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.UI; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.PageManagers; -using PepperDash.Essentials.Core.UI; -using Newtonsoft.Json; - -namespace PepperDash.Essentials -{ - public class EssentialsTouchpanelController : TouchpanelBase - { - public PanelDriverBase PanelDriver { get; private set; } - - CTimer BacklightTransitionedOnTimer; - - /// - /// Config constructor - /// - public EssentialsTouchpanelController(string key, string name, BasicTriListWithSmartObject panel, CrestronTouchpanelPropertiesConfig config) - : base(key, name, panel, config) - { - } - - - /// - /// Sets up drivers and links them to the room specified - /// - /// key of room to link the drivers to - protected override void SetupPanelDrivers(string roomKey) - { - // Clear out any existing actions - Panel.ClearAllSigActions(); - - Debug.Console(0, this, "Linking TP '{0}' to Room '{1}'", Key, roomKey); - - var mainDriver = new EssentialsPanelMainInterfaceDriver(Panel, _config); - // Then the sub drivers - - // spin up different room drivers depending on room type - var room = DeviceManager.GetDeviceForKey(roomKey); - if (room is IEssentialsHuddleSpaceRoom) - { - // Screen Saver Driver - - mainDriver.ScreenSaverController = new ScreenSaverController(mainDriver, _config); - - // Header Driver - Debug.Console(0, this, "Adding header driver"); - mainDriver.HeaderDriver = new EssentialsHeaderDriver(mainDriver, _config); - - // AV Driver - Debug.Console(0, this, "Adding huddle space AV driver"); - var avDriver = new EssentialsHuddlePanelAvFunctionsDriver(mainDriver, _config); - avDriver.DefaultRoomKey = roomKey; - mainDriver.AvDriver = avDriver; - avDriver.CurrentRoom = room as IEssentialsHuddleSpaceRoom; - - // Environment Driver - if (avDriver.CurrentRoom.PropertiesConfig.Environment != null && avDriver.CurrentRoom.PropertiesConfig.Environment.DeviceKeys.Count > 0) - { - Debug.Console(0, this, "Adding environment driver"); - mainDriver.EnvironmentDriver = new EssentialsEnvironmentDriver(mainDriver, _config); - - mainDriver.EnvironmentDriver.GetDevicesFromConfig(avDriver.CurrentRoom.PropertiesConfig.Environment); - } - - mainDriver.HeaderDriver.SetupHeaderButtons(avDriver, avDriver.CurrentRoom); - - if (Panel is TswFt5ButtonSystem) - { - var tsw = Panel as TswFt5ButtonSystem; - // Wire up hard keys - tsw.Power.UserObject = new Action(b => { if (!b) avDriver.PowerButtonPressed(); }); - if (mainDriver.EnvironmentDriver != null) - tsw.Lights.UserObject = new Action(b => - { - if (!b) - { - mainDriver.EnvironmentDriver.Toggle(); - } - }); - tsw.Up.UserObject = new Action(avDriver.VolumeUpPress); - tsw.Down.UserObject = new Action(avDriver.VolumeDownPress); - } - } - else if (room is IEssentialsHuddleVtc1Room) - { - Debug.Console(0, this, "Adding huddle space VTC AV driver"); - - // Screen Saver Driver - mainDriver.ScreenSaverController = new ScreenSaverController(mainDriver, _config); - - // Header Driver - mainDriver.HeaderDriver = new EssentialsHeaderDriver(mainDriver, _config); - - // AV Driver - var avDriver = new EssentialsHuddleVtc1PanelAvFunctionsDriver(mainDriver, _config); - - var codecDriver = new PepperDash.Essentials.UIDrivers.VC.EssentialsVideoCodecUiDriver(Panel, avDriver, - (room as IEssentialsHuddleVtc1Room).VideoCodec, mainDriver.HeaderDriver); - avDriver.SetVideoCodecDriver(codecDriver); - avDriver.DefaultRoomKey = roomKey; - mainDriver.AvDriver = avDriver; - avDriver.CurrentRoom = room as IEssentialsHuddleVtc1Room; - - // Environment Driver - if (avDriver.CurrentRoom.PropertiesConfig.Environment != null && avDriver.CurrentRoom.PropertiesConfig.Environment.DeviceKeys.Count > 0) - { - Debug.Console(0, this, "Adding environment driver"); - mainDriver.EnvironmentDriver = new EssentialsEnvironmentDriver(mainDriver, _config); - - mainDriver.EnvironmentDriver.GetDevicesFromConfig(avDriver.CurrentRoom.PropertiesConfig.Environment); - } - - mainDriver.HeaderDriver.SetupHeaderButtons(avDriver, avDriver.CurrentRoom); - - - if (Panel is TswFt5ButtonSystem) - { - var tsw = Panel as TswFt5ButtonSystem; - // Wire up hard keys - tsw.Power.UserObject = new Action(b => { if (!b) avDriver.EndMeetingPress(); }); - if (mainDriver.EnvironmentDriver != null) - tsw.Lights.UserObject = new Action(b => - { - if (!b) - { - mainDriver.EnvironmentDriver.Toggle(); - } - }); - tsw.Up.UserObject = new Action(avDriver.VolumeUpPress); - tsw.Down.UserObject = new Action(avDriver.VolumeDownPress); - } - - LoadAndShowDriver(mainDriver); - } - else - { - Debug.Console(0, this, "ERROR: Cannot load AvFunctionsDriver for room '{0}'", roomKey); - } - - } - - public void LoadAndShowDriver(PanelDriverBase driver) - { - if (PanelDriver != null) - { - var mainDriver = PanelDriver as EssentialsPanelMainInterfaceDriver; - if (mainDriver != null) - { - mainDriver.Dispose(); - } - } - - PanelDriver = driver; - driver.Show(); - } - - protected override void ExtenderSystemReservedSigs_DeviceExtenderSigChange(DeviceExtender currentDeviceExtender, SigEventArgs args) - { - // If the sig is transitioning on, mark it in case it was home button that transitioned it - var blOnSig = (Panel as TswFt5ButtonSystem).ExtenderSystemReservedSigs.BacklightOnFeedback; - if (args.Sig == blOnSig && blOnSig.BoolValue) - { - BacklightTransitionedOnTimer = new CTimer(o => - { - BacklightTransitionedOnTimer = null; - }, 200); - } - } - - public void PulseBool(uint join) - { - var act = Panel.BooleanInput[join].UserObject as Action; - if (act != null) - { - act(true); - act(false); - } - } - - public void SetBoolSig(uint join, bool value) - { - var act = Panel.BooleanInput[join].UserObject as Action; - if (act != null) - act(value); - } - - public void SetIntSig(uint join, ushort value) - { - var act = Panel.BooleanInput[join].UserObject as Action; - if (act != null) - { - act(value); - } - } - } - - public class EssentialsTouchpanelControllerFactory : EssentialsDeviceFactory - { - public EssentialsTouchpanelControllerFactory() - { - TypeNames = new List() { "crestronapp", "tsw550", "tsw750", "tsw1050", "tsw560", "tsw760", "tsw1060", "tsw570", "tsw770", "ts770", "tsw1070", "ts1070", "xpanel" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - var comm = CommFactory.GetControlPropertiesConfig(dc); - var props = JsonConvert.DeserializeObject(dc.Properties.ToString()); - - var panel = GetPanelForType(dc.Type, comm.IpIdInt, props.ProjectName); - - if (panel == null) - { - Debug.Console(0, "Unable to create Touchpanel for type {0}. Touchpanel Controller WILL NOT function correctly", dc.Type); - } - - Debug.Console(1, "Factory Attempting to create new EssentialsTouchpanelController"); - - var panelController = new EssentialsTouchpanelController(dc.Key, dc.Name, panel, props); - - return panelController; - } - - private BasicTriListWithSmartObject GetPanelForType(string type, uint id, string projectName) - { - type = type.ToLower(); - try - { - if (type == "crestronapp") - { - var app = new CrestronApp(id, Global.ControlSystem); - app.ParameterProjectName.Value = projectName; - return app; - } - else if (type == "xpanel") - return new XpanelForSmartGraphics(id, Global.ControlSystem); - else if (type == "tsw550") - return new Tsw550(id, Global.ControlSystem); - else if (type == "tsw552") - return new Tsw552(id, Global.ControlSystem); - else if (type == "tsw560") - return new Tsw560(id, Global.ControlSystem); - else if (type == "tsw750") - return new Tsw750(id, Global.ControlSystem); - else if (type == "tsw752") - return new Tsw752(id, Global.ControlSystem); - else if (type == "tsw760") - return new Tsw760(id, Global.ControlSystem); - else if (type == "tsw1050") - return new Tsw1050(id, Global.ControlSystem); - else if (type == "tsw1052") - return new Tsw1052(id, Global.ControlSystem); - else if (type == "tsw1060") - return new Tsw1060(id, Global.ControlSystem); - else if (type == "tsw570") - return new Tsw570(id, Global.ControlSystem); - else if (type == "tsw770") - return new Tsw770(id, Global.ControlSystem); - else if (type == "ts770") - return new Ts770(id, Global.ControlSystem); - else if (type == "tsw1070") - return new Tsw1070(id, Global.ControlSystem); - else if (type == "ts1070") - return new Ts1070(id, Global.ControlSystem); - else - { - Debug.Console(0, Debug.ErrorLogLevel.Notice, "WARNING: Cannot create TSW controller with type '{0}'", type); - return null; - } - } - catch (Exception e) - { - Debug.Console(0, Debug.ErrorLogLevel.Notice, "WARNING: Cannot create TSW base class. Panel will not function: {0}", e.Message); - return null; - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs b/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs deleted file mode 100644 index 1a127000..00000000 --- a/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs +++ /dev/null @@ -1,991 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; - -namespace PepperDash.Essentials -{ - /// - /// Where all UI element common joins are defined - /// - public class UIBoolJoin - { - /// - /// 901 - /// - public const uint VolumeUpPress = 901; - /// - /// 902 - /// - public const uint VolumeDownPress = 902; - - //**************************************************** - // Codec General - - /// - /// 1001 - /// - public const uint CallEndPress = 1001; - /// - /// 1002 - /// - public const uint CallEndAllConfirmPress = 1002; - /// - /// 1003 - For tapping the text field to reveal the keyboard - /// - public const uint CodecDirectorySearchTextPress = 1003; - /// - /// 1004 - /// - public const uint CallStopSharingPress = 1004; - /// - /// 1005 - /// - public const uint CallSharedSourceInfoVisible = 1005; - /// - /// 1006 - /// - public const uint CallEndAllConfirmVisible = 1006; - /// - /// 1007 - /// - public const uint MeetingPasswordVisible = 1007; - /// - /// 1008 - /// - public const uint MeetingLeavePress = 1008; - - - - - - // Audio Conference - /// - /// 1101 - /// - public const uint ACKeypadVisible = 1101; - /// - /// 1102 - /// - public const uint ACStagingPopoverVisible = 1102; - /// - /// 1111 - /// - public const uint ACSpeedDial1Press = 1111; - /// - /// 1112 - /// - public const uint ACSpeedDial2Press = 1112; - /// - /// 1113 - /// - public const uint ACSpeedDial3Press = 1113; - /// - /// 1114 - /// - public const uint ACSpeedDial4Press = 1114; - /// - /// 1121 - /// - public const uint ACSpeedDial1Visible = 1121; - /// - /// 1122 - /// - public const uint ACSpeedDial2Visible = 1122; - /// - /// 1123 - /// - public const uint ACSpeedDial3Visible = 1123; - /// - /// 1124 - /// - public const uint ACSpeedDial4Visible = 1124; - - //****************************************************** - // Video Conference - /// - /// 1201 - /// - public const uint VCKeypadWithFavoritesVisible = 1201; - /// - /// 1202 - /// - public const uint VCStagingInactivePopoverWithRecentsVisible = 1202; - /// - /// - /// - public const uint VCStagingActivePopoverVisible = 1203; - /// - /// - /// - public const uint VCKeypadVisible = 1204; - /// - /// 1205 - /// - public const uint VCDirectoryVisible = 1205; - /// - /// 1206 - /// - public const uint VCRecentsVisible = 1206; - - /// - /// 1202 - /// - public const uint VCStagingInactivePopoverWithoutRecentsVisible = 1207; - - /// - /// 1208 - /// - public const uint VCCameraAutoVisible = 1208; - - /// - /// 1209 - /// - public const uint VCCameraManualVisible = 1209; - - /// - /// 1210 - /// - public const uint VCCameraOffVisible = 1210; - - /// - /// 1211 - 1215 - /// - public const uint VCFavoritePressStart = 1211; - // RANGE IN USE - public const uint VCFavoritePressEnd = 1215; - /// - /// 1221 - 1225 - /// - public const uint VCFavoriteVisibleStart = 1221; - // RANGE IN USE - public const uint VCFavoriteVisibleEnd = 1225; - - /// - /// 1230 - /// - public const uint VCStagingMeetNowPress = 1230; - /// - /// 1231 - /// - public const uint VCStagingRecentsPress = 1231; - /// - /// 1232 - /// - public const uint VCStagingDirectoryPress = 1232; - /// - /// 1233 - /// - public const uint VCStagingKeypadPress = 1233; - /// - /// 1234 - /// - public const uint VCStagingConnectPress = 1234; - /// - /// 1235 - /// - public const uint VCStagingCameraPress = 1235; - /// - /// 1236 - /// - public const uint VCStagingConnectEnable = 1236; - /// - /// 1237 - When the user touches the text field, should trigger keyboard - /// - public const uint VCKeypadTextPress = 1237; - /// - /// 1238 - /// - public const uint VCKeypadBackspacePress = 1238; - /// - /// 1239 - /// - public const uint VCKeypadBackspaceVisible = 1239; - /// - /// 1240 - /// - public const uint VCDirectoryBackPress = 1240; - /// - /// 1241 For touching the text area to bring up keyboard - /// - public const uint VCDirectorySearchTextPress = 1241; - /// - /// 1242 - /// - public const uint VCStagingSelfViewLayoutPress = 1242; - /// - /// 1243 - /// - public const uint VCDirectoryBackVisible = 1243; - /// - /// 1244 - /// - public const uint VCDirectoryBackspacePress = 1244; - /// - /// 1245 - /// - public const uint VCDirectoryBackspaceVisible = 1245; - /// - /// 1251 - /// - public const uint VCSelfViewTogglePress = 1251; - /// - /// 1252 - /// - public const uint VCLayoutTogglePress = 1252; - /// - /// 1253 - /// - public const uint VCSelfViewPipTogglePress = 1253; - /// - /// 1254 - /// - public const uint VCLayoutToggleEnable = 1254; - /// - /// 1255 - /// - public const uint VCMinMaxPress = 1255; - /// - /// 1256 - /// - public const uint VCMinMaxEnable = 1256; - - /// - /// 1260 - /// - public const uint VCCameraModeBarVisible = 1260; - - /// - /// 1261 - /// - public const uint VCCameraSelectBarWithoutModeVisible = 1261; - - /// - /// 1262 - /// - public const uint VCCameraAutoModeIsOnFb = 1262; - - /// - /// 1271 - /// - public const uint VCCameraZoomIn = 1271; - /// - /// 1272 - /// - public const uint VCCameraZoomOut = 1272; - - - /// - /// 1280 - /// - public const uint VCCameraPresetSavedLabelVisible = 1280; - /// - /// 1281 - /// - public const uint VCCameraPreset1 = 1281; - /// - /// 1282 - /// - public const uint VCCameraPreset2 = 1282; - /// - /// 1283 - /// - public const uint VCCameraPreset3 = 1283; - - - /// - /// 1291 - /// - public const uint VCCameraPreset1Visible = 1291; - /// - /// 1292 - /// - public const uint VCCameraPreset2Visible = 1292; - /// - /// 1293 - /// - public const uint VCCameraPreset3Visible = 1293; - - - // Letter joins start at 2921; - - //****************************************************** - - // Environment Joins - - // Popup Container - - /// - /// 2001 - 2004 - /// - public const uint EnvironmentBackgroundSubpageVisibleBase = 2000; - - - // ColumnOne - - /// - /// 2011 - 2015 - /// - public const uint EnvironmentColumnOneLightingTypeVisibleBase = 2010; - - /// - /// 2016 - 2020 - /// - public const uint EnvironmentColumnOneShadingTypeVisibleBase = 2015; - - // ColumnTwo - - /// - /// 2021 - 2025 - /// - public const uint EnvironmentColumnTwoLightingTypeVisibleBase = 2020; - - /// - /// 2026 - 2030 - /// - public const uint EnvironmentColumnTwoShadingTypeVisibleBase = 2025; - - // ColumnThree - - /// - /// 2031 - 2035 - /// - public const uint EnvironmentColumnThreeLightingTypeVisibleBase = 2030; - - /// - /// 2036 - 2040 - /// - public const uint EnvironmentColumnThreeShadingTypeVisibleBase = 2035; - - // ColumnFour - - /// - /// 2041 - 2045 - /// - public const uint EnvironmentColumnFourLightingTypeVisibleBase = 2040; - - /// - /// 2046 - 2050 - /// - public const uint EnvironmentColumnFourShadingTypeVisibleBase = 2045; - - // Button press - - /// - /// 2051 - 2060 - /// - public const uint EnvironmentColumnOneButtonPressBase = 2050; - - /// - /// 2061 - 2070 - /// - public const uint EnvironmentColumnTwoButtonPressBase = 2060; - - /// - /// 2071 - 2080 - /// - public const uint EnvironmentColumnThreeButtonPressBase = 2070; - - /// - /// 2081 - 2090 - /// - public const uint EnvironmentColumnFourButtonPressBase = 2080; - - // Button visibility - - /// - /// 2151 - 2160 - /// - public const uint EnvironmentColumnOneButtonVisibleBase = 2150; - - /// - /// 2161 - 2170 - /// - public const uint EnvironmentColumnTwoButtonVisibleBase = 2160; - - /// - /// 2171 - 2180 - /// - public const uint EnvironmentColumnThreeButtonVisibleBase = 2170; - - /// - /// 2181 - 2190 - /// - public const uint EnvironmentColumnFourButtonVisibleBase = 2180; - - - //****************************************************** - - /// - /// 3101 - /// - public const uint TechExitButton = 3101; - /// - /// 3106 - /// - public const uint TechCommonItemsVisbible = 3106; - /// - /// 3107 - /// - public const uint TechSystemStatusVisible = 3107; - /// - /// 3108 - /// - public const uint TechDisplayControlsVisible = 3108; - /// - /// 3109 - /// - public const uint TechPanelSetupVisible = 3109; - /// - /// 3110 - /// - public const uint TechAdvancedVolumeVisible = 3110; - /// - /// 3111 - /// - public const uint TechAboutVisible = 3111; - /// - /// 3112 - /// - public const uint TechSchedulerVisible = 3112; - - //***************************************************** - /// - /// 3811 - /// - public const uint VolumeSingleMute1Visible = 3811; - /// - /// 3812 - /// - public const uint VolumeSlider1Press = 3812; - /// - /// 3813 - /// - public const uint Volume1ProgramMutePressAndFB = 3813; - /// - /// 3821 - /// - public const uint Volume2Visible = 3821; - /// - /// 3822 - /// - public const uint VolumeSlider2Press = 3822; - /// - /// 3823 - /// - public const uint Volume2MutePressAndFB = 3823; - /// - /// 3831 - /// - public const uint Volume3Visible = 3831; - /// - /// 3832 - /// - public const uint VolumeSlider3Press = 3832; - /// - /// 3833 - /// - public const uint Volume3MutePressAndFB = 3833; - /// - /// 3841 - /// - public const uint Volume4Visible = 3841; - /// - /// 3842 - /// - public const uint VolumeSlider4Press = 3842; - /// - /// 3843 - /// - public const uint Volume4MutePressAndFB = 3843; - /// - /// 3851 - /// - public const uint Volume5Visible = 3851; - /// - /// 3852 - /// - public const uint VolumeSlider5Press = 3852; - /// - /// 3853 - /// - public const uint Volume5MutePressAndFB = 3853; - /// - /// 3861 - /// - public const uint Volume6Visible = 3861; - /// - /// 3862 - /// - public const uint VolumeSlider6Press = 3862; - /// - /// 3863 - /// - public const uint Volume6MutePressAndFB = 3863; - - /// - /// 3869 - when the system is off and the gear is pressed - /// - public const uint VolumesPagePowerOffVisible = 3869; - /// - /// 3870 - /// - public const uint VolumesPageVisible = 3870; - /// - /// 3871 - /// - public const uint VolumeDualMute1Visible = 3871; - /// - /// 3874 - /// - public const uint Volume1SpeechMutePressAndFB = 3874; - /// - /// 3875 - /// - public const uint Volume1BackerVisibility = 3875; - /// - /// 3891 - /// - public const uint VolumeDefaultPress = 3891; - /// - /// 3951 - /// - /// 3952 - /// - public const uint HeaderIcon2Press = 3952; - /// - /// 3953 - /// - public const uint HeaderIcon3Press = 3953; - /// - /// 3954 - /// - public const uint HeaderIcon4Press = 3954; - /// - /// 3955 - /// - public const uint HeaderIcon5Press = 3955; - - /// 3960 - /// - public const uint HeaderPopupCaretsSubpageVisibile = 3960; - /// - /// 3961 - /// - public const uint HeaderCaret1Visible = 3961; - /// - /// 3962 - /// - public const uint HeaderCaret2Visible = 3962; - /// - /// 3963 - /// - public const uint HeaderCaret3Visible = 3963; - /// - /// 3964 - /// - public const uint HeaderCaret4Visible = 3964; - /// - /// 3965 - /// - public const uint HeaderCaret5Visible = 3965; - - /// - /// 3999 - /// - public const uint GenericModalVisible = 3999; - /// - /// 12345 - /// - public const uint AvNoControlsSubVisible = 12345; - - // 10000 - 14999 are general "source" pages - - /// - /// 15001 - /// - public const uint StartPageVisible = 15001; - /// - /// 15002 Shows the start page in the source controls area of the screen - /// - public const uint TapToBeginVisible = 15002; - /// - /// 15003 Message text when no source is showing - /// - public const uint SelectASourceVisible = 15003; - /// - /// 15004 - /// - public const uint RoomIsOn = 15004; - /// - /// 15005 Shows always-on volume control subpage with only audio mute - /// - public const uint VolumeControlsSingleMuteVisible = 15005; - /// - /// 15006 Shows always-on volume control subpage with mic and audio mutes - /// - public const uint VolumeControlsDualMuteVisible = 15006; - /// - /// 15010 - /// - public const uint ShowPanelSetupPress = 15010; - /// - /// 15011 - Top bar with room name and button that pops up dialog with room data - /// - public const uint TopBarHabaneroVisible = 15011; - /// - /// 15012 - /// - public const uint SourceStagingBarVisible = 15012; - /// - /// 15013 - /// - public const uint PowerOffStep1Visible = 15013; - /// - /// 15014 - /// - public const uint PowerOffStep2Visible = 15014; - /// - /// 15015 - /// - public const uint ShowPowerOffPress = 15015; - /// - /// 15016 - /// - public const uint PowerOffMorePress = 15016; - /// - /// 15017 - /// - public const uint StagingPageAdditionalArrowsVisible = 15017; - /// - /// 15018 The Header with dynamic buttons - /// - public const uint TopBarHabaneroDynamicVisible = 15018; - /// - /// 15019 Shown when system is starting and not ready for use - /// - public const uint SystemInitializingVisible = 15019; - /// - /// 15020 - /// - public const uint PanelSetupVisible = 15020; - /// - /// 15021 - /// - public const uint SourceWaitOverlayVisible = 15021; - /// - /// 15022 - /// - public const uint ActivityFooterVisible = 15022; - /// - /// 15024 - /// - public const uint HeaderCallStatusLeftPositionVisible = 15024; - /// - /// 15025 - /// - public const uint HeaderCallStatusRightPositionVisible = 15025; - /// - /// 15027 - /// - public const uint HeaderCallStatusLabelPress = 15027; - /// - /// 15028 The gear button in header - /// - public const uint FIXFIX_HeaderGearButtonPress_FIXFIX = 15028; - /// - /// 15029 the room button in header - /// - public const uint HeaderRoomButtonPress = 15029; - /// - /// 15030 Visibility for room data popup - /// - public const uint RoomHeaderInfoPageVisible = 15030; - /// - /// 15031 - /// - public const uint AllRoomsOffPress = 15031; - /// - /// 15032 - /// - public const uint DisplayPowerTogglePress = 15032; - /// - /// 15033 - /// - public const uint PowerOffCancelPress = 15033; - /// - /// 15034 - /// - public const uint PowerOffConfirmPress = 15034; - /// - /// 15035 - /// - public const uint VolumeButtonPopupPress = 15035; - /// - /// 15035 - /// - public const uint VolumeButtonPopupVisible = 15035; - /// - /// 15036 - /// - public const uint VolumeGaugePopupVisible = 15036; - /// - /// 15037 - /// - public const uint GearButtonVisible = 15037; - /// - /// 15038 - /// - public const uint CalendarHeaderButtonVisible = 15038; - /// - /// 15039 - /// - public const uint CalendarHeaderButtonPress = 15039; - /// - /// 15040 - /// - public const uint CallStatusPageVisible = 15040; - /// - /// 15041 - /// - public const uint LightsPageVisible = 15041; - /// - /// 15042 Closes whichever interlocked modal is open - /// - public const uint InterlockedModalClosePress = 15042; - /// - /// 15043 Vis for modal backer for full-screen source - /// - public const uint SourceBackgroundOverlayVisible = 15043; - /// - /// 15044 Close button for source modal overlay - /// - public const uint SourceBackgroundOverlayClosePress = 15044; - /// - /// 15045 - /// - public const uint ZoomRoomContentSharingVisible = 15045; - /// - /// 15046 - /// - public const uint MeetingsOrContacMethodsListVisible = 15046; - /// - /// 15047 The "Join" button on the next meeting ribbon - /// - public const uint NextMeetingJoinPress = 15047; - /// - /// 15048 Dismisses the ribbon - /// - public const uint NextMeetingModalClosePress = 15048; - /// - /// 15049 - /// - public const uint NextMeetingModalVisible = 15049; - /// - /// 15050 - /// - public const uint NextMeetingNotificationRibbonVisible = 15050; - /// - /// 15051 - /// - public const uint Display1SelectPressAndFb = 15051; - /// - /// 15052 - /// - public const uint Display1ControlButtonEnable = 15052; - /// - /// 15053 - /// - public const uint Display1ControlButtonPress = 15053; - /// - /// 15054 - /// - public const uint Display1AudioButtonEnable = 15054; - /// - /// 15055 - /// - public const uint Display1AudioButtonPressAndFb = 15055; - /// - /// 15056 - /// - public const uint Display2SelectPressAndFb = 15056; - /// - /// 15057 - /// - public const uint Display2ControlButtonEnable = 15057; - /// - /// 15058 - /// - public const uint Display2ControlButtonPress = 15058; - /// - /// 15059 - /// - public const uint Display2AudioButtonEnable = 15059; - /// - /// 15060 - /// - public const uint Display2AudioButtonPressAndFb = 15060; - /// - /// 15061 Reveals the dual-display subpage - /// - public const uint DualDisplayPageVisible = 15061; - /// - /// 15062 Reveals the toggle switch for the sharing mode - /// - public const uint ToggleSharingModeVisible = 15062; - /// - /// 15063 Press for the toggle mode switch - /// - public const uint ToggleSharingModePress = 15063; - /// - /// 15064 - /// - public const uint LogoDefaultVisible = 15064; - /// - /// 15065 - /// - public const uint LogoUrlVisible = 15065; - /// - /// 15066 - Reveals the active calls header item - /// - public const uint HeaderActiveCallsListVisible = 15066; - /// - /// 15067 - /// - public const uint NotificationRibbonVisible = 15067; - /// - /// 15068 - /// - public const uint HeaderMeetingInfoVisible = 15068; - - /// - /// 15083 - Press for Call help desk on AC/VC - /// - public const uint HelpPageShowCallButtonPress = 15083; - /// - /// 15084 - Show the "call help desk" button on help page - /// - public const uint HelpPageShowCallButtonVisible = 15084; - /// - /// 15085 Visibility join for help subpage - /// - public const uint HelpPageVisible = 15085; - /// - /// 15086 Press for help header button - /// - public const uint HelpPress = 15086; - /// - /// 15088 - /// - public const uint DateOnlyVisible = 15088; - /// - /// 15089 - /// - public const uint TimeOnlyVisible = 15089; - /// - /// 15090 - /// - public const uint DateAndTimeVisible = 15090; - /// - /// 15091 - /// - public const uint SetupFullDistrib = 15091; - - /// - /// 15092 - /// - public const uint StartMCPageVisible = 15092; - - - /// - /// 15093 - /// - public const uint RoomHeaderInfoMCPageVisible = 15093; - - /// - /// 15094 - /// - public const uint MCScreenSaverVisible = 15094; - - /// - /// 15095 - /// - public const uint MCScreenSaverPosition1Visible = 15095; - - /// - /// 15096 - /// - public const uint MCScreenSaverPosition2Visible = 15096; - - /// - /// 15097 - /// - public const uint MCScreenSaverPosition3Visible = 15097; - - /// - /// 15098 - /// - public const uint MCScreenSaverPosition4Visible = 15098; - - /// - /// 15099 - /// - public const uint MCScreenSaverClosePress = 15099; - - // PIN dialogs ************************************ - - /// - /// 15201 - /// - public const uint PinDialog4DigitVisible = 15201; - /// - /// 15206 - /// - public const uint PinDialogCancelPress = 15206; - /// - /// 15207 - /// - public const uint PinDialogErrorVisible = 15207; - /// - /// 15211 - /// - public const uint PinDialogDot1 = 15211; - /// - /// 15212 - /// - public const uint PinDialogDot2 = 15212; - /// - /// 15213 - /// - public const uint PinDialogDot3 = 15213; - /// - /// 15214 - /// - public const uint PinDialogDot4 = 15214; - - // Password Prompt Dialog ************************** - - /// - /// 15301 - /// - public const uint PasswordPromptDialogVisible = 15301; - /// - /// 15302 - /// - public const uint PasswordPromptTextPress = 15302; - /// - /// 15306 - /// - public const uint PasswordPromptCancelPress = 15306; - /// - /// 15307 - /// - public const uint PasswordPromptErrorVisible = 15307; - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UI/JoinConstants/UISmartObjectJoin.cs b/PepperDashEssentials/UI/JoinConstants/UISmartObjectJoin.cs deleted file mode 100644 index b48d78c9..00000000 --- a/PepperDashEssentials/UI/JoinConstants/UISmartObjectJoin.cs +++ /dev/null @@ -1,88 +0,0 @@ -namespace PepperDash.Essentials -{ - public class UISmartObjectJoin - { - //****************************************************** - // Conference - /// - /// 1001 - The list that reveals in header to show calls - /// - public const uint CodecActiveCallsHeaderList = 1001; - - // Video Conference - - /// - /// 1201 - /// - public const uint VCDialKeypad = 1201; - - /// - /// 1202 - /// - public const uint VCDirectoryList = 1202; - /// - /// 1203 - /// - public const uint VCRecentsList = 1203; - /// - /// 1204 - /// - public const uint VCFavoritesList = 1204; - /// - /// 1205 Layout buttons dynamic list - /// - public const uint VCLayoutsList = 1205; - - /// - /// 1206 VC Camera Mode horizontal list - /// - public const uint VCCameraMode = 1206; - - /// - /// 1207 VC Camera Mode Dpad - /// - public const uint VCCameraDpad = 1207; - - /// - /// 1208 VC Camera Select - /// - public const uint VCCameraSelect = 1208; - - - //****************************************************** - // General - - /// - /// 3200 The staging, source-select list - /// - public const uint SourceStagingSRL = 3200; - /// - /// 3901 The Tech page menu list - /// - public const uint TechMenuList = 3901; - /// - /// 3902 Tech page statuses - /// - public const uint TechStatusList = 3902; - /// - /// 3903 - /// - public const uint TechPinDialogKeypad = 3903; - /// - /// 3904 - Display controls on the tech page - /// - public const uint TechDisplayControlsList = 3904; - /// - /// 15018 - /// - public const uint HeaderButtonList = 15018; - /// - /// 15022 The main activity footer - /// - public const uint ActivityFooterSRL = 15022; - /// - /// 15023 - The header meetings SRL - /// - public const uint MeetingListSRL = 15023; - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs b/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs deleted file mode 100644 index 6741be35..00000000 --- a/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs +++ /dev/null @@ -1,348 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; - -namespace PepperDash.Essentials -{ - /// - /// Common string join number constants - /// - public class UIStringJoin - { - //****************************************************** - // Codec - /// - /// 1001 - /// - public const uint CodecAddressEntryText = 1001; - /// - /// 1002 - /// - public const uint CodecDirectorySearchEntryText = 1002; - /// - /// 1004 - /// - public const uint CallSharedSourceNameText = 1004; - /// - /// 1005 - /// - public const uint MeetingIdText = 1005; - /// - /// 1006 - /// - public const uint MeetingHostText = 1006; - /// - /// 1007 - /// - public const uint MeetingPasswordText = 1007; - /// - /// 1008 - /// - public const uint MeetingLeaveText = 1008; - /// - /// 1009 - /// - public const uint MeetingNameText = 1009; - - /// - /// 1240 - Used to determine text for meeting start button - /// - public const uint MeetingStartButtonText = 1240; - - - - - /// - /// 1201 - 1230 range of joins for recents list - /// - public const uint VCRecentListTextStart = 1201; - // RANGE IN USE - public const uint VCRecentListTextEnd = 1230; - /// - /// 1231 - 1261 range of joins for recent list time - /// - public const uint VCRecentListTimeTextStart = 1231; - // RANGE IN USE - public const uint VCRecentListTimeTextEnd = 1260; - - - /// - /// 1281 - /// - public const uint VCCameraPresetLabel1 = 1281; - /// - /// 1282 - /// - public const uint VCCameraPresetLabel2 = 1282; - /// - /// 1283 - /// - public const uint VCCameraPresetLabel3 = 1283; - - /// - /// 1291 - the current layout mode - /// - public const uint VCLayoutModeText = 1291; - - /// - /// 1301 - 1400 - /// - public const uint VCDirectoryListTextStart = 1301; - // RANGE IN USE - public const uint VCDirectoryListTextEnd = 1556; - - /// - /// 1611 - 1615 - /// - public const uint VCFavoritesStart = 1611; - // RANGE IN USE - public const uint VCFavoritesTextEnd = 1615; - - - //****************************************************** - // Keyboard - /// - /// 1901 - /// - //public const uint KeypadText = 2901; - - //****************************************************** - - // Environment Joins - - /// - /// 2001 - 2010 - /// - public const uint EnvironmentColumnOneLabelBase = 2000; - - /// - /// 2011 - 2020 - /// - public const uint EnvironmentColumnTwoLabelBase = 2010; - - /// - /// 2021 - 2030 - /// - public const uint EnvironmentColumnThreeLabelBase = 2020; - - /// - /// 2031 - 2040 - /// - public const uint EnvironmentColumnFourLabelBase = 2030; - - // 2050, 2060, 2070 and 2080 reserved for column device name labels - - //****************************************************** - - /// - /// 3101 - This is the start of the range 3101 - 3120 - /// - public const uint TechMenuButtonTextStart = 3101; - - //----- through 3120 - - /// - /// 3201 - /// - public const uint PasswordPromptMessageText = 3201; - /// - /// 3202 - /// - public const uint PasswordPromptPasswordText = 3202; - - /// - /// 3812 - /// - public const uint AdvancedVolumeSlider1Text = 3812; - /// - /// 3822 - /// - public const uint AdvancedVolumeSlider2Text = 3822; - /// - /// 3832 - /// - public const uint AdvancedVolumeSlider3Text = 3832; - /// - /// 3842 - /// - public const uint AdvancedVolumeSlider4Text = 3842; - /// - /// 3852 - /// - public const uint AdvancedVolumeSlider5Text = 3852; - /// - /// 3862 - /// - public const uint AdvancedVolumeSlider6Text = 3862; - - /// - /// 3901 - /// - public const uint CurrentRoomName = 3901; - /// - /// 3902 - /// - public const uint CurrentSourceName = 3902; - /// - /// 3903 - /// - public const uint CurrentSourceIcon = 3903; - /// - /// 3904 - Phone number for room header - /// - public const uint RoomPhoneText = 3904; - /// - /// 3905 - Video address/number for room header - /// - public const uint RoomVideoAddressText = 3905; - /// - /// 3906 - The separator for verbose-header text on addresses - /// - public const uint RoomAddressPipeText = 3906; - /// - /// 3907 - The user code for mobile control - /// - public const uint RoomUserCode = 3907; - /// - /// 3908 - The url for the mobile control server - /// - public const uint RoomMcUrl = 3908; - /// - /// 3909 - The url for the mobile control QR Code image - /// - public const uint RoomMcQrCodeUrl = 3909; - /// - /// 3911 - /// - public const uint PowerOffMessage = 3911; - /// - /// 3912 - /// - public const uint StartPageMessage = 3912; - /// - /// 3913 - /// - public const uint StartActivityText = 3913; - /// - /// 3914 Title bar label for source overlay - /// - public const uint SourceBackgroundOverlayTitle = 3914; - - /// - /// 3915 - /// - public const uint NotificationRibbonText = 3915; - /// - /// 3916 The "active call" label - /// - public const uint HeaderCallStatusLabel = 3916; - /// - /// 3919 Mesage on init page - /// - public const uint SystemInitializingMessage = 3919; - /// - /// 3922 - /// - public const uint HelpMessage = 3922; - /// - /// 3923 - /// - public const uint LogoUrlLightBkgnd = 3923; - - - /// - /// 3924 - the text on the "call help desk" button - /// - public const uint HelpPageCallButtonText = 3924; - - /// - /// 3925 - /// - public const uint LogoUrlDarkBkgnd = 3925; - - /// - /// 3951 - /// - public const uint HeaderButtonIcon1 = 3951; - /// - /// 3952 - /// - public const uint HeaderButtonIcon2 = 3952; - /// - /// 3953 - /// - public const uint HeaderButtonIcon3 = 3953; - /// - /// 3954 - /// - public const uint HeaderButtonIcon4 = 3954; - /// - /// 3955 - /// - public const uint HeaderButtonIcon5 = 3955; - - /// - /// 3961 Name of source on display 1 - /// - public const uint Display1SourceLabel = 3961; - /// - /// 3962 Title above display 1 - /// - public const uint Display1TitleLabel = 3962; - /// - /// 3964 Name of source on display 2 - /// - public const uint Display2SourceLabel = 3964; - /// - /// 3965 Title above display 2 - /// - public const uint Display2TitleLabel = 3965; - - /// - /// 3966 - /// - public const uint NextMeetingStartTimeText = 3966; - /// - /// 3967 - /// - public const uint NextMeetingEndTimeText = 3967; - /// - /// 3968 - /// - public const uint NextMeetingTitleText = 3968; - /// - /// 3969 - /// - public const uint NextMeetingNameText = 3969; - /// - /// 3970 - /// - public const uint NextMeetingButtonLabel = 3970; - /// - /// 3971 - /// - public const uint NextMeetingSecondaryButtonLabel = 3971; - /// - /// 3972 - /// - public const uint NextMeetingFollowingMeetingText = 3972; - /// - /// 3976 - /// - public const uint MeetingsOrContactMethodListIcon = 3976; - /// - /// 3977 - /// - public const uint MeetingsOrContactMethodListTitleText = 3977; - - // ------------------------------------ - // - // MODAL JOINS 3991 - 3999 - // - // ------------------------------------ - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UI/JoinConstants/UIUshortJoin.cs b/PepperDashEssentials/UI/JoinConstants/UIUshortJoin.cs deleted file mode 100644 index 73356bf3..00000000 --- a/PepperDashEssentials/UI/JoinConstants/UIUshortJoin.cs +++ /dev/null @@ -1,54 +0,0 @@ -namespace PepperDash.Essentials -{ - /// - /// - /// - public class UIUshortJoin - { - // Video Codec - /// - /// 1234: values 0 = Connect, 1 = End, 2 = Start Meeting - /// - public const uint VCStagingConnectButtonMode = 1234; - - /// - /// 3812 - /// - public const uint VolumeSlider1Value = 3812; - /// - /// 3822 - /// - public const uint VolumeSlider2Value = 3822; - /// - /// 3832 - /// - public const uint VolumeSlider3Value = 3832; - /// - /// 3842 - /// - public const uint VolumeSlider4Value = 3842; - /// - /// 3852 - /// - public const uint VolumeSlider5Value = 3852; - /// - /// 3862 - /// - public const uint VolumeSlider6Value = 3862; - - /// - /// 3922: 0-4, center->left. 5-8, center -> right. - /// - public const uint PresentationStagingCaretMode = 3922; - - /// - /// 3923: 0-4, center->left. 5-8, center -> right. - /// - public const uint CallStagingCaretMode = 3923; - - /// - /// 15024 - Modes 0: On hook, 1: Phone, 2: Video - /// - public const uint CallHeaderButtonMode = 15024; - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UI/SmartObjectHeaderButtonList.cs b/PepperDashEssentials/UI/SmartObjectHeaderButtonList.cs deleted file mode 100644 index f35bc88c..00000000 --- a/PepperDashEssentials/UI/SmartObjectHeaderButtonList.cs +++ /dev/null @@ -1,58 +0,0 @@ -//using System; -//using System.Collections.Generic; -//using System.Linq; -//using System.Text; -//using Crestron.SimplSharp; -//using Crestron.SimplSharpPro; -//using Crestron.SimplSharpPro.DeviceSupport; - -//using PepperDash.Essentials.Core; -//using PepperDash.Essentials.Core.SmartObjects; - -//namespace PepperDash.Essentials -//{ -// public class SmartObjectHeaderButtonList : SmartObjectHelperBase -// { - -// public SmartObjectHeaderButtonList(SmartObject so) -// : base(so, true) -// { - -// } -// } - -// public class HeaderListButton -// { -// public BoolInputSig SelectedSig { get; private set; } -// public BoolInputSig VisibleSig { get; private set; } -// public BoolOutputSig OutputSig { get; private set; } -// StringInputSig IconSig; - -// public HeaderListButton(SmartObjectHeaderButtonList list, uint index) -// { -// var so = list.SmartObject; -// OutputSig = so.BooleanOutput["Item " + index + " Pressed"]; -// SelectedSig = so.BooleanInput["Item " + index + " Selected"]; -// VisibleSig = so.BooleanInput["Item " + index + " Visible"]; -// IconSig = so.StringInput["Set Item " + index + " Icon Serial"]; -// } - -// public void SetIcon(string i) -// { -// IconSig.StringValue = i; -// } - -// public void ClearIcon() -// { -// IconSig.StringValue = "Blank"; -// } - -// public static string Calendar = "Calendar"; -// public static string Camera = "Camera"; -// public static string Gear = "Gear"; -// public static string Lights = "Lights"; -// public static string Help = "Help"; -// public static string OnHook = "DND"; -// public static string Phone = "Phone"; -// } -//} \ No newline at end of file diff --git a/PepperDashEssentials/UI/SubpageReferenceListActivityItem.cs b/PepperDashEssentials/UI/SubpageReferenceListActivityItem.cs deleted file mode 100644 index 4747a61a..00000000 --- a/PepperDashEssentials/UI/SubpageReferenceListActivityItem.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.UI; - -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials -{ - public class SubpageReferenceListActivityItem : SubpageReferenceListItem - { - /// - /// - /// - /// - /// - /// 0=Share, 1=Phone Call, 2=Video Call, 3=End Meeting - /// - public SubpageReferenceListActivityItem(uint index, SubpageReferenceList owner, - ushort buttonMode, Action pressAction) - : base(index, owner) - { - Owner.GetBoolFeedbackSig(Index, 1).UserObject = pressAction; - Owner.UShortInputSig(Index, 1).UShortValue = buttonMode; - } - - /// - /// Called by SRL to release all referenced objects - /// - public override void Clear() - { - Owner.BoolInputSig(Index, 1).UserObject = null; - Owner.UShortInputSig(Index, 1).UShortValue = 0; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UI/SubpageReferenceListCallStagingItem.cs b/PepperDashEssentials/UI/SubpageReferenceListCallStagingItem.cs deleted file mode 100644 index 4c64bdd6..00000000 --- a/PepperDashEssentials/UI/SubpageReferenceListCallStagingItem.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.UI; - -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials -{ - public class SubpageReferenceListButtonAndModeItem : SubpageReferenceListItem - { - /// - /// - /// - /// - /// - /// 0=Share, 1=Phone Call, 2=Video Call, 3=End Meeting - /// - public SubpageReferenceListButtonAndModeItem(uint index, SubpageReferenceList owner, - ushort buttonMode, Action pressAction) - : base(index, owner) - { - Owner.GetBoolFeedbackSig(Index, 1).UserObject = pressAction; - Owner.UShortInputSig(Index, 1).UShortValue = buttonMode; - } - - /// - /// Called by SRL to release all referenced objects - /// - public override void Clear() - { - Owner.BoolInputSig(Index, 1).UserObject = null; - Owner.UShortInputSig(Index, 1).UShortValue = 0; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UI/SubpageReferenceListSourceItem.cs b/PepperDashEssentials/UI/SubpageReferenceListSourceItem.cs deleted file mode 100644 index 27409007..00000000 --- a/PepperDashEssentials/UI/SubpageReferenceListSourceItem.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.UI; - -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials -{ - public class SubpageReferenceListSourceItem : SubpageReferenceListItem - { - public SourceListItem SourceItem { get; private set; } - - private IHasCurrentSourceInfoChange _room; - - public SubpageReferenceListSourceItem(uint index, SubpageReferenceList owner, - SourceListItem sourceItem, Action routeAction) - : base(index, owner) - { - SourceItem = sourceItem; - owner.GetBoolFeedbackSig(index, 1).UserObject = new Action(routeAction); - owner.StringInputSig(index, 1).StringValue = SourceItem.PreferredName; - } - - public void RegisterForSourceChange(IHasCurrentSourceInfoChange room) - { - _room = room; - room.CurrentSourceChange -= room_CurrentSourceInfoChange; - room.CurrentSourceChange += room_CurrentSourceInfoChange; - } - - void room_CurrentSourceInfoChange(SourceListItem info, ChangeType type) - { - if (type == ChangeType.WillChange && info == SourceItem) - ClearFeedback(); - else if (type == ChangeType.DidChange && info == SourceItem) - SetFeedback(); - } - - /// - /// Called by SRL to release all referenced objects - /// - public override void Clear() - { - Owner.BoolInputSig(Index, 1).UserObject = null; - Owner.StringInputSig(Index, 1).StringValue = ""; - - if(_room != null) - _room.CurrentSourceChange -= room_CurrentSourceInfoChange; - } - - /// - /// Sets the selected feedback on the button - /// - public void SetFeedback() - { - Owner.BoolInputSig(Index, 1).BoolValue = true; - } - - /// - /// Clears the selected feedback on the button - /// - public void ClearFeedback() - { - Owner.BoolInputSig(Index, 1).BoolValue = false; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/DualDisplayRouting.cs b/PepperDashEssentials/UIDrivers/DualDisplayRouting.cs deleted file mode 100644 index 4b29061d..00000000 --- a/PepperDashEssentials/UIDrivers/DualDisplayRouting.cs +++ /dev/null @@ -1,231 +0,0 @@ -//using System; -//using System.Collections.Generic; -//using System.Linq; -//using System.Text; -//using Crestron.SimplSharp; -//using Crestron.SimplSharpPro; -//using Crestron.SimplSharpPro.DeviceSupport; -//using PepperDash.Core; -//using PepperDash.Essentials.Core; -//using PepperDash.Essentials.Core.SmartObjects; -//using PepperDash.Essentials.Core.PageManagers; - -//namespace PepperDash.Essentials -//{ -// public class DualDisplaySimpleOrAdvancedRouting : PanelDriverBase -// { -// EssentialsPresentationPanelAvFunctionsDriver Parent; - -// /// -// /// Smart Object 3200 -// /// -// SubpageReferenceList SourcesSrl; - -// /// -// /// For tracking feedback on last selected -// /// -// BoolInputSig LastSelectedSourceSig; - -// /// -// /// The source that has been selected and is awaiting assignment to a display -// /// -// SourceListItem PendingSource; - -// bool IsSharingModeAdvanced; - -// public DualDisplaySimpleOrAdvancedRouting(EssentialsPresentationPanelAvFunctionsDriver parent) : base(parent.TriList) -// { -// Parent = parent; -// SourcesSrl = new SubpageReferenceList(TriList, 3200, 3, 3, 3); - -// TriList.SetSigFalseAction(UIBoolJoin.ToggleSharingModePress, ToggleSharingModePressed); - -// TriList.SetSigFalseAction(UIBoolJoin.Display1AudioButtonPressAndFb, Display1AudioPress); -// TriList.SetSigFalseAction(UIBoolJoin.Display1ControlButtonPress, Display1ControlPress); -// TriList.SetSigTrueAction(UIBoolJoin.Display1SelectPressAndFb, Display1Press); - -// TriList.SetSigFalseAction(UIBoolJoin.Display2AudioButtonPressAndFb, Display2AudioPress); -// TriList.SetSigFalseAction(UIBoolJoin.Display2ControlButtonPress, Display2ControlPress); -// TriList.SetSigTrueAction(UIBoolJoin.Display2SelectPressAndFb, Display2Press); -// } - -// /// -// /// -// /// -// public override void Show() -// { -// TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = true; -// TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true; -// if(IsSharingModeAdvanced) -// TriList.BooleanInput[UIBoolJoin.DualDisplayPageVisible].BoolValue = true; -// else -// TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = true; -// base.Show(); -// } - -// /// -// /// -// /// -// //public override void Hide() -// //{ -// // TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = false; -// // TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false; -// // if(IsSharingModeAdvanced) -// // TriList.BooleanInput[UIBoolJoin.DualDisplayPageVisible].BoolValue = false; -// // else -// // TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; -// // base.Hide(); -// //} - -// public void SetCurrentRoomFromParent() -// { -// if (IsSharingModeAdvanced) -// return; // add stuff here -// else -// SetupSourceListForSimpleRouting(); -// } - -// /// -// /// -// /// -// void SetupSourceListForSimpleRouting() -// { -// // get the source list config and set up the source list -// var config = ConfigReader.ConfigObject.SourceLists; -// if (config.ContainsKey(Parent.CurrentRoom.SourceListKey)) -// { -// var srcList = config[Parent.CurrentRoom.SourceListKey] -// .Values.ToList().OrderBy(s => s.Order); -// // Setup sources list -// uint i = 1; // counter for UI list -// foreach (var srcConfig in srcList) -// { -// if (!srcConfig.IncludeInSourceList) // Skip sources marked this way -// continue; - -// var sourceKey = srcConfig.SourceKey; -// var actualSource = DeviceManager.GetDeviceForKey(sourceKey) as Device; -// if (actualSource == null) -// { -// Debug.Console(0, "Cannot assign missing source '{0}' to source UI list", -// srcConfig.SourceKey); -// continue; -// } -// var localSrcItem = srcConfig; // lambda scope below -// var localIndex = i; -// SourcesSrl.GetBoolFeedbackSig(i, 1).UserObject = new Action(b => -// { -// if (IsSharingModeAdvanced) -// { -// if (LastSelectedSourceSig != null) -// LastSelectedSourceSig.BoolValue = false; -// SourceListButtonPress(localSrcItem); -// LastSelectedSourceSig = SourcesSrl.BoolInputSig(localIndex, 1); -// LastSelectedSourceSig.BoolValue = true; -// } -// else -// Parent.CurrentRoom.DoSourceToAllDestinationsRoute(localSrcItem); -// }); -// SourcesSrl.StringInputSig(i, 1).StringValue = srcConfig.PreferredName; -// i++; - -// //var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig, -// // b => { if (!b) UiSelectSource(localSrcConfig); }); -// //SourcesSrl.AddItem(item); // add to the SRL -// //item.RegisterForSourceChange(Parent.CurrentRoom); -// } -// SourcesSrl.Count = (ushort)(i - 1); -// Parent.CurrentRoom.CurrentSingleSourceChange += CurrentRoom_CurrentSourceInfoChange; -// Parent.CurrentRoom.CurrentDisplay1SourceChange += CurrentRoom_CurrentDisplay1SourceChange; -// Parent.CurrentRoom.CurrentDisplay2SourceChange += CurrentRoom_CurrentDisplay2SourceChange; -// } -// } - -// void SetupSourceListForAdvancedRouting() -// { - -// } - -// void CurrentRoom_CurrentSourceInfoChange(IEssentialsRoom room, SourceListItem info, ChangeType type) -// { - -// } - -// void CurrentRoom_CurrentDisplay1SourceChange(IEssentialsRoom room, SourceListItem info, ChangeType type) -// { -// TriList.StringInput[UIStringJoin.Display1SourceLabel].StringValue = PendingSource.PreferredName; - -// } - -// void CurrentRoom_CurrentDisplay2SourceChange(IEssentialsRoom room, SourceListItem info, ChangeType type) -// { -// TriList.StringInput[UIStringJoin.Display2SourceLabel].StringValue = PendingSource.PreferredName; -// } - -// /// -// /// -// /// -// void ToggleSharingModePressed() -// { -// Hide(); -// IsSharingModeAdvanced = !IsSharingModeAdvanced; -// TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced; -// Show(); -// } - -// public void SourceListButtonPress(SourceListItem item) -// { -// // start the timer -// // show FB on potential source -// TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue = false; -// TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = false; -// TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = false; -// TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = false; -// PendingSource = item; -// } - -// void EnableAppropriateDisplayButtons() -// { -// TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue = true; -// TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = true; -// TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = true; -// TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = true; -// if (LastSelectedSourceSig != null) -// LastSelectedSourceSig.BoolValue = false; -// } - -// public void Display1Press() -// { -// EnableAppropriateDisplayButtons(); -// Parent.CurrentRoom.SourceToDisplay1(PendingSource); -// // Enable end meeting -// } - -// public void Display1AudioPress() -// { - -// } - - -// public void Display1ControlPress() -// { - -// } - -// public void Display2Press() -// { -// EnableAppropriateDisplayButtons(); -// Parent.CurrentRoom.SourceToDisplay2(PendingSource); -// } - -// public void Display2AudioPress() -// { - -// } - -// public void Display2ControlPress() -// { - -// } -// } -//} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsEnvironmentDriver.cs b/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsEnvironmentDriver.cs deleted file mode 100644 index 6b908739..00000000 --- a/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsEnvironmentDriver.cs +++ /dev/null @@ -1,256 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.Shades; -using PepperDash.Essentials.Core.Lighting; - -namespace PepperDash.Essentials -{ - public class EssentialsEnvironmentDriver : PanelDriverBase - { - /// - /// Do I need this here? - /// - CrestronTouchpanelPropertiesConfig Config; - - /// - /// The list of devices this driver is responsible for controlling - /// - public List Devices { get; private set; } - - /// - /// The parent driver for this - /// - EssentialsPanelMainInterfaceDriver Parent; - - /// - /// The list of sub drivers for the devices - /// - public List DeviceSubDrivers { get; private set; } - - public uint BackgroundSubpageJoin { get; private set; } - - public EssentialsEnvironmentDriver(EssentialsPanelMainInterfaceDriver parent, CrestronTouchpanelPropertiesConfig config) - : base(parent.TriList) - { - Config = config; - Parent = parent; - - Devices = new List(); - DeviceSubDrivers = new List(); - - Parent.AvDriver.PopupInterlock.StatusChanged += new EventHandler(PopupInterlock_CurrentJoinChanged); - - // Calculate the join offests for each device page and assign join actions for each button - } - - void PopupInterlock_CurrentJoinChanged(object sender, StatusChangedEventArgs e) - { - // Hide this driver and all sub drivers if popup interlock is not shown - if (!e.IsShown || e.NewJoin != BackgroundSubpageJoin) - { - foreach (var driver in DeviceSubDrivers) - { - driver.Hide(); - } - - base.Hide(); - } - } - - void IsShownFeedback_OutputChange(object sender, EventArgs e) - { - - } - - /// - /// Shows this driver and all sub drivers - /// - public override void Show() - { - Parent.AvDriver.PopupInterlock.ShowInterlocked(BackgroundSubpageJoin); - - foreach (var driver in DeviceSubDrivers) - { - driver.Show(); - } - - base.Show(); - } - - /// - /// Hides this driver and all sub drivers - /// - public override void Hide() - { - Parent.AvDriver.PopupInterlock.HideAndClear(); - - foreach (var driver in DeviceSubDrivers) - { - driver.Hide(); - } - - base.Hide(); - } - - public override void Toggle() - { - if (IsVisible) - Hide(); - else - Show(); - } - - - /// - /// Reads the device keys from the config and gets the devices by key - /// - public void GetDevicesFromConfig(Room.Config.EssentialsEnvironmentPropertiesConfig EnvironmentPropertiesConfig) - { - if (EnvironmentPropertiesConfig != null) - { - Devices.Clear(); - DeviceSubDrivers.Clear(); - - uint column = 1; - - foreach (var dKey in EnvironmentPropertiesConfig.DeviceKeys) - { - var device = DeviceManager.GetDeviceForKey(dKey); - - if (device != null) - { - // Build the driver - var devicePanelDriver = GetPanelDriverForDevice(device, column); - - // Add new PanelDriverBase SubDriver - if (devicePanelDriver != null) - { - Devices.Add(device); - DeviceSubDrivers.Add(devicePanelDriver); - - Debug.Console(1, "Adding '{0}' to Environment Devices", device.Key); - - column++; - - - // Quit if device count is exceeded - if (column > 4) - break; - } - else - Debug.Console(1, "Unable to build environment driver for device: '{0}'", device.Key); - - } - - } - - SetupEnvironmentUiJoins(); - } - else - { - Debug.Console(1, "Unable to get devices from config. No EnvironmentPropertiesConfig object in room config"); - } - } - - /// - /// Returns the appropriate panel driver for the device - /// - /// - /// - /// - PanelDriverBase GetPanelDriverForDevice(IKeyed device, uint column) - { - PanelDriverBase panelDriver = null; - - uint buttonPressJoinBase = 0; - uint buttonVisibleJoinBase = 0; - uint stringJoinBase = 0; - uint shadeTypeVisibleBase = 0; - uint lightingTypeVisibleBase = 0; - - switch (column) - { - case 1: - { - buttonPressJoinBase = UIBoolJoin.EnvironmentColumnOneButtonPressBase; - buttonVisibleJoinBase = UIBoolJoin.EnvironmentColumnOneButtonVisibleBase; - stringJoinBase = UIStringJoin.EnvironmentColumnOneLabelBase; - shadeTypeVisibleBase = UIBoolJoin.EnvironmentColumnOneShadingTypeVisibleBase; - lightingTypeVisibleBase = UIBoolJoin.EnvironmentColumnOneLightingTypeVisibleBase; - break; - } - case 2: - { - buttonPressJoinBase = UIBoolJoin.EnvironmentColumnTwoButtonPressBase; - buttonVisibleJoinBase = UIBoolJoin.EnvironmentColumnTwoButtonVisibleBase; - stringJoinBase = UIStringJoin.EnvironmentColumnTwoLabelBase; - shadeTypeVisibleBase = UIBoolJoin.EnvironmentColumnTwoShadingTypeVisibleBase; - lightingTypeVisibleBase = UIBoolJoin.EnvironmentColumnTwoLightingTypeVisibleBase; - break; - } - case 3: - { - buttonPressJoinBase = UIBoolJoin.EnvironmentColumnThreeButtonPressBase; - buttonVisibleJoinBase = UIBoolJoin.EnvironmentColumnThreeButtonVisibleBase; - stringJoinBase = UIStringJoin.EnvironmentColumnThreeLabelBase; - shadeTypeVisibleBase = UIBoolJoin.EnvironmentColumnThreeShadingTypeVisibleBase; - lightingTypeVisibleBase = UIBoolJoin.EnvironmentColumnThreeLightingTypeVisibleBase; - break; - } - case 4: - { - buttonPressJoinBase = UIBoolJoin.EnvironmentColumnFourButtonPressBase; - buttonVisibleJoinBase = UIBoolJoin.EnvironmentColumnFourButtonVisibleBase; - stringJoinBase = UIStringJoin.EnvironmentColumnFourLabelBase; - shadeTypeVisibleBase = UIBoolJoin.EnvironmentColumnFourShadingTypeVisibleBase; - lightingTypeVisibleBase = UIBoolJoin.EnvironmentColumnFourLightingTypeVisibleBase; - break; - } - default: - { - Debug.Console(1, "Environment Driver: Invalid column number specified"); - break; - } - } - - // Determine if device is a shade or lighting type and construct the appropriate driver - if (device is ShadeBase) - { - panelDriver = new EssentialsShadeDriver(this, device.Key, buttonPressJoinBase, stringJoinBase, shadeTypeVisibleBase); - } - else if (device is LightingBase) - { - panelDriver = new EssentialsLightingDriver(this, device.Key, buttonPressJoinBase, buttonVisibleJoinBase, stringJoinBase, lightingTypeVisibleBase); - } - - // Return the driver - - return panelDriver; - } - - /// - /// Determines the join values for the generic environment subpages - /// - void SetupEnvironmentUiJoins() - { - // Calculate which background subpage join to use - BackgroundSubpageJoin = UIBoolJoin.EnvironmentBackgroundSubpageVisibleBase + (uint)DeviceSubDrivers.Count; - - - } - - } - - public interface IEnvironmentSubdriver - { - uint SubpageVisibleJoin { get; } - } - -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsLightingDriver.cs b/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsLightingDriver.cs deleted file mode 100644 index 5ec46a04..00000000 --- a/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsLightingDriver.cs +++ /dev/null @@ -1,210 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.Lighting; - -namespace PepperDash.Essentials -{ - /// - /// Supports a lighting device with up to 6 scenes - /// - public class EssentialsLightingDriver : PanelDriverBase, IEnvironmentSubdriver - { - EssentialsEnvironmentDriver Parent; - - public LightingBase LightingDevice { get; private set; } - - public uint SubpageVisibleJoin { get; private set; } - - /// - /// The base join number that all button visibilty joins are offset from - /// - uint ButtonVisibleJoinBase; - - /// - /// The base join number that all button presses are offset from - /// - uint ButtonPressJoinBase; - - /// - /// The base join number that all string lables are offset from - /// - uint StringJoinBase; - - eLightsDeviceType DeviceType; - - const uint DeviceNameJoinOffset = 50; - - public EssentialsLightingDriver(EssentialsEnvironmentDriver parent, string deviceKey, uint buttonPressJoinBase, uint buttonVisibleJoinBase, uint stringJoinBase, uint subpageVisibleBase) - : base(parent.TriList) - { - Parent = parent; - - ButtonPressJoinBase = buttonPressJoinBase; - ButtonVisibleJoinBase = buttonVisibleJoinBase; - StringJoinBase = stringJoinBase; - - LightingDevice = DeviceManager.GetDeviceForKey(deviceKey) as LightingBase; - - //LightingDevice.LightingSceneChange += new EventHandler(LightingDevice_LightingSceneChange); - - SetDeviceType(); - - SetSubpageVisibleJoin(subpageVisibleBase); - - SetUpDeviceName(); - - SetUpButtonActions(); - } - - /// - /// Handles setting feedback for the currently selected scene button - /// - /// - /// - void LightingDevice_LightingSceneChange(object sender, LightingSceneChangeEventArgs e) - { - uint joinOffset = 1; - - foreach (var scene in LightingDevice.LightingScenes) - { - if (scene == e.CurrentLightingScene) - TriList.SetBool(ButtonPressJoinBase + joinOffset, true); - else - TriList.SetBool(ButtonPressJoinBase + joinOffset, false); - } - } - - public override void Show() - { - TriList.SetBool(SubpageVisibleJoin, true); - - base.Show(); - } - - public override void Hide() - { - TriList.SetBool(SubpageVisibleJoin, false); - - base.Hide(); - } - - void SetUpDeviceName() - { - Parent.TriList.SetString(StringJoinBase + DeviceNameJoinOffset, LightingDevice.Name); - } - - void SetDeviceType() - { - if (LightingDevice is ILightingScenes) - DeviceType = eLightsDeviceType.Scenes; - } - - void SetSubpageVisibleJoin(uint subpageVisibleBase) - { - SubpageVisibleJoin = subpageVisibleBase + (uint)DeviceType; - } - - /// - /// Drase - /// - void SetUpButtonActions() - { - if (DeviceType == eLightsDeviceType.Scenes) - { - uint joinOffset = ComputeJoinOffset(); - - // Clear preceding buttons - for (uint i = 1; i < joinOffset; i++) - { - TriList.SetString(StringJoinBase + i, ""); - TriList.SetSigFalseAction(ButtonPressJoinBase + i, () => { }); - TriList.SetBool(ButtonVisibleJoinBase + i, false); - } - - foreach (var scene in LightingDevice.LightingScenes) - { - TriList.SetString(StringJoinBase + joinOffset, scene.Name); - var tempScene = scene; - TriList.SetSigFalseAction(ButtonPressJoinBase + joinOffset, () => LightingDevice.SelectScene(tempScene)); - scene.IsActiveFeedback.LinkInputSig(TriList.BooleanInput[ButtonPressJoinBase + joinOffset]); - TriList.SetBool(ButtonVisibleJoinBase + joinOffset, true); - - joinOffset++; - } - - // Clear following buttons - for (uint i = joinOffset; i <= 6; i++) - { - TriList.SetString(StringJoinBase + i, ""); - TriList.SetSigFalseAction(ButtonPressJoinBase + i, () => { }); - TriList.SetBool(ButtonVisibleJoinBase + i, false); - } - } - - } - - - - /// - /// Computes the desired join offset to try to achieve the most centered appearance when using a subpage with 6 scene buttons - /// - /// - uint ComputeJoinOffset() - { - uint joinOffset = 0; - - switch (LightingDevice.LightingScenes.Count) - { - case 1: - { - joinOffset = 2; - break; - } - case 2: - { - joinOffset = 3; - break; - } - case 3: - { - joinOffset = 2; - break; - } - case 4: - { - joinOffset = 2; - break; - } - case 5: - { - joinOffset = 2; - break; - } - case 6: - { - joinOffset = 1; - break; - } - default: - { - break; - } - } - - return joinOffset; - } - } - - enum eLightsDeviceType : uint - { - None = 0, - Scenes = 1, - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsShadeDriver.cs b/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsShadeDriver.cs deleted file mode 100644 index fb40252c..00000000 --- a/PepperDashEssentials/UIDrivers/Environment Drivers/EssentialsShadeDriver.cs +++ /dev/null @@ -1,117 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.Shades; -using PepperDash.Essentials.Devices.Common.Environment.Somfy; - -namespace PepperDash.Essentials -{ - public class EssentialsShadeDriver : PanelDriverBase, IEnvironmentSubdriver - { - EssentialsEnvironmentDriver Parent; - - public ShadeBase ShadeDevice { get; private set; } - - public uint SubpageVisibleJoin { get; private set; } - - /// - /// The base join number that all button presses are offset from - /// - uint ButtonPressJoinBase; - - /// - /// The base join number that all string lables are offset from - /// - uint StringJoinBase; - - eShadeDeviceType DeviceType; - - const uint DeviceNameJoinOffset = 50; - - public EssentialsShadeDriver(EssentialsEnvironmentDriver parent, string deviceKey, uint buttonPressJoinBase, uint stringJoinBase, uint subpageVisibleBase) - : base(parent.TriList) - { - Parent = parent; - - ButtonPressJoinBase = buttonPressJoinBase; - StringJoinBase = stringJoinBase; - - ShadeDevice = DeviceManager.GetDeviceForKey(deviceKey) as ShadeBase; - - SetDeviceType(); - - SetSubpageVisibleJoin(subpageVisibleBase); - - SetUpDeviceName(); - - SetUpButtonActions(); - } - - public override void Show() - { - TriList.SetBool(SubpageVisibleJoin, true); - - base.Show(); - } - - public override void Hide() - { - TriList.SetBool(SubpageVisibleJoin, false); - - base.Hide(); - } - - void SetUpDeviceName() - { - Parent.TriList.SetString(StringJoinBase + DeviceNameJoinOffset, ShadeDevice.Name); - } - - void SetDeviceType() - { - if (ShadeDevice is IShadesOpenCloseStop) - DeviceType = eShadeDeviceType.OpenCloseStop; - else if (ShadeDevice is IShadesOpenClose) - DeviceType = eShadeDeviceType.OpenClose; - } - - void SetSubpageVisibleJoin(uint subpageVisibleBase) - { - SubpageVisibleJoin = subpageVisibleBase + (uint)DeviceType; - } - - void SetUpButtonActions() - { - if(DeviceType == eShadeDeviceType.OpenClose) - { - TriList.SetSigTrueAction(ButtonPressJoinBase + 1, ShadeDevice.Open); - - TriList.SetSigFalseAction(ButtonPressJoinBase + 2, ShadeDevice.Close); - } - else if(DeviceType == eShadeDeviceType.OpenCloseStop) - { - TriList.SetSigFalseAction(ButtonPressJoinBase + 1, ShadeDevice.Open); - - TriList.SetSigFalseAction(ButtonPressJoinBase + 2, (ShadeDevice as IShadesOpenCloseStop).Stop); - - if (ShadeDevice is IShadesOpenCloseStop) - TriList.SetString(StringJoinBase + 2, "Stop"); - - TriList.SetSigFalseAction(ButtonPressJoinBase + 3, ShadeDevice.Close); - } - } - } - - enum eShadeDeviceType : uint - { - None = 0, - OpenCloseStop = 1, - OpenClose = 2, - DiscreteLevel = 3 - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/Essentials/EssentialsHeaderDriver.cs b/PepperDashEssentials/UIDrivers/Essentials/EssentialsHeaderDriver.cs deleted file mode 100644 index c63af9d5..00000000 --- a/PepperDashEssentials/UIDrivers/Essentials/EssentialsHeaderDriver.cs +++ /dev/null @@ -1,399 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.UI; -using Crestron.SimplSharpPro.DeviceSupport; - - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.SmartObjects; -using PepperDash.Essentials.Core.PageManagers; -using PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces; -using PepperDash.Essentials.Room.Config; -using PepperDash.Essentials.Devices.Common.Codec; -using PepperDash.Essentials.Devices.Common.VideoCodec; - - -namespace PepperDash.Essentials -{ - /// - /// - /// - public class EssentialsHeaderDriver : PanelDriverBase - { - uint EnvironmentCaretVisible; - uint CalendarCaretVisible; - uint CallCaretVisible; - - JoinedSigInterlock CaretInterlock; - - CrestronTouchpanelPropertiesConfig Config; - - /// - /// The parent driver for this - /// - EssentialsPanelMainInterfaceDriver Parent; - - /// - /// Indicates that the SetHeaderButtons method has completed successfully - /// - public bool HeaderButtonsAreSetUp { get; private set; } - - StringInputSig HeaderCallButtonIconSig; - - public EssentialsHeaderDriver(EssentialsPanelMainInterfaceDriver parent, CrestronTouchpanelPropertiesConfig config) - : base(parent.TriList) - { - Config = config; - Parent = parent; - CaretInterlock = new JoinedSigInterlock(TriList); - } - - void SetUpGear(IAVDriver avDriver, IEssentialsRoom currentRoom) - { - // Gear - TriList.SetString(UIStringJoin.HeaderButtonIcon5, "Gear"); - TriList.SetSigHeldAction(UIBoolJoin.HeaderIcon5Press, 2000, - avDriver.ShowTech, - null, - () => - { - if (currentRoom.OnFeedback.BoolValue) - { - avDriver.PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.VolumesPageVisible); - CaretInterlock.ShowInterlocked(UIBoolJoin.HeaderCaret5Visible); - } - else - { - avDriver.PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.VolumesPagePowerOffVisible); - CaretInterlock.ShowInterlocked(UIBoolJoin.HeaderCaret5Visible); - } - }); - TriList.SetSigFalseAction(UIBoolJoin.TechExitButton, () => - avDriver.PopupInterlock.HideAndClear()); - } - - public void SetUpHelpButton(EssentialsRoomPropertiesConfig roomConf) - { - // Help roomConf and popup - if (roomConf.Help != null) - { - TriList.SetString(UIStringJoin.HelpMessage, roomConf.Help.Message); - TriList.SetBool(UIBoolJoin.HelpPageShowCallButtonVisible, roomConf.Help.ShowCallButton); - TriList.SetString(UIStringJoin.HelpPageCallButtonText, roomConf.Help.CallButtonText); - if (roomConf.Help.ShowCallButton) - { - TriList.SetSigFalseAction(UIBoolJoin.HelpPageShowCallButtonPress, () => { }); // ************ FILL IN - } - else - { - TriList.ClearBoolSigAction(UIBoolJoin.HelpPageShowCallButtonPress); - } - } - else // older config - { - TriList.SetString(UIStringJoin.HelpMessage, roomConf.HelpMessage); - TriList.SetBool(UIBoolJoin.HelpPageShowCallButtonVisible, false); - TriList.SetString(UIStringJoin.HelpPageCallButtonText, null); - TriList.ClearBoolSigAction(UIBoolJoin.HelpPageShowCallButtonPress); - } - TriList.SetString(UIStringJoin.HeaderButtonIcon4, "Help"); - TriList.SetSigFalseAction(UIBoolJoin.HeaderIcon4Press, () => - { - string message = null; - var room = DeviceManager.GetDeviceForKey(Config.DefaultRoomKey) - as IEssentialsHuddleSpaceRoom; - if (room != null) - message = room.PropertiesConfig.HelpMessage; - else - message = "Sorry, no help message available. No room connected."; - //TriList.StringInput[UIStringJoin.HelpMessage].StringValue = message; - Parent.AvDriver.PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.HelpPageVisible); - CaretInterlock.ShowInterlocked(UIBoolJoin.HeaderCaret4Visible); - }); - } - - uint SetUpEnvironmentButton(EssentialsEnvironmentDriver environmentDriver, uint nextJoin) - { - if (environmentDriver != null) - { - var tempJoin = nextJoin; - TriList.SetString(tempJoin, "Lights"); - EnvironmentCaretVisible = tempJoin + 10; - TriList.SetSigFalseAction(tempJoin, () => - { - environmentDriver.Toggle(); - CaretInterlock.ShowInterlocked(EnvironmentCaretVisible); - }); - nextJoin--; - return nextJoin; - } - else - return nextJoin; - } - - uint SetUpCalendarButton(EssentialsHuddleVtc1PanelAvFunctionsDriver avDriver, uint nextJoin) - { - // Calendar button - if (avDriver.CurrentRoom.ScheduleSource != null) - { - var tempJoin = nextJoin; - TriList.SetString(tempJoin, "Calendar"); - CalendarCaretVisible = tempJoin + 10; - TriList.SetSigFalseAction(tempJoin, () => - { - avDriver.CalendarPress(); - CaretInterlock.ShowInterlocked(CalendarCaretVisible); - }); - - nextJoin--; - return nextJoin; - } - else - return nextJoin; - } - - uint SetUpCallButton(EssentialsHuddleVtc1PanelAvFunctionsDriver avDriver, uint nextJoin) - { - // Call button - var tempJoin = nextJoin; - TriList.SetString(tempJoin, "DND"); - CallCaretVisible = tempJoin + 10; - TriList.SetSigFalseAction(tempJoin, () => - { - avDriver.ShowActiveCallsListOrMeetingInfo(); - if(avDriver.CurrentRoom.InCallFeedback.BoolValue) - CaretInterlock.ShowInterlocked(CallCaretVisible); - }); - HeaderCallButtonIconSig = TriList.StringInput[tempJoin]; - - nextJoin--; - return nextJoin; - } - - /// - /// Evaluates the call status and sets the icon mode and text label - /// - public void ComputeHeaderCallStatus(VideoCodecBase codec) - { - if (codec == null) - { - Debug.Console(1, "ComputeHeaderCallStatus() cannot execute. codec is null"); - return; - } - - if (HeaderCallButtonIconSig == null) - { - Debug.Console(1, "ComputeHeaderCallStatus() cannot execute. HeaderCallButtonIconSig is null"); - return; - } - - var meetingInfoCodec = codec as IHasMeetingInfo; - - // Set mode of header button - SetHeaderCallIcon(codec); - - // Set the call status text - Debug.Console(1, "Active Call Count: {0}", codec.ActiveCalls.Count); - - if (codec.ActiveCalls.Count > 0) - { - if (codec.ActiveCalls.Count == 1 && meetingInfoCodec == null) - TriList.SetString(UIStringJoin.HeaderCallStatusLabel, "1 Active Call"); - else if (codec.ActiveCalls.Count == 1 && meetingInfoCodec != null) - { - var headerCallStatusLabel = meetingInfoCodec.MeetingInfo.IsSharingMeeting - ? "Sharing-Only Meeting" - : "Active Meeting"; - - headerCallStatusLabel = meetingInfoCodec.MeetingInfo.WaitingForHost - ? "Waiting For Host" - : headerCallStatusLabel; - - TriList.SetString(UIStringJoin.HeaderCallStatusLabel, headerCallStatusLabel); - } - else if (codec.ActiveCalls.Count > 1) - TriList.SetString(UIStringJoin.HeaderCallStatusLabel, string.Format("{0} Active Calls", codec.ActiveCalls.Count)); - } - else - TriList.SetString(UIStringJoin.HeaderCallStatusLabel, "No Active Calls"); - } - - private void SetHeaderCallIcon(VideoCodecBase codec) - { - if (!codec.IsInCall) - { - HeaderCallButtonIconSig.StringValue = "DND"; - //HeaderCallButton.SetIcon(HeaderListButton.OnHook); - } - else if (codec.ActiveCalls.Any(c => c.Type == eCodecCallType.Video)) - { - HeaderCallButtonIconSig.StringValue = "Misc-06_Dark"; - } - //HeaderCallButton.SetIcon(HeaderListButton.Camera); - //TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 2); - else - { - HeaderCallButtonIconSig.StringValue = "Misc-09_Dark"; - } - //HeaderCallButton.SetIcon(HeaderListButton.Phone); - //TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 1); - } - - /// - /// Sets up Header Buttons for the EssentialsHuddleVtc1Room type - /// - public void SetupHeaderButtons(EssentialsHuddleVtc1PanelAvFunctionsDriver avDriver, IEssentialsHuddleVtc1Room currentRoom) - { - HeaderButtonsAreSetUp = false; - - TriList.SetBool(UIBoolJoin.TopBarHabaneroDynamicVisible, true); - - var roomConf = currentRoom.PropertiesConfig; - - // Register for the PopupInterlock IsShowsFeedback event to tie the header carets subpage visiblity to it - Parent.AvDriver.PopupInterlock.StatusChanged -= PopupInterlock_StatusChanged; - Parent.AvDriver.PopupInterlock.StatusChanged += PopupInterlock_StatusChanged; - - SetUpGear(avDriver, currentRoom); - - SetUpHelpButton(roomConf); - - uint nextJoin = 3953; - - nextJoin = SetUpEnvironmentButton(Parent.EnvironmentDriver, nextJoin); - - nextJoin = SetUpCalendarButton(avDriver, nextJoin); - - nextJoin = SetUpCallButton(avDriver, nextJoin); - - // blank any that remain - for (var i = nextJoin; i > 3950; i--) - { - TriList.SetString(i, "Blank"); - TriList.SetSigFalseAction(i, () => { }); - } - - TriList.SetSigFalseAction(UIBoolJoin.HeaderCallStatusLabelPress, - () => - { - avDriver.ShowActiveCallsListOrMeetingInfo(); - if (avDriver.CurrentRoom.InCallFeedback.BoolValue) - CaretInterlock.ShowInterlocked(CallCaretVisible); - }); - - // Set Call Status Subpage Position - - if (nextJoin == 3951) - { - // Set to right position - TriList.SetBool(UIBoolJoin.HeaderCallStatusLeftPositionVisible, false); - TriList.SetBool(UIBoolJoin.HeaderCallStatusRightPositionVisible, true); - } - else if (nextJoin == 3950) - { - // Set to left position - TriList.SetBool(UIBoolJoin.HeaderCallStatusLeftPositionVisible, true); - TriList.SetBool(UIBoolJoin.HeaderCallStatusRightPositionVisible, false); - } - - HeaderButtonsAreSetUp = true; - - ComputeHeaderCallStatus(currentRoom.VideoCodec); - } - - /// - /// Sets up Header Buttons for the EssentialsHuddleSpaceRoom type - /// - public void SetupHeaderButtons(EssentialsHuddlePanelAvFunctionsDriver avDriver, IEssentialsHuddleSpaceRoom currentRoom) - { - HeaderButtonsAreSetUp = false; - - TriList.SetBool(UIBoolJoin.TopBarHabaneroDynamicVisible, true); - - var roomConf = currentRoom.PropertiesConfig; - - // Register for the PopupInterlock IsShowsFeedback event to tie the header carets subpage visiblity to it - Parent.AvDriver.PopupInterlock.StatusChanged -= PopupInterlock_StatusChanged; - Parent.AvDriver.PopupInterlock.StatusChanged += PopupInterlock_StatusChanged; - - SetUpGear(avDriver, currentRoom); - - SetUpHelpButton(roomConf); - - uint nextJoin = 3953; - - nextJoin = SetUpEnvironmentButton(Parent.EnvironmentDriver, nextJoin); - - // blank any that remain - for (var i = nextJoin; i > 3950; i--) - { - TriList.SetString(i, "Blank"); - TriList.SetSigFalseAction(i, () => { }); - } - - HeaderButtonsAreSetUp = true; - } - - ///// - ///// Whenever a popup is shown/hidden, show/hide the header carets subpage and set the visibility of the correct caret - ///// - ///// - ///// - //void IsShownFeedback_OutputChange(object sender, EventArgs e) - //{ - // var popupInterlockIsShown = Parent.AvDriver.PopupInterlock.IsShown; - // // Set the visible state for the HeaderPopupCaretsSubpage to match that of the PopupInterlock state - // TriList.SetBool(UIBoolJoin.HeaderPopupCaretsSubpageVisibile, popupInterlockIsShown); - - // // Clear all caret visibility - // for (uint i = UIBoolJoin.HeaderCaret5Visible; i >= UIBoolJoin.HeaderCaret1Visible; i--) - // { - // TriList.SetBool(i, false); - // } - - // // Set the current caret visible if the popup is still shown - // if (popupInterlockIsShown) - // TriList.SetBool(NextCaretVisible, true); - //} - - /// - /// Whenever a popup is shown/hidden, show/hide the header carets subpage and set the visibility of the correct caret - /// - /// - /// - void PopupInterlock_StatusChanged(object sender, StatusChangedEventArgs e) - { - // Set the visible state for the HeaderPopupCaretsSubpage to match that of the PopupInterlock state - - bool headerPopupShown = false; - - // Check if the popup interlock is shown, and if one of the header popups is current, then show the carets subpage - if (e.IsShown) - { - if (Parent.EnvironmentDriver != null && e.NewJoin == Parent.EnvironmentDriver.BackgroundSubpageJoin) - headerPopupShown = true; - else if (e.NewJoin == UIBoolJoin.HeaderActiveCallsListVisible) - headerPopupShown = true; - else if (e.NewJoin == UIBoolJoin.HeaderMeetingInfoVisible) - headerPopupShown = true; - else if (e.NewJoin == UIBoolJoin.HelpPageVisible) - headerPopupShown = true; - else if (e.NewJoin == UIBoolJoin.MeetingsOrContacMethodsListVisible) - headerPopupShown = true; - else if (e.NewJoin == UIBoolJoin.VolumesPagePowerOffVisible || e.NewJoin == UIBoolJoin.VolumesPageVisible) - headerPopupShown = true; - } - - // Set the carets subpage visibility - TriList.SetBool(UIBoolJoin.HeaderPopupCaretsSubpageVisibile, headerPopupShown); - - if (!e.IsShown) - CaretInterlock.HideAndClear(); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/Essentials/EssentialsPanelMainInterfaceDriver.cs b/PepperDashEssentials/UIDrivers/Essentials/EssentialsPanelMainInterfaceDriver.cs deleted file mode 100644 index 2b787063..00000000 --- a/PepperDashEssentials/UIDrivers/Essentials/EssentialsPanelMainInterfaceDriver.cs +++ /dev/null @@ -1,168 +0,0 @@ -using System; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.UI; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.SmartObjects; - -namespace PepperDash.Essentials -{ - /// - /// - /// - public class EssentialsPanelMainInterfaceDriver : PanelDriverBase, IHasScreenSaverController, IDisposable - { - CTimer InactivityTimer; - - /// - /// Assign the appropriate A/V driver. - /// Want to keep the AvDriver alive, because it may hold states - /// - public IAVDriver AvDriver { get; set;} - - public EssentialsHeaderDriver HeaderDriver { get; set; } - - public EssentialsEnvironmentDriver EnvironmentDriver { get; set; } - - public PanelDriverBase CurrentChildDriver { get; private set; } - - public ScreenSaverController ScreenSaverController { get; set; } - - private readonly long _timeoutMs; - - CrestronTouchpanelPropertiesConfig Config; - - /// - /// The main interlock for popups - /// - //public JoinedSigInterlock PopupInterlock { get; private set; } - - public EssentialsPanelMainInterfaceDriver(BasicTriListWithSmartObject trilist, - CrestronTouchpanelPropertiesConfig config) - : base(trilist) - { - Config = config; - - _timeoutMs = Config.ScreenSaverTimeoutMin * 60 * 1000; - - var tsx52or60 = trilist as Tswx52ButtonVoiceControl; - - if (tsx52or60 != null) - { - tsx52or60.ExtenderTouchDetectionReservedSigs.Use(); - tsx52or60.ExtenderTouchDetectionReservedSigs.DeviceExtenderSigChange += ExtenderTouchDetectionReservedSigs_DeviceExtenderSigChange; - tsx52or60.ExtenderTouchDetectionReservedSigs.Time.UShortValue = 1; - ManageInactivityTimer(); - - } - else - { - var tswx70 = trilist as TswX70Base; - if (tswx70 != null) - { - tswx70.ExtenderTouchDetectionReservedSigs.Use(); - tswx70.ExtenderTouchDetectionReservedSigs.DeviceExtenderSigChange += ExtenderTouchDetectionReservedSigs_DeviceExtenderSigChange; - tswx70.ExtenderTouchDetectionReservedSigs.Time.UShortValue = 1; - ManageInactivityTimer(); - } - } - } - - #region IDisposable Members - - public void Dispose() - { - var avDriver = AvDriver as PanelDriverBase; - if (avDriver != null) - { - avDriver.Hide(); - } - if (ScreenSaverController != null) - { - ScreenSaverController.Dispose(); - } - if (HeaderDriver != null) - { - HeaderDriver.Hide(); - } - if (EnvironmentDriver != null) - { - EnvironmentDriver.Hide(); - } - if (CurrentChildDriver != null) - { - CurrentChildDriver.Hide(); - } - } - - #endregion - - void ExtenderTouchDetectionReservedSigs_DeviceExtenderSigChange(Crestron.SimplSharpPro.DeviceExtender currentDeviceExtender, Crestron.SimplSharpPro.SigEventArgs args) - { - - if (args.Sig.BoolValue) - { - ManageInactivityTimer(); - } - } - - private void ManageInactivityTimer() - { - if (InactivityTimer != null) - { - InactivityTimer.Reset(_timeoutMs); - } - else - { - InactivityTimer = new CTimer((o) => InactivityTimerExpired(), _timeoutMs); - } - } - - void InactivityTimerExpired() - { - InactivityTimer.Stop(); - InactivityTimer.Dispose(); - InactivityTimer = null; - - ScreenSaverController.Show(); - } - - public override void Show() - { - CurrentChildDriver = null; - ShowSubDriver(AvDriver as PanelDriverBase); - - base.Show(); - } - - public override void Hide() - { - TriList.BooleanInput[AvDriver.StartPageVisibleJoin].BoolValue = false; - base.Hide(); - } - - void ShowSubDriver(PanelDriverBase driver) - { - CurrentChildDriver = driver; - if (driver == null) - return; - this.Hide(); - driver.Show(); - } - - /// - /// - /// - public override void BackButtonPressed() - { - if(CurrentChildDriver != null) - CurrentChildDriver.BackButtonPressed(); - } - } - - public interface IHasScreenSaverController - { - ScreenSaverController ScreenSaverController { get; } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/Essentials/EssentialsPresentationPanelAvFunctionsDriver.cs b/PepperDashEssentials/UIDrivers/Essentials/EssentialsPresentationPanelAvFunctionsDriver.cs deleted file mode 100644 index 9c8514ea..00000000 --- a/PepperDashEssentials/UIDrivers/Essentials/EssentialsPresentationPanelAvFunctionsDriver.cs +++ /dev/null @@ -1,1048 +0,0 @@ -//using System; -//using System.Collections.Generic; -//using System.Linq; -//using Crestron.SimplSharp; -//using Crestron.SimplSharpPro; - -//using PepperDash.Core; -//using PepperDash.Essentials.Core; -//using PepperDash.Essentials.Core.Config; -//using PepperDash.Essentials.Core.SmartObjects; -//using PepperDash.Essentials.Core.PageManagers; - -//namespace PepperDash.Essentials -//{ -// /// -// /// -// /// -// public class EssentialsPresentationPanelAvFunctionsDriver : PanelDriverBase -// { -// /// -// /// Smart Object 3200 -// /// -// SubpageReferenceList SourcesSrl; - -// /// -// /// For tracking feedback on last selected -// /// -// BoolInputSig LastSelectedSourceSig; - -// /// -// /// The source that has been selected and is awaiting assignment to a display -// /// -// SourceListItem PendingSource; - -// bool IsSharingModeAdvanced; - -// CrestronTouchpanelPropertiesConfig Config; - -// public enum UiDisplayMode -// { -// PresentationMode, AudioSetup -// } - -// /// -// /// Whether volume ramping from this panel will show the volume -// /// gauge popup. -// /// -// public bool ShowVolumeGauge { get; set; } - -// /// -// /// The amount of time that the volume buttons stays on screen, in ms -// /// -// public uint VolumeButtonPopupTimeout -// { -// get { return VolumeButtonsPopupFeedback.TimeoutMs; } -// set { VolumeButtonsPopupFeedback.TimeoutMs = value; } -// } - -// /// -// /// The amount of time that the volume gauge stays on screen, in ms -// /// -// public uint VolumeGaugePopupTimeout -// { -// get { return VolumeGaugeFeedback.TimeoutMs; } -// set { VolumeGaugeFeedback.TimeoutMs = value; } -// } - -// /// -// /// -// /// -// public uint PowerOffTimeout { get; set; } - -// /// -// /// -// /// -// public string DefaultRoomKey -// { -// get { return _DefaultRoomKey; } -// set -// { -// _DefaultRoomKey = value; -// CurrentRoom = DeviceManager.GetDeviceForKey(value) as EssentialsPresentationRoom; -// } -// } -// string _DefaultRoomKey; - -// /// -// /// -// /// -// public EssentialsPresentationRoom CurrentRoom -// { -// get { return _CurrentRoom; } -// set -// { -// SetCurrentRoom(value); -// } -// } -// EssentialsPresentationRoom _CurrentRoom; - -// /// -// /// For hitting feedback -// /// -// BoolInputSig ShareButtonSig; -// BoolInputSig EndMeetingButtonSig; - -// /// -// /// Controls the extended period that the volume gauge shows on-screen, -// /// as triggered by Volume up/down operations -// /// -// BoolFeedbackPulseExtender VolumeGaugeFeedback; - -// /// -// /// Controls the period that the volume buttons show on non-hard-button -// /// interfaces -// /// -// BoolFeedbackPulseExtender VolumeButtonsPopupFeedback; - -// /// -// /// The parent driver for this -// /// -// PanelDriverBase Parent; - -// ///// -// ///// Driver that manages advanced sharing features -// ///// -// //DualDisplaySimpleOrAdvancedRouting DualDisplayUiDriver; - -// /// -// /// All children attached to this driver. For hiding and showing as a group. -// /// -// List ChildDrivers = new List(); - -// List CurrentDisplayModeSigsInUse = new List(); - -// /// -// /// Smart Object 15022 -// /// -// SubpageReferenceList ActivityFooterSrl; - -// /// -// /// Tracks which audio page group the UI is in -// /// -// UiDisplayMode CurrentDisplayMode; - -// /// -// /// The AV page mangagers that have been used, to keep them alive for later -// /// -// Dictionary PageManagers = new Dictionary(); - -// /// -// /// Current page manager running for a source -// /// -// PageManager CurrentSourcePageManager; - -// /// -// /// Will auto-timeout a power off -// /// -// CTimer PowerOffTimer; - -// /// -// /// Constructor -// /// -// public EssentialsPresentationPanelAvFunctionsDriver(PanelDriverBase parent, -// CrestronTouchpanelPropertiesConfig config) -// : base(parent.TriList) -// { -// Config = config; -// Parent = parent; - -// ActivityFooterSrl = new SubpageReferenceList(TriList, 15022, 3, 3, 3); -// //SetupActivityFooterWhenRoomOff(); - -// ShowVolumeGauge = true; - -// // One-second pulse extender for volume gauge -// VolumeGaugeFeedback = new BoolFeedbackPulseExtender(1500); -// VolumeGaugeFeedback.Feedback -// .LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeGaugePopupVisible]); - -// VolumeButtonsPopupFeedback = new BoolFeedbackPulseExtender(4000); -// VolumeButtonsPopupFeedback.Feedback -// .LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeButtonPopupVisible]); - -// PowerOffTimeout = 30000; - -// SourcesSrl = new SubpageReferenceList(TriList, 3200, 3, 3, 3); - -// TriList.StringInput[UIStringJoin.StartActivityText].StringValue = -// "Tap an activity to begin"; - -// // Sharing mode things -// TriList.SetSigFalseAction(UIBoolJoin.ToggleSharingModePress, ToggleSharingModePressed); - -// TriList.SetSigFalseAction(UIBoolJoin.Display1AudioButtonPressAndFb, Display1AudioPress); -// TriList.SetSigFalseAction(UIBoolJoin.Display1ControlButtonPress, Display1ControlPress); -// TriList.SetSigTrueAction(UIBoolJoin.Display1SelectPressAndFb, Display1Press); - -// TriList.SetSigFalseAction(UIBoolJoin.Display2AudioButtonPressAndFb, Display2AudioPress); -// TriList.SetSigFalseAction(UIBoolJoin.Display2ControlButtonPress, Display2ControlPress); -// TriList.SetSigTrueAction(UIBoolJoin.Display2SelectPressAndFb, Display2Press); -// } - -// /// -// /// -// /// -// public override void Show() -// { -// TriList.BooleanInput[UIBoolJoin.TopBarHabaneroVisible].BoolValue = true; -// TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = true; - -// // Default to showing rooms/sources now. -// ShowMode(UiDisplayMode.PresentationMode); - -// // Attach actions -// TriList.SetSigFalseAction(UIBoolJoin.VolumeButtonPopupPress, VolumeButtonsTogglePress); - -// //Interlocked modals -// TriList.SetSigFalseAction(UIBoolJoin.InterlockedModalClosePress, HideCurrentInterlockedModal); -// TriList.SetSigFalseAction(UIBoolJoin.HelpPress, () => -// { -// string message = null; -// var room = DeviceManager.GetDeviceForKey(Config.DefaultRoomKey) -// as EssentialsPresentationRoom; -// if (room != null) -// message = room.Config.HelpMessage; -// else -// message = "Sorry, no help message available. No room connected."; -// TriList.StringInput[UIStringJoin.HelpMessage].StringValue = message; -// ShowInterlockedModal(UIBoolJoin.HelpPageVisible); -// }); - -// TriList.SetSigFalseAction(UIBoolJoin.HeaderRoomButtonPress, () => -// ShowInterlockedModal(UIBoolJoin.RoomHeaderPageVisible)); - -// TriList.SetSigFalseAction(UIBoolJoin.FIXFIX_HeaderGearButtonPress_FIXFIX, () => -// ShowInterlockedModal(UIBoolJoin.VolumesPageVisible)); - -// // power-related functions -// // Note: some of these are not directly-related to the huddle space UI, but are held over -// // in case -// TriList.SetSigFalseAction(UIBoolJoin.ShowPowerOffPress, PowerButtonPressed); -// TriList.SetSigFalseAction(UIBoolJoin.PowerOffCancelPress, CancelPowerOff); -// TriList.SetSigFalseAction(UIBoolJoin.PowerOffConfirmPress, FinishPowerOff); -// TriList.SetSigFalseAction(UIBoolJoin.PowerOffMorePress, () => -// { -// CancelPowerOffTimer(); -// TriList.BooleanInput[UIBoolJoin.PowerOffStep1Visible].BoolValue = false; -// TriList.BooleanInput[UIBoolJoin.PowerOffStep2Visible].BoolValue = true; -// }); -// TriList.SetSigFalseAction(UIBoolJoin.AllRoomsOffPress, () => -// { -// EssentialsHuddleSpaceRoom.AllRoomsOff(); -// CancelPowerOff(); -// }); - -// SetupActivityFooterWhenRoomOff(); - -// base.Show(); -// } - -// /// -// /// -// /// -// public override void Hide() -// { -// var tl = TriList.BooleanInput; -// HideAndClearCurrentDisplayModeSigsInUse(); -// tl[UIBoolJoin.TopBarHabaneroVisible].BoolValue = false; -// tl[UIBoolJoin.ActivityFooterVisible].BoolValue = false; -// tl[StartPageVisibleJoin].BoolValue = false; -// tl[UIBoolJoin.TapToBeginVisible].BoolValue = false; -// tl[UIBoolJoin.ToggleSharingModeVisible].BoolValue = false; -// tl[UIBoolJoin.SourceStagingBarVisible].BoolValue = false; -// if (IsSharingModeAdvanced) -// tl[UIBoolJoin.DualDisplayPageVisible].BoolValue = false; -// else -// tl[UIBoolJoin.SelectASourceVisible].BoolValue = false; - -// VolumeButtonsPopupFeedback.ClearNow(); -// CancelPowerOff(); - -// base.Hide(); -// } - -// /// -// /// -// /// -// void ShowCurrentSharingMode() -// { -// var tlb = TriList.BooleanInput; -// tlb[UIBoolJoin.ToggleSharingModeVisible].BoolValue = true; -// tlb[UIBoolJoin.SourceStagingBarVisible].BoolValue = true; -// if (IsSharingModeAdvanced) -// { -// tlb[UIBoolJoin.DualDisplayPageVisible].BoolValue = true; -// TriList.StringInput[UIStringJoin.Display1TitleLabel].StringValue = -// (CurrentRoom.Displays[1] as IKeyName).Name; -// TriList.StringInput[UIStringJoin.Display2TitleLabel].StringValue = -// (CurrentRoom.Displays[2] as IKeyName).Name; -// } -// else -// tlb[UIBoolJoin.SelectASourceVisible].BoolValue = true; -// } - -// /// -// /// -// /// -// void HideCurrentSharingMode() -// { -// var tl = TriList.BooleanInput; -// tl[UIBoolJoin.ToggleSharingModeVisible].BoolValue = false; -// tl[UIBoolJoin.SourceStagingBarVisible].BoolValue = false; -// tl[UIBoolJoin.DualDisplayPageVisible].BoolValue = false; -// tl[UIBoolJoin.SelectASourceVisible].BoolValue = false; -// } - -// /// -// /// Shows the various "modes" that this driver controls. Presentation, Setup page -// /// -// /// -// public void ShowMode(UiDisplayMode mode) -// { -// //Clear whatever is showing now. -// HideAndClearCurrentDisplayModeSigsInUse(); -// CurrentDisplayMode = mode; -// switch (mode) -// { -// case UiDisplayMode.PresentationMode: -// // show start page or staging... -// if (CurrentRoom.OnFeedback.BoolValue) -// { -// //TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true; -// TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false; -// TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; -// } -// else -// { -// TriList.BooleanInput[StartPageVisibleJoin].BoolValue = true; -// TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = true; -// TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; -// } -// // Date/time -// if (Config.ShowDate && Config.ShowTime) -// { -// TriList.BooleanInput[UIBoolJoin.DateAndTimeVisible].BoolValue = true; -// TriList.BooleanInput[UIBoolJoin.DateOnlyVisible].BoolValue = false; -// TriList.BooleanInput[UIBoolJoin.TimeOnlyVisible].BoolValue = false; -// } -// else -// { -// TriList.BooleanInput[UIBoolJoin.DateAndTimeVisible].BoolValue = false; -// TriList.BooleanInput[UIBoolJoin.DateOnlyVisible].BoolValue = Config.ShowDate; -// TriList.BooleanInput[UIBoolJoin.TimeOnlyVisible].BoolValue = Config.ShowTime; -// } - -// //TriList.SetSigFalseAction(UIBoolJoin.ToggleSharingModePress, ToggleSharingModePressed); - -// ShowCurrentDisplayModeSigsInUse(); -// break; -// } -// } - -// /// -// /// -// /// -// void SetupSourceList() -// { -// // get the source list config and set up the source list -// var config = ConfigReader.ConfigObject.SourceLists; -// if (config.ContainsKey(CurrentRoom.SourceListKey)) -// { -// var srcList = config[CurrentRoom.SourceListKey] -// .Values.ToList().OrderBy(s => s.Order); -// // Setup sources list -// uint i = 1; // counter for UI list -// foreach (var srcConfig in srcList) -// { -// if (!srcConfig.IncludeInSourceList) // Skip sources marked this way -// continue; - -// var sourceKey = srcConfig.SourceKey; -// var actualSource = DeviceManager.GetDeviceForKey(sourceKey) as Device; -// if (actualSource == null) -// { -// Debug.Console(0, "Cannot assign missing source '{0}' to source UI list", -// srcConfig.SourceKey); -// continue; -// } -// var localSrcItem = srcConfig; // lambda scope below -// var localIndex = i; -// SourcesSrl.GetBoolFeedbackSig(i, 1).UserObject = new Action(b => -// { -// if (b) return; -// if (LastSelectedSourceSig != null) -// LastSelectedSourceSig.BoolValue = false; -// LastSelectedSourceSig = SourcesSrl.BoolInputSig(localIndex, 1); -// LastSelectedSourceSig.BoolValue = true; -// if (IsSharingModeAdvanced) -// { -// PendingSource = localSrcItem; -// } -// else -// { -// CurrentRoom.RouteSourceToAllDestinations(localSrcItem); -// } -// }); -// SourcesSrl.StringInputSig(i, 1).StringValue = srcConfig.PreferredName; -// i++; -// } -// var count = (ushort)(i-1); -// SourcesSrl.Count = count; -// TriList.BooleanInput[UIBoolJoin.StagingPageAdditionalArrowsVisible].BoolValue = -// count >= Config.SourcesOverflowCount; - -// _CurrentRoom.CurrentDisplay1SourceChange += _CurrentRoom_CurrentDisplay1SourceChange; -// _CurrentRoom.CurrentDisplay2SourceChange += _CurrentRoom_CurrentDisplay2SourceChange; -// } -// } - -// /// -// /// -// /// -// void ToggleSharingModePressed() -// { -// if (CurrentSourcePageManager != null) -// CurrentSourcePageManager.Hide(); -// HideCurrentSharingMode(); -// IsSharingModeAdvanced = !IsSharingModeAdvanced; -// TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced; -// ShowCurrentSharingMode(); -// } - -// ///// -// ///// -// ///// -// //void EnableAppropriateDisplayButtons() -// //{ -// // if (LastSelectedSourceSig != null) -// // LastSelectedSourceSig.BoolValue = false; -// //} - -// public void Display1Press() -// { -// CurrentRoom.SourceToDisplay1(PendingSource); -// } - -// public void Display1AudioPress() -// { - -// } - - -// public void Display1ControlPress() -// { -// var uiDev = CurrentRoom.Display1SourceInfo.SourceDevice as IUiDisplayInfo; -// ShowSource(uiDev); -// } - -// public void Display2Press() -// { -// CurrentRoom.SourceToDisplay2(PendingSource); -// } - -// public void Display2AudioPress() -// { - -// } - -// public void Display2ControlPress() -// { -// var uiDev = CurrentRoom.Display2SourceInfo.SourceDevice as IUiDisplayInfo; -// ShowSource(uiDev); -// } - -// /// -// /// When the room is off, set the footer SRL -// /// -// void SetupActivityFooterWhenRoomOff() -// { -// ActivityFooterSrl.Clear(); -// ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0, -// b => { if (!b) ShareButtonPressed(); })); -// // only show phone call when there's a dialer present -// ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 1, -// b => { })); -// ActivityFooterSrl.Count = (ushort)(CurrentRoom.HasAudioDialer ? 2 : 1); -// TriList.UShortInput[UIUshortJoin.PresentationStagingCaretMode].UShortValue = -// (ushort)(CurrentRoom.HasAudioDialer ? 1 : 0); -// } - -// /// -// /// Sets up the footer SRL for when the room is on -// /// -// void SetupActivityFooterWhenRoomOn() -// { -// ActivityFooterSrl.Clear(); -// ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, -// 0, null)); -// if (CurrentRoom.HasAudioDialer) -// { -// ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, -// 1, b => { })); -// ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(3, ActivityFooterSrl, -// 3, b => { if (!b) PowerButtonPressed(); })); -// ActivityFooterSrl.Count = 3; -// TriList.UShortInput[UIUshortJoin.PresentationStagingCaretMode].UShortValue = 2; -// EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(3, 1); -// } -// else -// { -// ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, -// 3, b => { if (!b) PowerButtonPressed(); })); -// ActivityFooterSrl.Count = 2; -// TriList.UShortInput[UIUshortJoin.PresentationStagingCaretMode].UShortValue = 1; -// EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(2, 1); -// } -// } - -// /// -// /// Attached to activity list share button -// /// -// void ShareButtonPressed() -// { -// ShareButtonSig = ActivityFooterSrl.BoolInputSig(1, 1); -// if (!_CurrentRoom.OnFeedback.BoolValue) -// { -// ShareButtonSig.BoolValue = true; -// TriList.BooleanInput[StartPageVisibleJoin].BoolValue = false; -// ShowCurrentSharingMode(); -// } -// } - -// uint CurrentInterlockedModalJoin; - -// void ShowInterlockedModal(uint join) -// { -// if (CurrentInterlockedModalJoin == join) -// HideCurrentInterlockedModal(); -// else -// { -// TriList.BooleanInput[UIBoolJoin.HelpPageVisible].BoolValue = join == UIBoolJoin.HelpPageVisible; -// TriList.BooleanInput[UIBoolJoin.RoomHeaderPageVisible].BoolValue = join == UIBoolJoin.RoomHeaderPageVisible; -// TriList.BooleanInput[UIBoolJoin.VolumesPageVisible].BoolValue = join == UIBoolJoin.VolumesPageVisible; -// CurrentInterlockedModalJoin = join; -// } -// } - -// void HideCurrentInterlockedModal() -// { -// TriList.BooleanInput[CurrentInterlockedModalJoin].BoolValue = false; -// CurrentInterlockedModalJoin = 0; -// } - -// /// -// /// Shows all sigs that are in CurrentDisplayModeSigsInUse -// /// -// void ShowCurrentDisplayModeSigsInUse() -// { -// foreach (var sig in CurrentDisplayModeSigsInUse) -// sig.BoolValue = true; -// } - -// /// -// /// Hides all CurrentDisplayModeSigsInUse sigs and clears the array -// /// -// void HideAndClearCurrentDisplayModeSigsInUse() -// { -// foreach (var sig in CurrentDisplayModeSigsInUse) -// sig.BoolValue = false; -// CurrentDisplayModeSigsInUse.Clear(); -// } - -// /// -// /// Send the UI back depending on location, not used in huddle UI -// /// -// public override void BackButtonPressed() -// { -// switch (CurrentDisplayMode) -// { -// case UiDisplayMode.PresentationMode: -// //CancelReturnToSourceTimer(); -// BackToHome(); -// break; -// } -// } - -// /// -// /// -// /// -// void BackToHome() -// { -// Hide(); -// Parent.Show(); -// } - -// /// -// /// Loads the appropriate Sigs into CurrentDisplayModeSigsInUse and shows them -// /// -// void ShowCurrentSource() -// { -// if (CurrentRoom.CurrentSingleSourceInfo == null) -// return; -// var uiDev = CurrentRoom.CurrentSingleSourceInfo.SourceDevice as IUiDisplayInfo; -// ShowSource(uiDev); -// } - -// void ShowSource(IUiDisplayInfo uiDev) -// { -// PageManager pm = null; -// // If we need a page manager, get an appropriate one -// if (uiDev != null) -// { -// TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; -// if (IsSharingModeAdvanced) -// { -// TriList.BooleanInput[UIBoolJoin.SourceBackgroundOverlayVisible].BoolValue = true; -// TriList.SetSigFalseAction(UIBoolJoin.SourceBackgroundOverlayClosePress, new Action(() => -// { -// TriList.BooleanInput[UIBoolJoin.SourceBackgroundOverlayVisible].BoolValue = false; -// if (CurrentSourcePageManager != null) -// CurrentSourcePageManager.Hide(); -// })); -// } - - -// // Got an existing page manager, get it -// if (PageManagers.ContainsKey(uiDev)) -// pm = PageManagers[uiDev]; -// // Otherwise make an apporiate one -// else if (uiDev is ISetTopBoxControls) -// pm = new SetTopBoxThreePanelPageManager(uiDev as ISetTopBoxControls, TriList); -// else if (uiDev is IDiscPlayerControls) -// pm = new DiscPlayerMediumPageManager(uiDev as IDiscPlayerControls, TriList); -// else -// pm = new DefaultPageManager(uiDev, TriList); -// PageManagers[uiDev] = pm; -// CurrentSourcePageManager = pm; -// pm.Show(); -// } -// } - -// /// -// /// -// /// -// public void PowerButtonPressed() -// { -// if (!CurrentRoom.OnFeedback.BoolValue) -// return; -// EndMeetingButtonSig.BoolValue = true; -// ShareButtonSig.BoolValue = false; -// // Timeout or button 1 press will shut down -// var modal = new ModalDialog(TriList); -// uint time = 60000; -// uint seconds = time / 1000; -// var message = string.Format("Meeting will end in {0} seconds", seconds); -// modal.PresentModalDialog(2, "End Meeting", "Power", message, -// "End Meeting Now", "Cancel", true, true, -// but => -// { -// EndMeetingButtonSig.BoolValue = false; -// if (but != 2) -// { -// CurrentRoom.RouteSourceToAllDestinations(null); -// } -// else -// ShareButtonSig.BoolValue = true; // restore Share fb -// }); -// } - -// void CancelPowerOffTimer() -// { -// if (PowerOffTimer != null) -// { -// PowerOffTimer.Stop(); -// PowerOffTimer = null; -// } -// } - -// /// -// /// Runs the power off function on the current room -// /// -// public void FinishPowerOff() -// { -// if (CurrentRoom == null) -// return; -// CurrentRoom.RunRouteAction("roomOff"); -// CancelPowerOff(); -// } - -// /// -// /// Hides power off pages and stops timer -// /// -// void CancelPowerOff() -// { -// CancelPowerOffTimer(); -// TriList.BooleanInput[UIBoolJoin.PowerOffStep1Visible].BoolValue = false; -// TriList.BooleanInput[UIBoolJoin.PowerOffStep2Visible].BoolValue = false; -// } - -// /// -// /// -// /// -// void VolumeButtonsTogglePress() -// { -// if (VolumeButtonsPopupFeedback.BoolValue) -// VolumeButtonsPopupFeedback.ClearNow(); -// else -// { -// // Trigger the popup -// VolumeButtonsPopupFeedback.BoolValue = true; -// VolumeButtonsPopupFeedback.BoolValue = false; -// } -// } - -// /// -// /// -// /// -// /// -// public void VolumeUpPress(bool state) -// { -// // extend timeouts -// if (ShowVolumeGauge) -// VolumeGaugeFeedback.BoolValue = state; -// VolumeButtonsPopupFeedback.BoolValue = state; -// if (CurrentRoom.CurrentVolumeControls != null) -// CurrentRoom.CurrentVolumeControls.VolumeUp(state); -// } - -// /// -// /// -// /// -// /// -// public void VolumeDownPress(bool state) -// { -// // extend timeouts -// if (ShowVolumeGauge) -// VolumeGaugeFeedback.BoolValue = state; -// VolumeButtonsPopupFeedback.BoolValue = state; -// if (CurrentRoom.CurrentVolumeControls != null) -// CurrentRoom.CurrentVolumeControls.VolumeDown(state); -// } - -// /// -// /// Helper for property setter. Sets the panel to the given room, latching up all functionality -// /// -// void SetCurrentRoom(EssentialsPresentationRoom room) -// { -// if (_CurrentRoom == room) return; -// if (_CurrentRoom != null) -// { -// // Disconnect current room -// _CurrentRoom.OnFeedback.OutputChange -= _CurrentRoom_OnFeedback_OutputChange; -// _CurrentRoom.CurrentVolumeDeviceChange -= this._CurrentRoom_CurrentAudioDeviceChange; -// ClearAudioDeviceConnections(); -// _CurrentRoom.CurrentSingleSourceChange -= this._CurrentRoom_SourceInfoChange; -// DisconnectSource(_CurrentRoom.CurrentSingleSourceInfo); -// } -// _CurrentRoom = room; - -// if (_CurrentRoom != null) -// { -// if (IsSharingModeAdvanced) -// {} // add stuff here -// else -// SetupSourceList(); -// TriList.StringInput[UIStringJoin.CurrentRoomName].StringValue = _CurrentRoom.Name; - -// // Link up all the change events from the room -// _CurrentRoom.OnFeedback.OutputChange += _CurrentRoom_OnFeedback_OutputChange; -// _CurrentRoom.CurrentVolumeDeviceChange += _CurrentRoom_CurrentAudioDeviceChange; -// RefreshAudioDeviceConnections(); -// _CurrentRoom.CurrentSingleSourceChange += _CurrentRoom_SourceInfoChange; -// RefreshSourceInfo(); -// } -// else -// { -// // Clear sigs that need to be -// TriList.StringInput[UIStringJoin.CurrentRoomName].StringValue = "Select a room"; -// } -// } - -// /// -// /// Hides source for provided source info -// /// -// /// -// void DisconnectSource(SourceListItem previousInfo) -// { -// if (previousInfo == null) return; - -// // Hide whatever is showing -// if (IsVisible) -// { -// if (CurrentSourcePageManager != null) -// { -// CurrentSourcePageManager.Hide(); -// CurrentSourcePageManager = null; -// } -// } - -// if (previousInfo == null) return; -// var previousDev = previousInfo.SourceDevice; - -// // device type interfaces -// if (previousDev is ISetTopBoxControls) -// (previousDev as ISetTopBoxControls).UnlinkButtons(TriList); -// // common interfaces -// if (previousDev is IChannel) -// (previousDev as IChannel).UnlinkButtons(TriList); -// if (previousDev is IColor) -// (previousDev as IColor).UnlinkButtons(TriList); -// if (previousDev is IDPad) -// (previousDev as IDPad).UnlinkButtons(TriList); -// if (previousDev is IDvr) -// (previousDev as IDvr).UnlinkButtons(TriList); -// if (previousDev is INumericKeypad) -// (previousDev as INumericKeypad).UnlinkButtons(TriList); -// if (previousDev is IPower) -// (previousDev as IPower).UnlinkButtons(TriList); -// if (previousDev is ITransport) -// (previousDev as ITransport).UnlinkButtons(TriList); -// //if (previousDev is IRadio) -// // (previousDev as IRadio).UnlinkButtons(this); -// } - -// /// -// /// Refreshes and shows the room's current source -// /// -// void RefreshSourceInfo() -// { -// var routeInfo = CurrentRoom.CurrentSingleSourceInfo; -// // This will show off popup too -// if (this.IsVisible) -// ShowCurrentSource(); - -// if (routeInfo == null)// || !CurrentRoom.OnFeedback.BoolValue) -// { -// // Check for power off and insert "Room is off" -// TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = "Room is off"; -// TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = "Power"; -// this.Hide(); -// Parent.Show(); -// return; -// } -// else if (CurrentRoom.CurrentSingleSourceInfo != null) -// { -// TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = routeInfo.PreferredName; -// TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = routeInfo.Icon; // defaults to "blank" -// } -// else -// { -// TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = "---"; -// TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = "Blank"; -// } - -// // Connect controls -// if (routeInfo.SourceDevice != null) -// ConnectControlDeviceMethods(routeInfo.SourceDevice); -// } - -// /// -// /// Attach the source to the buttons and things -// /// -// void ConnectControlDeviceMethods(Device dev) -// { -// if(dev is ISetTopBoxControls) -// (dev as ISetTopBoxControls).LinkButtons(TriList); -// if (dev is IChannel) -// (dev as IChannel).LinkButtons(TriList); -// if (dev is IColor) -// (dev as IColor).LinkButtons(TriList); -// if (dev is IDPad) -// (dev as IDPad).LinkButtons(TriList); -// if (dev is IDvr) -// (dev as IDvr).LinkButtons(TriList); -// if (dev is INumericKeypad) -// (dev as INumericKeypad).LinkButtons(TriList); -// if (dev is IPower) -// (dev as IPower).LinkButtons(TriList); -// if (dev is ITransport) -// (dev as ITransport).LinkButtons(TriList); -// //if (dev is IRadio) -// // (dev as IRadio).LinkButtons(this); // +++++++++++++ Make part of this into page manager - -// //if (dev is ICustomFunctions) -// //{ -// // var custBridge = (dev as ICustomFunctions).GetCustomBridge(); -// // custBridge.Link(this.Remote); -// } - -// /// -// /// Detaches the buttons and feedback from the room's current audio device -// /// -// void ClearAudioDeviceConnections() -// { -// TriList.ClearBoolSigAction(UIBoolJoin.VolumeUpPress); -// TriList.ClearBoolSigAction(UIBoolJoin.VolumeDownPress); -// TriList.ClearBoolSigAction(UIBoolJoin.Volume1ProgramMutePressAndFB); - -// var fDev = CurrentRoom.CurrentVolumeControls as IBasicVolumeWithFeedback; -// if (fDev != null) -// { -// TriList.ClearUShortSigAction(UIUshortJoin.VolumeSlider1Value); -// fDev.VolumeLevelFeedback.UnlinkInputSig( -// TriList.UShortInput[UIUshortJoin.VolumeSlider1Value]); -// } -// } - -// /// -// /// Attaches the buttons and feedback to the room's current audio device -// /// -// void RefreshAudioDeviceConnections() -// { -// var dev = CurrentRoom.CurrentVolumeControls; -// if (dev != null) // connect buttons -// { -// TriList.SetBoolSigAction(UIBoolJoin.VolumeUpPress, VolumeUpPress); -// TriList.SetBoolSigAction(UIBoolJoin.VolumeDownPress, VolumeDownPress); -// TriList.SetSigFalseAction(UIBoolJoin.Volume1ProgramMutePressAndFB, dev.MuteToggle); -// } - -// var fbDev = dev as IBasicVolumeWithFeedback; -// if (fbDev == null) // this should catch both IBasicVolume and IBasicVolumeWithFeeback -// TriList.UShortInput[UIUshortJoin.VolumeSlider1Value].UShortValue = 0; -// else -// { -// // slider -// TriList.SetUShortSigAction(UIUshortJoin.VolumeSlider1Value, fbDev.SetVolume); -// // feedbacks -// fbDev.MuteFeedback.LinkInputSig(TriList.BooleanInput[UIBoolJoin.Volume1ProgramMutePressAndFB]); -// fbDev.VolumeLevelFeedback.LinkInputSig( -// TriList.UShortInput[UIUshortJoin.VolumeSlider1Value]); -// } -// } - -// /// -// /// Handler for when the room's volume control device changes -// /// -// void _CurrentRoom_CurrentAudioDeviceChange(object sender, VolumeDeviceChangeEventArgs args) -// { -// if (args.Type == ChangeType.WillChange) -// ClearAudioDeviceConnections(); -// else // did change -// RefreshAudioDeviceConnections(); -// } - -// /// -// /// For room on/off changes -// /// -// void _CurrentRoom_OnFeedback_OutputChange(object sender, EventArgs e) -// { -// var value = _CurrentRoom.OnFeedback.BoolValue; -// TriList.BooleanInput[UIBoolJoin.RoomIsOn].BoolValue = value; -// if (value) -// { -// SetupActivityFooterWhenRoomOn(); -// TriList.BooleanInput[StartPageVisibleJoin].BoolValue = false; -// } -// else -// { -// HideCurrentSharingMode(); -// SetupActivityFooterWhenRoomOff(); -// TriList.BooleanInput[StartPageVisibleJoin].BoolValue = true; -// if (LastSelectedSourceSig != null) -// { -// LastSelectedSourceSig.BoolValue = false; -// LastSelectedSourceSig = null; -// } -// PendingSource = null; -// } - -// if (_CurrentRoom.HasAudioDialer) -// { -// TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = value; -// TriList.BooleanInput[UIBoolJoin.VolumeSingleMute1Visible].BoolValue = false; -// } -// else -// { -// TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = false; -// TriList.BooleanInput[UIBoolJoin.VolumeSingleMute1Visible].BoolValue = value; -// } -// } - -// /// -// /// Handles source change -// /// -// void _CurrentRoom_SourceInfoChange(IEssentialsRoom room, -// SourceListItem info, ChangeType change) -// { -// if (change == ChangeType.WillChange) -// DisconnectSource(info); -// else -// RefreshSourceInfo(); -// } - -// /// -// /// -// /// -// void _CurrentRoom_CurrentDisplay1SourceChange(IEssentialsRoom room, SourceListItem info, ChangeType type) -// { -// if (type == ChangeType.DidChange) -// { -// var isSource = info != null; -// TriList.BooleanInput[UIBoolJoin.Display1SelectPressAndFb].BoolValue = isSource; -// TriList.StringInput[UIStringJoin.Display1SourceLabel].StringValue = -// isSource ? info.PreferredName : ""; -// if (!isSource) // return if no source -// { -// TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue = false; -// TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = false; -// return; -// } -// // enable audio and control buttons -// var devConfig = ConfigReader.ConfigObject.Devices.FirstOrDefault(d => d.Key == info.SourceKey); -// TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue = -// ConfigPropertiesHelpers.GetHasAudio(devConfig); -// TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = -// ConfigPropertiesHelpers.GetHasControls(devConfig); -// } -// } - -// /// -// /// -// /// -// void _CurrentRoom_CurrentDisplay2SourceChange(IEssentialsRoom room, SourceListItem info, ChangeType type) -// { -// if (type == ChangeType.DidChange) -// { -// var isSource = info != null; -// TriList.BooleanInput[UIBoolJoin.Display2SelectPressAndFb].BoolValue = isSource; -// TriList.StringInput[UIStringJoin.Display2SourceLabel].StringValue = -// isSource ? info.PreferredName : ""; -// if (!isSource) -// { -// TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = false; -// TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = false; -// return; -// } -// // enable audio and control buttons -// var devConfig = ConfigReader.ConfigObject.Devices.FirstOrDefault(d => d.Key == info.SourceKey); -// TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = -// ConfigPropertiesHelpers.GetHasAudio(devConfig); -// TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = -// ConfigPropertiesHelpers.GetHasControls(devConfig); -// } -// } - -// } -//} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/EssentialsHuddle/EssentialsHuddlePanelAvFunctionsDriver.cs b/PepperDashEssentials/UIDrivers/EssentialsHuddle/EssentialsHuddlePanelAvFunctionsDriver.cs deleted file mode 100644 index e58172de..00000000 --- a/PepperDashEssentials/UIDrivers/EssentialsHuddle/EssentialsHuddlePanelAvFunctionsDriver.cs +++ /dev/null @@ -1,1128 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.UI; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.SmartObjects; -using PepperDash.Essentials.Core.PageManagers; - -namespace PepperDash.Essentials -{ - /// - /// - /// - public class EssentialsHuddlePanelAvFunctionsDriver : PanelDriverBase, IAVDriver - { - CrestronTouchpanelPropertiesConfig Config; - - public enum UiDisplayMode - { - PresentationMode, AudioSetup - } - - public uint StartPageVisibleJoin { get; private set; } - - - /// - /// Whether volume ramping from this panel will show the volume - /// gauge popup. - /// - public bool ShowVolumeGauge { get; set; } - - /// - /// The amount of time that the volume buttons stays on screen, in ms - /// - public uint VolumeButtonPopupTimeout - { - get { return VolumeButtonsPopupFeedback.TimeoutMs; } - set { VolumeButtonsPopupFeedback.TimeoutMs = value; } - } - - /// - /// The amount of time that the volume gauge stays on screen, in ms - /// - public uint VolumeGaugePopupTimeout - { - get { return VolumeGaugeFeedback.TimeoutMs; } - set { VolumeGaugeFeedback.TimeoutMs = value; } - } - - /// - /// - /// - public uint PowerOffTimeout { get; set; } - - /// - /// - /// - public string DefaultRoomKey - { - get { return _DefaultRoomKey; } - set - { - _DefaultRoomKey = value; - //CurrentRoom = DeviceManager.GetDeviceForKey(value) as EssentialsHuddleSpaceRoom; - } - } - string _DefaultRoomKey; - - /// - /// Indicates that the SetHeaderButtons method has completed successfully - /// - public bool HeaderButtonsAreSetUp { get; private set; } - - /// - /// - /// - public IEssentialsHuddleSpaceRoom CurrentRoom - { - get { return _CurrentRoom; } - set - { - SetCurrentRoom(value); - } - } - IEssentialsHuddleSpaceRoom _CurrentRoom; - - /// - /// - /// - //uint CurrentInterlockedModalJoin; - - /// - /// For hitting feedback - /// - BoolInputSig ShareButtonSig; - BoolInputSig EndMeetingButtonSig; - - /// - /// Controls the extended period that the volume gauge shows on-screen, - /// as triggered by Volume up/down operations - /// - BoolFeedbackPulseExtender VolumeGaugeFeedback; - - /// - /// Controls the period that the volume buttons show on non-hard-button - /// interfaces - /// - BoolFeedbackPulseExtender VolumeButtonsPopupFeedback; - - /// - /// The parent driver for this - /// - public PanelDriverBase Parent { get; private set; } - - /// - /// All children attached to this driver. For hiding and showing as a group. - /// - List ChildDrivers = new List(); - - List CurrentDisplayModeSigsInUse = new List(); - - //// Important smart objects - - /// - /// Smart Object 3200 - /// - SubpageReferenceList SourcesSrl; - - /// - /// Smart Object 15022 - /// - SubpageReferenceList ActivityFooterSrl; - - /// - /// Tracks which audio page group the UI is in - /// - UiDisplayMode CurrentDisplayMode; - - /// - /// The AV page mangagers that have been used, to keep them alive for later - /// - Dictionary PageManagers = new Dictionary(); - - /// - /// Current page manager running for a source - /// - PageManager CurrentSourcePageManager; - - /// - /// Will auto-timeout a power off - /// - CTimer PowerOffTimer; - - ModalDialog PowerDownModal; - - public JoinedSigInterlock PopupInterlock { get; private set; } - - /// - /// The driver for the tech page. Lazy getter for memory usage - /// - PepperDash.Essentials.UIDrivers.EssentialsHuddleTechPageDriver TechDriver - { - get - { - if (_TechDriver == null) - _TechDriver = new PepperDash.Essentials.UIDrivers.EssentialsHuddleTechPageDriver(TriList, CurrentRoom.PropertiesConfig.Tech); - return _TechDriver; - } - } - PepperDash.Essentials.UIDrivers.EssentialsHuddleTechPageDriver _TechDriver; - - - /// - /// Controls timeout of notification ribbon timer - /// - CTimer RibbonTimer; - - /// - /// Constructor - /// - public EssentialsHuddlePanelAvFunctionsDriver(PanelDriverBase parent, CrestronTouchpanelPropertiesConfig config) - : base(parent.TriList) - { - Config = config; - Parent = parent; - PopupInterlock = new JoinedSigInterlock(TriList); - - SourcesSrl = new SubpageReferenceList(TriList, 3200, 3, 3, 3); - ActivityFooterSrl = new SubpageReferenceList(TriList, 15022, 3, 3, 3); - ShareButtonSig = ActivityFooterSrl.BoolInputSig(1, 1); - - SetupActivityFooterWhenRoomOff(); - - ShowVolumeGauge = true; - - // One-second pulse extender for volume gauge - VolumeGaugeFeedback = new BoolFeedbackPulseExtender(1500); - VolumeGaugeFeedback.Feedback - .LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeGaugePopupVisible]); - - VolumeButtonsPopupFeedback = new BoolFeedbackPulseExtender(4000); - VolumeButtonsPopupFeedback.Feedback - .LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeButtonPopupVisible]); - - PowerOffTimeout = 30000; - - TriList.StringInput[UIStringJoin.StartActivityText].StringValue = - "Tap Share to begin"; - } - - - /// - /// - /// - public override void Show() - { - if (CurrentRoom == null) - { - Debug.Console(1, "ERROR: AVUIFunctionsDriver, Cannot show. No room assigned"); - return; - } - - var roomConf = CurrentRoom.PropertiesConfig; - - if (Config.HeaderStyle.ToLower() == CrestronTouchpanelPropertiesConfig.Habanero) - { - TriList.SetSigFalseAction(UIBoolJoin.HeaderRoomButtonPress, () => - { - if (CurrentRoom.IsMobileControlEnabled) - { - Debug.Console(1, "Showing Mobile Control Header Info"); - PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderInfoMCPageVisible); - } - else - { - Debug.Console(1, "Showing Non Mobile Control Header Info"); - PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderInfoPageVisible); - } - }); - } - else if (Config.HeaderStyle.ToLower() == CrestronTouchpanelPropertiesConfig.Verbose) - { - TriList.SetSigFalseAction(UIBoolJoin.HeaderRoomButtonPress, () => - { - if (CurrentRoom.IsMobileControlEnabled) - { - Debug.Console(1, "Showing Mobile Control Header Info"); - PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderInfoMCPageVisible); - } - else - { - Debug.Console(1, "Showing Non Mobile Control Header Info"); - PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderInfoPageVisible); - } - }); - } - - TriList.SetBool(UIBoolJoin.DateAndTimeVisible, Config.ShowDate && Config.ShowTime); - TriList.SetBool(UIBoolJoin.DateOnlyVisible, Config.ShowDate && !Config.ShowTime); - TriList.SetBool(UIBoolJoin.TimeOnlyVisible, !Config.ShowDate && Config.ShowTime); - - TriList.SetBool(UIBoolJoin.TopBarHabaneroDynamicVisible, true); - TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = true; - - // Default to showing rooms/sources now. - if (CurrentRoom.OnFeedback.BoolValue) - { - TriList.SetBool(UIBoolJoin.TapToBeginVisible, false); - SetupActivityFooterWhenRoomOn(); - } - else - { - TriList.SetBool(StartPageVisibleJoin, true); - TriList.SetBool(UIBoolJoin.TapToBeginVisible, true); - SetupActivityFooterWhenRoomOff(); - } - ShowCurrentDisplayModeSigsInUse(); - - // Attach actions - TriList.SetSigFalseAction(UIBoolJoin.VolumeButtonPopupPress, VolumeButtonsTogglePress); - - // Generic "close" button for popup modals - TriList.SetSigFalseAction(UIBoolJoin.InterlockedModalClosePress, PopupInterlock.HideAndClear); - - // Volume related things - TriList.SetSigFalseAction(UIBoolJoin.VolumeDefaultPress, () => CurrentRoom.SetDefaultLevels()); - TriList.SetString(UIStringJoin.AdvancedVolumeSlider1Text, "Room"); - - //TriList.SetSigFalseAction(UIBoolJoin.RoomHeaderButtonPress, () => - // ShowInterlockedModal(UIBoolJoin.RoomHeaderPageVisible)); - - - //if(TriList is CrestronApp) - // TriList.BooleanInput[UIBoolJoin.GearButtonVisible].BoolValue = false; - //else - // TriList.BooleanInput[UIBoolJoin.GearButtonVisible].BoolValue = true; - - // power-related functions - // Note: some of these are not directly-related to the huddle space UI, but are held over - // in case - TriList.SetSigFalseAction(UIBoolJoin.ShowPowerOffPress, EndMeetingPress); - - TriList.SetSigFalseAction(UIBoolJoin.DisplayPowerTogglePress, () => - { - if (CurrentRoom != null && CurrentRoom.DefaultDisplay != null && CurrentRoom.DefaultDisplay is IHasPowerControl) - (CurrentRoom.DefaultDisplay as IHasPowerControl).PowerToggle(); - }); - - base.Show(); - } - - /// - /// - /// - public void EndMeetingPress() - { - if (!CurrentRoom.OnFeedback.BoolValue - || CurrentRoom.ShutdownPromptTimer.IsRunningFeedback.BoolValue) - return; - - CurrentRoom.StartShutdown(eShutdownType.Manual); - } - - /// - /// Reveals the tech page and puts away anything that's in the way. - /// - public void ShowTech() - { - PopupInterlock.HideAndClear(); - TechDriver.Show(); - } - - /// - /// - /// - void ShowLogo() - { - if (CurrentRoom.LogoUrlLightBkgnd == null) - { - TriList.SetBool(UIBoolJoin.LogoDefaultVisible, true); - TriList.SetBool(UIBoolJoin.LogoUrlVisible, false); - } - else - { - TriList.SetBool(UIBoolJoin.LogoDefaultVisible, false); - TriList.SetBool(UIBoolJoin.LogoUrlVisible, true); - TriList.SetString(UIStringJoin.LogoUrlLightBkgnd, _CurrentRoom.LogoUrlLightBkgnd); - TriList.SetString(UIStringJoin.LogoUrlDarkBkgnd, _CurrentRoom.LogoUrlDarkBkgnd); - } - } - - /// - /// - /// - void HideLogo() - { - TriList.SetBool(UIBoolJoin.LogoDefaultVisible, false); - TriList.SetBool(UIBoolJoin.LogoUrlVisible, false); - } - - /// - /// - /// - public override void Hide() - { - HideAndClearCurrentDisplayModeSigsInUse(); - TriList.BooleanInput[UIBoolJoin.TopBarHabaneroDynamicVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = false; - TriList.BooleanInput[StartPageVisibleJoin].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; - //TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false; - VolumeButtonsPopupFeedback.ClearNow(); - //CancelPowerOff(); - - base.Hide(); - } - - /// - /// Reveals a message on the notification ribbon until cleared - /// - /// Text to display - /// Time in ms to display. 0 to keep on screen - public void ShowNotificationRibbon(string message, int timeout) - { - TriList.SetString(UIStringJoin.NotificationRibbonText, message); - TriList.SetBool(UIBoolJoin.NotificationRibbonVisible, true); - if (timeout > 0) - { - if (RibbonTimer != null) - RibbonTimer.Stop(); - RibbonTimer = new CTimer(o => - { - TriList.SetBool(UIBoolJoin.NotificationRibbonVisible, false); - RibbonTimer = null; - }, timeout); - } - } - - /// - /// Hides the notification ribbon - /// - public void HideNotificationRibbon() - { - TriList.SetBool(UIBoolJoin.NotificationRibbonVisible, false); - if (RibbonTimer != null) - { - RibbonTimer.Stop(); - RibbonTimer = null; - } - } - - /// - /// Shows the various "modes" that this driver controls. Presentation, Setup page - /// - /// - public void ShowMode(UiDisplayMode mode) - { - //Clear whatever is showing now. - HideAndClearCurrentDisplayModeSigsInUse(); - CurrentDisplayMode = mode; - switch (mode) - { - case UiDisplayMode.PresentationMode: - // show start page or staging... - if (CurrentRoom.OnFeedback.BoolValue) - { - TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = true; - TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; - } - else - { - TriList.BooleanInput[StartPageVisibleJoin].BoolValue = true; - TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = true; - TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; - } - // Date/time - if (Config.ShowDate && Config.ShowTime) - { - TriList.BooleanInput[UIBoolJoin.DateAndTimeVisible].BoolValue = true; - TriList.BooleanInput[UIBoolJoin.DateOnlyVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.TimeOnlyVisible].BoolValue = false; - } - else - { - TriList.BooleanInput[UIBoolJoin.DateAndTimeVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.DateOnlyVisible].BoolValue = Config.ShowDate; - TriList.BooleanInput[UIBoolJoin.TimeOnlyVisible].BoolValue = Config.ShowTime; - } - - ShowCurrentDisplayModeSigsInUse(); - break; - } - } - - /// - /// When the room is off, set the footer SRL - /// - void SetupActivityFooterWhenRoomOff() - { - ActivityFooterSrl.Clear(); - ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0, - b => { if (!b) ShareButtonPressed(); })); - ActivityFooterSrl.Count = 1; - TriList.UShortInput[UIUshortJoin.PresentationStagingCaretMode].UShortValue = 0; - ShareButtonSig.BoolValue = false; - } - - /// - /// Sets up the footer SRL for when the room is on - /// - void SetupActivityFooterWhenRoomOn() - { - ActivityFooterSrl.Clear(); - ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, - 0, null)); - ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, - 4, b => { if (!b) PowerButtonPressed(); })); - ActivityFooterSrl.Count = 2; - TriList.UShortInput[UIUshortJoin.PresentationStagingCaretMode].UShortValue = 1; - EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(2, 1); - ShareButtonSig.BoolValue = CurrentRoom.OnFeedback.BoolValue; - } - - /// - /// Attached to activity list share button - /// - void ShareButtonPressed() - { - ShareButtonSig.BoolValue = true; - TriList.BooleanInput[StartPageVisibleJoin].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = true; - TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = true; - // Run default source when room is off and share is pressed - if (!CurrentRoom.OnFeedback.BoolValue) - (CurrentRoom as IRunDefaultPresentRoute).RunDefaultPresentRoute(); - } - - - /// - /// Shows all sigs that are in CurrentDisplayModeSigsInUse - /// - void ShowCurrentDisplayModeSigsInUse() - { - foreach (var sig in CurrentDisplayModeSigsInUse) - sig.BoolValue = true; - } - - /// - /// Hides all CurrentDisplayModeSigsInUse sigs and clears the array - /// - void HideAndClearCurrentDisplayModeSigsInUse() - { - foreach (var sig in CurrentDisplayModeSigsInUse) - sig.BoolValue = false; - CurrentDisplayModeSigsInUse.Clear(); - } - - /// - /// Send the UI back depending on location, not used in huddle UI - /// - public override void BackButtonPressed() - { - switch (CurrentDisplayMode) - { - case UiDisplayMode.PresentationMode: - //CancelReturnToSourceTimer(); - BackToHome(); - break; - } - } - - /// - /// - /// - void BackToHome() - { - Hide(); - Parent.Show(); - } - - /// - /// Loads the appropriate Sigs into CurrentDisplayModeSigsInUse and shows them - /// - void ShowCurrentSource() - { - if (CurrentRoom.CurrentSourceInfo == null) - return; - - var uiDev = CurrentRoom.CurrentSourceInfo.SourceDevice as IUiDisplayInfo; - PageManager pm = null; - // If we need a page manager, get an appropriate one - if (uiDev != null) - { - TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; - // Got an existing page manager, get it - if (PageManagers.ContainsKey(uiDev)) - pm = PageManagers[uiDev]; - // Otherwise make an apporiate one - else if (uiDev is ISetTopBoxControls) - //pm = new SetTopBoxMediumPageManager(uiDev as ISetTopBoxControls, TriList); - pm = new SetTopBoxThreePanelPageManager(uiDev as ISetTopBoxControls, TriList); - else if (uiDev is IDiscPlayerControls) - pm = new DiscPlayerMediumPageManager(uiDev as IDiscPlayerControls, TriList); - else - pm = new DefaultPageManager(uiDev, TriList); - PageManagers[uiDev] = pm; - CurrentSourcePageManager = pm; - pm.Show(); - } - } - - /// - /// Called from button presses on source, where We can assume we want - /// to change to the proper screen. - /// - /// The key name of the route to run - void UiSelectSource(string key) - { - // Run the route and when it calls back, show the source - CurrentRoom.RunRouteAction(key); - } - - /// - /// - /// - public void PowerButtonPressed() - { - if (!CurrentRoom.OnFeedback.BoolValue - || CurrentRoom.ShutdownPromptTimer.IsRunningFeedback.BoolValue) - return; - - CurrentRoom.StartShutdown(eShutdownType.Manual); - } - - /// - /// - /// - /// - /// - void ShutdownPromptTimer_HasStarted(object sender, EventArgs e) - { - // Do we need to check where the UI is? No? - var timer = CurrentRoom.ShutdownPromptTimer; - EndMeetingButtonSig.BoolValue = true; - ShareButtonSig.BoolValue = false; - - if (CurrentRoom.ShutdownType == eShutdownType.Manual || CurrentRoom.ShutdownType == eShutdownType.Vacancy) - { - PowerDownModal = new ModalDialog(TriList); - var message = string.Format("Meeting will end in {0} seconds", CurrentRoom.ShutdownPromptSeconds); - - // Attach timer things to modal - CurrentRoom.ShutdownPromptTimer.TimeRemainingFeedback.OutputChange += ShutdownPromptTimer_TimeRemainingFeedback_OutputChange; - CurrentRoom.ShutdownPromptTimer.PercentFeedback.OutputChange += ShutdownPromptTimer_PercentFeedback_OutputChange; - - // respond to offs by cancelling dialog - var onFb = CurrentRoom.OnFeedback; - EventHandler offHandler = null; - offHandler = (o, a) => - { - if (!onFb.BoolValue) - { - EndMeetingButtonSig.BoolValue = false; - PowerDownModal.HideDialog(); - onFb.OutputChange -= offHandler; - //gauge.OutputChange -= gaugeHandler; - } - }; - onFb.OutputChange += offHandler; - - PowerDownModal.PresentModalDialog(2, "End Meeting", "Power", message, "Cancel", "End Meeting Now", true, true, - but => - { - if (but != 2) // any button except for End cancels - timer.Cancel(); - else - timer.Finish(); - }); - } - } - - /// - /// - /// - /// - /// - void ShutdownPromptTimer_HasFinished(object sender, EventArgs e) - { - EndMeetingButtonSig.BoolValue = false; - CurrentRoom.ShutdownPromptTimer.TimeRemainingFeedback.OutputChange -= ShutdownPromptTimer_TimeRemainingFeedback_OutputChange; - CurrentRoom.ShutdownPromptTimer.PercentFeedback.OutputChange -= ShutdownPromptTimer_PercentFeedback_OutputChange; - } - - /// - /// - /// - /// - /// - void ShutdownPromptTimer_WasCancelled(object sender, EventArgs e) - { - if (PowerDownModal != null) - PowerDownModal.HideDialog(); - EndMeetingButtonSig.BoolValue = false; - ShareButtonSig.BoolValue = CurrentRoom.OnFeedback.BoolValue; - - CurrentRoom.ShutdownPromptTimer.TimeRemainingFeedback.OutputChange += ShutdownPromptTimer_TimeRemainingFeedback_OutputChange; - CurrentRoom.ShutdownPromptTimer.PercentFeedback.OutputChange -= ShutdownPromptTimer_PercentFeedback_OutputChange; - } - - void ShutdownPromptTimer_TimeRemainingFeedback_OutputChange(object sender, EventArgs e) - { - - var message = string.Format("Meeting will end in {0} seconds", (sender as StringFeedback).StringValue); - TriList.StringInput[ModalDialog.MessageTextJoin].StringValue = message; - } - - void ShutdownPromptTimer_PercentFeedback_OutputChange(object sender, EventArgs e) - { - var value = (ushort)((sender as IntFeedback).UShortValue * 65535 / 100); - TriList.UShortInput[ModalDialog.TimerGaugeJoin].UShortValue = value; - } - - /// - /// - /// - void CancelPowerOffTimer() - { - if (PowerOffTimer != null) - { - PowerOffTimer.Stop(); - PowerOffTimer = null; - } - } - - /// - /// - /// - void VolumeButtonsTogglePress() - { - if (VolumeButtonsPopupFeedback.BoolValue) - VolumeButtonsPopupFeedback.ClearNow(); - else - { - // Trigger the popup - VolumeButtonsPopupFeedback.BoolValue = true; - VolumeButtonsPopupFeedback.BoolValue = false; - } - } - - /// - /// - /// - /// - public void VolumeUpPress(bool state) - { - // extend timeouts - if (ShowVolumeGauge) - VolumeGaugeFeedback.BoolValue = state; - VolumeButtonsPopupFeedback.BoolValue = state; - if (CurrentRoom.CurrentVolumeControls != null) - CurrentRoom.CurrentVolumeControls.VolumeUp(state); - } - - /// - /// - /// - /// - public void VolumeDownPress(bool state) - { - // extend timeouts - if (ShowVolumeGauge) - VolumeGaugeFeedback.BoolValue = state; - VolumeButtonsPopupFeedback.BoolValue = state; - if (CurrentRoom.CurrentVolumeControls != null) - CurrentRoom.CurrentVolumeControls.VolumeDown(state); - } - - - /// - /// Helper for property setter. Sets the panel to the given room, latching up all functionality - /// - public void RefreshCurrentRoom(IEssentialsHuddleSpaceRoom room) - { - if (_CurrentRoom != null) - { - // Disconnect current room - _CurrentRoom.CurrentVolumeDeviceChange -= this.CurrentRoom_CurrentAudioDeviceChange; - ClearAudioDeviceConnections(); - _CurrentRoom.CurrentSourceChange -= this.CurrentRoom_SourceInfoChange; - DisconnectSource(_CurrentRoom.CurrentSourceInfo); - _CurrentRoom.ShutdownPromptTimer.HasStarted -= ShutdownPromptTimer_HasStarted; - _CurrentRoom.ShutdownPromptTimer.HasFinished -= ShutdownPromptTimer_HasFinished; - _CurrentRoom.ShutdownPromptTimer.WasCancelled -= ShutdownPromptTimer_WasCancelled; - - _CurrentRoom.OnFeedback.OutputChange -= CurrentRoom_OnFeedback_OutputChange; - _CurrentRoom.IsWarmingUpFeedback.OutputChange -= CurrentRoom_IsWarmingFeedback_OutputChange; - _CurrentRoom.IsCoolingDownFeedback.OutputChange -= IsCoolingDownFeedback_OutputChange; - } - - _CurrentRoom = room; - - if (_CurrentRoom != null) - { - // get the source list config and set up the source list - var config = ConfigReader.ConfigObject.SourceLists; - if (config.ContainsKey(_CurrentRoom.SourceListKey)) - { - var srcList = config[_CurrentRoom.SourceListKey]; - // Setup sources list - uint i = 1; // counter for UI list - foreach (var kvp in srcList) - { - var srcConfig = kvp.Value; - if (!srcConfig.IncludeInSourceList) // Skip sources marked this way - continue; - - var actualSource = DeviceManager.GetDeviceForKey(srcConfig.SourceKey) as Device; - if (actualSource == null) - { - Debug.Console(1, "Cannot assign missing source '{0}' to source UI list", - srcConfig.SourceKey); - continue; - } - var routeKey = kvp.Key; - var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig, - b => { if (!b) UiSelectSource(routeKey); }); - SourcesSrl.AddItem(item); // add to the SRL - item.RegisterForSourceChange(_CurrentRoom); - } - SourcesSrl.Count = (ushort)(i - 1); - } - // Name and logo - TriList.StringInput[UIStringJoin.CurrentRoomName].StringValue = _CurrentRoom.Name; - if (_CurrentRoom.LogoUrlLightBkgnd == null) - { - TriList.BooleanInput[UIBoolJoin.LogoDefaultVisible].BoolValue = true; - TriList.BooleanInput[UIBoolJoin.LogoUrlVisible].BoolValue = false; - } - else - { - TriList.BooleanInput[UIBoolJoin.LogoDefaultVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.LogoUrlVisible].BoolValue = true; - TriList.StringInput[UIStringJoin.LogoUrlLightBkgnd].StringValue = _CurrentRoom.LogoUrlLightBkgnd; - TriList.StringInput[UIStringJoin.LogoUrlLightBkgnd].StringValue = _CurrentRoom.LogoUrlDarkBkgnd; - - } - - // Shutdown timer - _CurrentRoom.ShutdownPromptTimer.HasStarted += ShutdownPromptTimer_HasStarted; - _CurrentRoom.ShutdownPromptTimer.HasFinished += ShutdownPromptTimer_HasFinished; - _CurrentRoom.ShutdownPromptTimer.WasCancelled += ShutdownPromptTimer_WasCancelled; - - // Link up all the change events from the room - _CurrentRoom.OnFeedback.OutputChange += CurrentRoom_OnFeedback_OutputChange; - CurrentRoom_SyncOnFeedback(); - _CurrentRoom.IsWarmingUpFeedback.OutputChange += CurrentRoom_IsWarmingFeedback_OutputChange; - _CurrentRoom.IsCoolingDownFeedback.OutputChange += IsCoolingDownFeedback_OutputChange; - - _CurrentRoom.CurrentVolumeDeviceChange += CurrentRoom_CurrentAudioDeviceChange; - RefreshAudioDeviceConnections(); - _CurrentRoom.CurrentSourceChange += CurrentRoom_SourceInfoChange; - RefreshSourceInfo(); - - (Parent as EssentialsPanelMainInterfaceDriver).HeaderDriver.SetupHeaderButtons(this, CurrentRoom); - } - else - { - // Clear sigs that need to be - TriList.StringInput[UIStringJoin.CurrentRoomName].StringValue = "Select a room"; - } - } - - void SetCurrentRoom(IEssentialsHuddleSpaceRoom room) - { - if (_CurrentRoom == room) return; - // Disconnect current (probably never called) - - if (_CurrentRoom != null) - _CurrentRoom.ConfigChanged -= room_ConfigChanged; - - room.ConfigChanged -= room_ConfigChanged; - room.ConfigChanged += room_ConfigChanged; - - if (room.IsMobileControlEnabled) - { - StartPageVisibleJoin = UIBoolJoin.StartMCPageVisible; - UpdateMCJoins(room); - - if (_CurrentRoom != null) - _CurrentRoom.MobileControlRoomBridge.UserCodeChanged -= MobileControlRoomBridge_UserCodeChanged; - - room.MobileControlRoomBridge.UserCodeChanged -= MobileControlRoomBridge_UserCodeChanged; - room.MobileControlRoomBridge.UserCodeChanged += MobileControlRoomBridge_UserCodeChanged; - } - else - { - StartPageVisibleJoin = UIBoolJoin.StartPageVisible; - } - - RefreshCurrentRoom(room); - } - - void MobileControlRoomBridge_UserCodeChanged(object sender, EventArgs e) - { - UpdateMCJoins(_CurrentRoom); - } - - void UpdateMCJoins(IEssentialsHuddleSpaceRoom room) - { - TriList.SetString(UIStringJoin.RoomMcUrl, room.MobileControlRoomBridge.McServerUrl); - TriList.SetString(UIStringJoin.RoomMcQrCodeUrl, room.MobileControlRoomBridge.QrCodeUrl); - TriList.SetString(UIStringJoin.RoomUserCode, room.MobileControlRoomBridge.UserCode); - } - - /// - /// Fires when room config of current room has changed. Meant to refresh room values to propegate any updates to UI - /// - /// - /// - void room_ConfigChanged(object sender, EventArgs e) - { - RefreshCurrentRoom(_CurrentRoom); - } - - /// - /// For room on/off changes - /// - void CurrentRoom_OnFeedback_OutputChange(object sender, EventArgs e) - { - CurrentRoom_SyncOnFeedback(); - } - - void CurrentRoom_SyncOnFeedback() - { - var value = _CurrentRoom.OnFeedback.BoolValue; - //Debug.Console(2, CurrentRoom, "UI: Is on event={0}", value); - TriList.BooleanInput[UIBoolJoin.RoomIsOn].BoolValue = value; - - if (value) //ON - { - SetupActivityFooterWhenRoomOn(); - TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = true; - TriList.BooleanInput[StartPageVisibleJoin].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.VolumeSingleMute1Visible].BoolValue = true; - - } - else - { - SetupActivityFooterWhenRoomOff(); - ShowLogo(); - TriList.BooleanInput[StartPageVisibleJoin].BoolValue = true; - TriList.BooleanInput[UIBoolJoin.VolumeSingleMute1Visible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; - } - } - - /// - /// - /// - void CurrentRoom_IsWarmingFeedback_OutputChange(object sender, EventArgs e) - { - if (CurrentRoom.IsWarmingUpFeedback.BoolValue) - { - ShowNotificationRibbon("Room is powering on. Please wait...", 0); - } - else - { - ShowNotificationRibbon("Room is powered on. Welcome.", 2000); - } - } - - - void IsCoolingDownFeedback_OutputChange(object sender, EventArgs e) - { - if (CurrentRoom.IsCoolingDownFeedback.BoolValue) - { - ShowNotificationRibbon("Room is powering off. Please wait.", 0); - } - else - { - HideNotificationRibbon(); - } - } - - /// - /// Hides source for provided source info - /// - /// - void DisconnectSource(SourceListItem previousInfo) - { - if (previousInfo == null) return; - - // Hide whatever is showing - if (IsVisible) - { - if (CurrentSourcePageManager != null) - { - CurrentSourcePageManager.Hide(); - CurrentSourcePageManager = null; - } - } - - if (previousInfo == null) return; - var previousDev = previousInfo.SourceDevice; - - // device type interfaces - if (previousDev is ISetTopBoxControls) - (previousDev as ISetTopBoxControls).UnlinkButtons(TriList); - // common interfaces - if (previousDev is IChannel) - (previousDev as IChannel).UnlinkButtons(TriList); - if (previousDev is IColor) - (previousDev as IColor).UnlinkButtons(TriList); - if (previousDev is IDPad) - (previousDev as IDPad).UnlinkButtons(TriList); - if (previousDev is IDvr) - (previousDev as IDvr).UnlinkButtons(TriList); - if (previousDev is INumericKeypad) - (previousDev as INumericKeypad).UnlinkButtons(TriList); - if (previousDev is IHasPowerControl) - (previousDev as IHasPowerControl).UnlinkButtons(TriList); - if (previousDev is ITransport) - (previousDev as ITransport).UnlinkButtons(TriList); - //if (previousDev is IRadio) - // (previousDev as IRadio).UnlinkButtons(this); - } - - /// - /// Refreshes and shows the room's current source - /// - void RefreshSourceInfo() - { - var routeInfo = CurrentRoom.CurrentSourceInfo; - // This will show off popup too - if (this.IsVisible) - ShowCurrentSource(); - - if (routeInfo == null)// || !CurrentRoom.OnFeedback.BoolValue) - { - // Check for power off and insert "Room is off" - TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = "Room is off"; - TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = "Power"; - this.Hide(); - Parent.Show(); - return; - } - else if (CurrentRoom.CurrentSourceInfo != null) - { - TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = routeInfo.PreferredName; - TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = routeInfo.Icon; // defaults to "blank" - } - else - { - TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = "---"; - TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = "Blank"; - } - - // Connect controls - if (routeInfo.SourceDevice != null) - ConnectControlDeviceMethods(routeInfo.SourceDevice); - } - - /// - /// Attach the source to the buttons and things - /// - void ConnectControlDeviceMethods(Device dev) - { - if(dev is ISetTopBoxControls) - (dev as ISetTopBoxControls).LinkButtons(TriList); - if (dev is IChannel) - (dev as IChannel).LinkButtons(TriList); - if (dev is IColor) - (dev as IColor).LinkButtons(TriList); - if (dev is IDPad) - (dev as IDPad).LinkButtons(TriList); - if (dev is IDvr) - (dev as IDvr).LinkButtons(TriList); - if (dev is INumericKeypad) - (dev as INumericKeypad).LinkButtons(TriList); - if (dev is IHasPowerControl) - (dev as IHasPowerControl).LinkButtons(TriList); - if (dev is ITransport) - (dev as ITransport).LinkButtons(TriList); - //if (dev is IRadio) - // (dev as IRadio).LinkButtons(this); // +++++++++++++ Make part of this into page manager - - //if (dev is ICustomFunctions) - //{ - // var custBridge = (dev as ICustomFunctions).GetCustomBridge(); - // custBridge.Link(this.Remote); - } - - /// - /// Detaches the buttons and feedback from the room's current audio device - /// - void ClearAudioDeviceConnections() - { - TriList.ClearBoolSigAction(UIBoolJoin.VolumeUpPress); - TriList.ClearBoolSigAction(UIBoolJoin.VolumeDownPress); - TriList.ClearBoolSigAction(UIBoolJoin.Volume1ProgramMutePressAndFB); - - var fDev = CurrentRoom.CurrentVolumeControls as IBasicVolumeWithFeedback; - if (fDev != null) - { - TriList.ClearUShortSigAction(UIUshortJoin.VolumeSlider1Value); - fDev.VolumeLevelFeedback.UnlinkInputSig( - TriList.UShortInput[UIUshortJoin.VolumeSlider1Value]); - } - } - - /// - /// Attaches the buttons and feedback to the room's current audio device - /// - void RefreshAudioDeviceConnections() - { - var dev = CurrentRoom.CurrentVolumeControls; - if (dev != null) // connect buttons - { - TriList.SetBoolSigAction(UIBoolJoin.VolumeUpPress, VolumeUpPress); - TriList.SetBoolSigAction(UIBoolJoin.VolumeDownPress, VolumeDownPress); - TriList.SetSigFalseAction(UIBoolJoin.Volume1ProgramMutePressAndFB, dev.MuteToggle); - } - - var fbDev = dev as IBasicVolumeWithFeedback; - if (fbDev == null) // this should catch both IBasicVolume and IBasicVolumeWithFeeback - TriList.UShortInput[UIUshortJoin.VolumeSlider1Value].UShortValue = 0; - else - { - // slider - TriList.SetUShortSigAction(UIUshortJoin.VolumeSlider1Value, fbDev.SetVolume); - // feedbacks - fbDev.MuteFeedback.LinkInputSig(TriList.BooleanInput[UIBoolJoin.Volume1ProgramMutePressAndFB]); - fbDev.VolumeLevelFeedback.LinkInputSig( - TriList.UShortInput[UIUshortJoin.VolumeSlider1Value]); - } - } - - /// - /// Handler for when the room's volume control device changes - /// - void CurrentRoom_CurrentAudioDeviceChange(object sender, VolumeDeviceChangeEventArgs args) - { - if (args.Type == ChangeType.WillChange) - ClearAudioDeviceConnections(); - else // did change - RefreshAudioDeviceConnections(); - } - - /// - /// Handles source change - /// - void CurrentRoom_SourceInfoChange(SourceListItem info, ChangeType change) - { - if (change == ChangeType.WillChange) - DisconnectSource(info); - else - RefreshSourceInfo(); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/EssentialsHuddle/EssentialsHuddleTechPageDriver.cs b/PepperDashEssentials/UIDrivers/EssentialsHuddle/EssentialsHuddleTechPageDriver.cs deleted file mode 100644 index 57aed03e..00000000 --- a/PepperDashEssentials/UIDrivers/EssentialsHuddle/EssentialsHuddleTechPageDriver.cs +++ /dev/null @@ -1,326 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.SmartObjects; -using PepperDash.Essentials.Core.Touchpanels.Keyboards; -using PepperDash.Essentials.Devices.Displays; -using PepperDash.Essentials.Room.Config; - -namespace PepperDash.Essentials.UIDrivers -{ - public class EssentialsHuddleTechPageDriver : PanelDriverBase - { - /// - /// - /// - SmartObjectDynamicList MenuList; - /// - /// - /// - SubpageReferenceList StatusList; - /// - /// The list of display controls - /// - SubpageReferenceList DisplayList; - /// - /// References lines in the list against device instances - /// - Dictionary StatusListDeviceIndexes; - /// - /// - /// - JoinedSigInterlock PagesInterlock; - - /// - /// 1 - /// - public const uint JoinText = 1; - - CTimer PinAuthorizedTimer; - - EssentialsRoomTechConfig Config; - - StringBuilder PinEntryBuilder = new StringBuilder(4); - - bool IsAuthorized; - - SmartObjectNumeric PinKeypad; - - /// - /// - /// - /// - /// - public EssentialsHuddleTechPageDriver(BasicTriListWithSmartObject trilist, EssentialsRoomTechConfig config) - : base(trilist) - { - Config = config; - - PagesInterlock = new JoinedSigInterlock(trilist); - PagesInterlock.SetButDontShow(UIBoolJoin.TechSystemStatusVisible); - - trilist.SetSigFalseAction(UIBoolJoin.TechExitButton, Hide); - - MenuList = new SmartObjectDynamicList(trilist.SmartObjects[UISmartObjectJoin.TechMenuList], - true, 3100); - - MenuList.SetFeedback(1, true); // initial fb - ushort count = 0; - - MenuList.SetItemMainText(1, "System Status"); - MenuList.SetItemButtonAction(1, b => { - if (b) PagesInterlock.ShowInterlocked(UIBoolJoin.TechSystemStatusVisible); - MenuList.SetFeedback(1, true); - }); - - MenuList.SetItemMainText(2, "Display Controls"); - MenuList.SetItemButtonAction(2, b => { - if (b) PagesInterlock.ShowInterlocked(UIBoolJoin.TechDisplayControlsVisible); - MenuList.SetFeedback(2, true); - }); - - count = 2; - - // Don't show panel setup on iPad or xpanel - if (TriList is Crestron.SimplSharpPro.DeviceSupport.TswFt5Button) - { - count++; - MenuList.SetItemMainText(count, "Panel Setup"); - MenuList.SetItemButtonAction(count, b => - { - if (b) PagesInterlock.ShowInterlocked(UIBoolJoin.TechPanelSetupVisible); - MenuList.SetFeedback(count, true); - }); - } - - MenuList.Count = count; - BuildStatusList(); - BuildDisplayList(); - SetupPinModal(); - } - - /// - /// - /// - public override void Show() - { - // divert to PIN if we need auth - if (IsAuthorized) - { - // Cancel the auth timer so we don't deauth after coming back in - if (PinAuthorizedTimer != null) - PinAuthorizedTimer.Stop(); - - TriList.SetBool(UIBoolJoin.TechCommonItemsVisbible, true); - PagesInterlock.Show(); - base.Show(); - } - else - { - TriList.SetBool(UIBoolJoin.PinDialog4DigitVisible, true); - } - } - - /// - /// - /// - public override void Hide() - { - // Leave it authorized for 60 seconds. - if (IsAuthorized) - PinAuthorizedTimer = new CTimer(o => { - IsAuthorized = false; - PinAuthorizedTimer = null; - }, 60000); - TriList.SetBool(UIBoolJoin.TechCommonItemsVisbible, false); - PagesInterlock.Hide(); - base.Hide(); - } - - /// - /// Wire up the keypad and buttons - /// - void SetupPinModal() - { - TriList.SetSigFalseAction(UIBoolJoin.PinDialogCancelPress, CancelPinDialog); - PinKeypad = new SmartObjectNumeric(TriList.SmartObjects[UISmartObjectJoin.TechPinDialogKeypad], true); - PinKeypad.Digit0.UserObject = new Action(b => { if (b)DialPinDigit('0'); }); - PinKeypad.Digit1.UserObject = new Action(b => { if (b)DialPinDigit('1'); }); - PinKeypad.Digit2.UserObject = new Action(b => { if (b)DialPinDigit('2'); }); - PinKeypad.Digit3.UserObject = new Action(b => { if (b)DialPinDigit('3'); }); - PinKeypad.Digit4.UserObject = new Action(b => { if (b)DialPinDigit('4'); }); - PinKeypad.Digit5.UserObject = new Action(b => { if (b)DialPinDigit('5'); }); - PinKeypad.Digit6.UserObject = new Action(b => { if (b)DialPinDigit('6'); }); - PinKeypad.Digit7.UserObject = new Action(b => { if (b)DialPinDigit('7'); }); - PinKeypad.Digit8.UserObject = new Action(b => { if (b)DialPinDigit('8'); }); - PinKeypad.Digit9.UserObject = new Action(b => { if (b)DialPinDigit('9'); }); - } - - /// - /// - /// - /// - void DialPinDigit(char d) - { - PinEntryBuilder.Append(d); - var len = PinEntryBuilder.Length; - SetPinDotsFeedback(len); - - // check it! - if (len == 4) - { - if (Config.Password == PinEntryBuilder.ToString()) - { - IsAuthorized = true; - SetPinDotsFeedback(0); - TriList.SetBool(UIBoolJoin.PinDialog4DigitVisible, false); - Show(); - } - else - { - SetPinDotsFeedback(0); - TriList.SetBool(UIBoolJoin.PinDialogErrorVisible, true); - new CTimer(o => - { - TriList.SetBool(UIBoolJoin.PinDialogErrorVisible, false); - }, 1500); - } - - PinEntryBuilder.Remove(0, len); // clear it either way - } - } - - /// - /// Draws the dots as pin is entered - /// - /// - void SetPinDotsFeedback(int len) - { - TriList.SetBool(UIBoolJoin.PinDialogDot1, len >= 1); - TriList.SetBool(UIBoolJoin.PinDialogDot2, len >= 2); - TriList.SetBool(UIBoolJoin.PinDialogDot3, len >= 3); - TriList.SetBool(UIBoolJoin.PinDialogDot4, len == 4); - - } - - /// - /// Does what it says - /// - void CancelPinDialog() - { - PinEntryBuilder.Remove(0, PinEntryBuilder.Length); - TriList.SetBool(UIBoolJoin.PinDialog4DigitVisible, false); - } - - - /// - /// - /// - void BuildStatusList() - { - StatusList = new SubpageReferenceList(TriList, UISmartObjectJoin.TechStatusList, 3, 3, 3); - StatusListDeviceIndexes = new Dictionary(); - uint i = 0; - foreach (var d in DeviceManager.AllDevices) - { - // make sure it is both ICommunicationMonitor and a Device - var sd = d as ICommunicationMonitor; - if (sd == null) - continue; - var dd = sd as Device; - if(dd == null) - continue; - i++; - StatusList.StringInputSig(i, 1).StringValue = dd.Name; - StatusList.UShortInputSig(i, 1).UShortValue = (ushort)sd.CommunicationMonitor.Status; - StatusListDeviceIndexes.Add(sd, i); - sd.CommunicationMonitor.StatusChange += CommunicationMonitor_StatusChange ; - } - StatusList.Count = (ushort)i; - } - - /// - /// Builds the list of display controls - /// - void BuildDisplayList() - { - DisplayList = new SubpageReferenceList(TriList, UISmartObjectJoin.TechDisplayControlsList, 10, 3, 3); - - var devKeys = ConfigReader.ConfigObject.Devices.Where(d => - d.Group.Equals("display", StringComparison.OrdinalIgnoreCase) - || d.Group.Equals("projector", StringComparison.OrdinalIgnoreCase)) - .Select(dd => dd.Key); - var disps = DeviceManager.AllDevices.Where(d => - devKeys.Contains(d.Key)); - ushort i = 0; - foreach (var disp in disps) - { - var display = disp as DisplayBase; - if (display != null) - { - i++; - DisplayList.StringInputSig(i, 1).StringValue = display.Name; - DisplayList.GetBoolFeedbackSig(i, 1).SetSigFalseAction(display.PowerOn); - DisplayList.GetBoolFeedbackSig(i, 2).SetSigFalseAction(display.PowerOff); - if (display is TwoWayDisplayBase) - { - var powerOnSig = DisplayList.BoolInputSig(i, 1); - (display as TwoWayDisplayBase).PowerIsOnFeedback.LinkInputSig(powerOnSig); - - var powerOffSig = DisplayList.BoolInputSig(1, 2); - (display as TwoWayDisplayBase).PowerIsOnFeedback.LinkComplementInputSig(powerOffSig); - } - DisplayList.GetBoolFeedbackSig(i, 3).SetSigFalseAction(() => - { if (display is IInputHdmi1) (display as IInputHdmi1).InputHdmi1(); }); - DisplayList.GetBoolFeedbackSig(i, 4).SetSigFalseAction(() => - { if (display is IInputHdmi2) (display as IInputHdmi2).InputHdmi2(); }); - DisplayList.GetBoolFeedbackSig(i, 5).SetSigFalseAction(() => - { if (display is IInputHdmi3) (display as IInputHdmi3).InputHdmi3(); }); - //DisplayList.GetBoolFeedbackSig(i, 6).SetSigFalseAction(() => - //{ if (display is IInputHdmi4) (display as IInputHdmi4).InputHdmi4(); }); - DisplayList.GetBoolFeedbackSig(i, 6).SetSigFalseAction(() => - { if (display is IInputDisplayPort1) (display as IInputDisplayPort1).InputDisplayPort1(); }); - - - // Figure out some way to provide current input feedback - if (display is TwoWayDisplayBase) - { - (display as TwoWayDisplayBase).CurrentInputFeedback.OutputChange += CurrentInputFeedback_OutputChange; - } - } - - - } - - DisplayList.Count = i; - } - - - void CurrentInputFeedback_OutputChange(object sender, EventArgs e) - { - - } - - /// - /// - /// - void CommunicationMonitor_StatusChange(object sender, MonitorStatusChangeEventArgs e) - { - var c = sender as ICommunicationMonitor; - if (c != null && StatusListDeviceIndexes.ContainsKey(c)) - { - var i = StatusListDeviceIndexes[c]; - StatusList.UShortInputSig(i, 1).UShortValue = (ushort)e.Status; - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddlePresentationUiDriver.cs b/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddlePresentationUiDriver.cs deleted file mode 100644 index c573310f..00000000 --- a/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddlePresentationUiDriver.cs +++ /dev/null @@ -1,49 +0,0 @@ -//using System; -//using System.Linq; -//using System.Collections.Generic; -//using Crestron.SimplSharp; -//using Crestron.SimplSharpPro; -//using Crestron.SimplSharpPro.DeviceSupport; -//using Crestron.SimplSharpPro.UI; - -//using PepperDash.Core; -//using PepperDash.Essentials.Core; -//using PepperDash.Essentials.Core.SmartObjects; -//using PepperDash.Essentials.Core.PageManagers; -//using PepperDash.Essentials.Room.Config; - -//namespace PepperDash.Essentials -//{ -// public class EssentialsHuddleVtc1PresentationUiDriver : PanelDriverBase -// { -// /// -// /// -// /// -// EssentialsHuddleVtc1Room CurrentRoom; - - -// public EssentialsHuddleVtc1PresentationUiDriver(BasicTriListWithSmartObject triList, -// EssentialsHuddleVtc1Room room) -// : base(triList) -// { -// CurrentRoom = room; -// } - -// /// -// /// Smart Object 3200 -// /// -// SubpageReferenceList SourceStagingSrl; - -// /// -// /// The AV page mangagers that have been used, to keep them alive for later -// /// -// Dictionary PageManagers = new Dictionary(); - -// /// -// /// Current page manager running for a source -// /// -// PageManager CurrentSourcePageManager; - - -// } -//} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs b/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs deleted file mode 100644 index 80fb0ba8..00000000 --- a/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs +++ /dev/null @@ -1,1652 +0,0 @@ -using System; -using System.Linq; -using System.Collections.Generic; -using System.Globalization; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.UI; - -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.DeviceTypeInterfaces; -using PepperDash.Essentials.Core.SmartObjects; -using PepperDash.Essentials.Core.PageManagers; -using PepperDash.Essentials.Room.Config; -using PepperDash.Essentials.Devices.Common.Codec; -using PepperDash.Essentials.Devices.Common.VideoCodec; -using PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces; - -namespace PepperDash.Essentials -{ - /// - /// - /// - public class EssentialsHuddleVtc1PanelAvFunctionsDriver : PanelDriverBase, IAVWithVCDriver - { - CrestronTouchpanelPropertiesConfig Config; - - public enum UiDisplayMode - { - Presentation, AudioSetup, Call, Start - } - - public uint StartPageVisibleJoin { get; private set; } - - /// - /// Whether volume ramping from this panel will show the volume - /// gauge popup. - /// - public bool ShowVolumeGauge { get; set; } - - /// - /// - /// - public uint PowerOffTimeout { get; set; } - - /// - /// - /// - public string DefaultRoomKey { get; set; } - - - /// - /// - /// - public IEssentialsHuddleVtc1Room CurrentRoom - { - get { return _CurrentRoom; } - set - { - SetCurrentRoom(value); - } - } - IEssentialsHuddleVtc1Room _CurrentRoom; - - /// - /// For hitting feedbacks - /// - BoolInputSig CallButtonSig; - BoolInputSig ShareButtonSig; - BoolInputSig EndMeetingButtonSig; - - BoolFeedback CallSharingInfoVisibleFeedback; - - /// - /// The parent driver for this - /// - public PanelDriverBase Parent { get; private set; } - - /// - /// All children attached to this driver. For hiding and showing as a group. - /// - List ChildDrivers = new List(); - - List CurrentDisplayModeSigsInUse = new List(); - - //// Important smart objects - - /// - /// Smart Object 3200 - /// - SubpageReferenceList SourceStagingSrl; - - /// - /// Smart Object 15022 - /// - SubpageReferenceList ActivityFooterSrl; - - /// - /// - /// - public SubpageReferenceList MeetingOrContactMethodModalSrl { get; set; } - - public uint CallListOrMeetingInfoPopoverVisibilityJoin { get; private set; } - - - /// - /// The list of buttons on the header. Managed with visibility only - /// - //SmartObjectHeaderButtonList HeaderButtonsList; - - /// - /// The AV page mangagers that have been used, to keep them alive for later - /// - Dictionary PageManagers = new Dictionary(); - - /// - /// Current page manager running for a source - /// - PageManager CurrentSourcePageManager; - - /// - /// Will auto-timeout a power off - /// - CTimer PowerOffTimer; - - /// - /// - /// - ModalDialog PowerDownModal; - - /// - /// - /// - //ModalDialog WarmingCoolingModal; - - /// - /// Represents - /// - public JoinedSigInterlock PopupInterlock { get; private set; } - - /// - /// Interlock for various source, camera, call control bars. The bar above the activity footer. This is also - /// used to show start page - /// - JoinedSigInterlock StagingBarInterlock; - - /// - /// Interlocks the various call-related subpages - /// - JoinedSigInterlock CallPagesInterlock; - - /// - /// The Video codec driver - /// - PepperDash.Essentials.UIDrivers.VC.EssentialsVideoCodecUiDriver VCDriver; - - /// - /// The driver for the tech page. Lazy getter for memory usage - /// - PepperDash.Essentials.UIDrivers.EssentialsHuddleTechPageDriver TechDriver - { - get - { - if (_TechDriver == null) - _TechDriver = new PepperDash.Essentials.UIDrivers.EssentialsHuddleTechPageDriver(TriList, CurrentRoom.PropertiesConfig.Tech); - return _TechDriver; - } - } - PepperDash.Essentials.UIDrivers.EssentialsHuddleTechPageDriver _TechDriver; - - /// - /// Controls timeout of notification ribbon timer - /// - CTimer RibbonTimer; - - /// - /// The keyboard - /// - public PepperDash.Essentials.Core.Touchpanels.Keyboards.HabaneroKeyboardController Keyboard { get; private set; } - - - private UiDisplayMode _currentMode; - - private bool _isZoomRoomWithNoExternalSources - { - get - { - return CurrentRoom.VideoCodec is Essentials.Devices.Common.VideoCodec.ZoomRoom.ZoomRoom && _sourceListCount <= 1; - } - } - - private uint _sourceListCount; - - /// - /// The mode showing. Presentation or call. - /// - UiDisplayMode CurrentMode - { - get - { - return _currentMode; - } - set - { - if (value != _currentMode) - { - _currentMode = value; - - SetActivityFooterFeedbacks(); - } - } - } - - CTimer NextMeetingTimer; - - /// - /// Tracks the last meeting that was cancelled - /// - string LastMeetingDismissedId; - - /// - /// Constructor - /// - public EssentialsHuddleVtc1PanelAvFunctionsDriver(PanelDriverBase parent, CrestronTouchpanelPropertiesConfig config) - : base(parent.TriList) - { - Config = config; - Parent = parent; - - PopupInterlock = new JoinedSigInterlock(TriList); - StagingBarInterlock = new JoinedSigInterlock(TriList); - CallPagesInterlock = new JoinedSigInterlock(TriList); - - SourceStagingSrl = new SubpageReferenceList(TriList, UISmartObjectJoin.SourceStagingSRL, 3, 3, 3); - - ActivityFooterSrl = new SubpageReferenceList(TriList, UISmartObjectJoin.ActivityFooterSRL, 3, 3, 3); - CallButtonSig = ActivityFooterSrl.BoolInputSig(2, 1); - ShareButtonSig = ActivityFooterSrl.BoolInputSig(1, 1); - EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(3, 1); - - MeetingOrContactMethodModalSrl = new SubpageReferenceList(TriList, UISmartObjectJoin.MeetingListSRL, 3, 3, 5); - - CurrentMode = UiDisplayMode.Start; - - // buttons are added in SetCurrentRoom - //HeaderButtonsList = new SmartObjectHeaderButtonList(TriList.SmartObjects[UISmartObjectJoin.HeaderButtonList]); - - SetupActivityFooterWhenRoomOff(); - - ShowVolumeGauge = true; - Keyboard = new PepperDash.Essentials.Core.Touchpanels.Keyboards.HabaneroKeyboardController(TriList); - } - - /// - /// Add a video codec driver to this - /// - /// - public void SetVideoCodecDriver(PepperDash.Essentials.UIDrivers.VC.EssentialsVideoCodecUiDriver vcd) - { - VCDriver = vcd; - } - - /// - /// - /// - public override void Show() - { - if (CurrentRoom == null) - { - Debug.Console(1, "ERROR: AVUIFunctionsDriver, Cannot show. No room assigned"); - return; - } - - var roomConf = CurrentRoom.PropertiesConfig; - - if (Config.HeaderStyle.ToLower() == CrestronTouchpanelPropertiesConfig.Habanero) - { - TriList.SetSigFalseAction(UIBoolJoin.HeaderRoomButtonPress, () => - { - if (CurrentRoom.IsMobileControlEnabled) - { - Debug.Console(1, "Showing Mobile Control Header Info"); - PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderInfoMCPageVisible); - } - else - { - Debug.Console(1, "Showing Non Mobile Control Header Info"); - PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderInfoPageVisible); - } - }); - } - else if (Config.HeaderStyle.ToLower() == CrestronTouchpanelPropertiesConfig.Verbose) - { - TriList.SetSigFalseAction(UIBoolJoin.HeaderRoomButtonPress, () => - { - if (CurrentRoom.IsMobileControlEnabled) - { - Debug.Console(1, "Showing Mobile Control Header Info"); - PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderInfoMCPageVisible); - } - else - { - Debug.Console(1, "Showing Non Mobile Control Header Info"); - PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderInfoPageVisible); - } - }); - } - - TriList.SetBool(UIBoolJoin.DateAndTimeVisible, Config.ShowDate && Config.ShowTime); - TriList.SetBool(UIBoolJoin.DateOnlyVisible, Config.ShowDate && !Config.ShowTime); - TriList.SetBool(UIBoolJoin.TimeOnlyVisible, !Config.ShowDate && Config.ShowTime); - - TriList.SetBool(UIBoolJoin.TopBarHabaneroDynamicVisible, true); - - TriList.SetBool(UIBoolJoin.ActivityFooterVisible, true); - - // Privacy mute button - TriList.SetSigFalseAction(UIBoolJoin.Volume1SpeechMutePressAndFB, CurrentRoom.PrivacyModeToggle); - CurrentRoom.PrivacyModeIsOnFeedback.LinkInputSig(TriList.BooleanInput[UIBoolJoin.Volume1SpeechMutePressAndFB]); - - // Default to showing rooms/sources now. - if (CurrentRoom.OnFeedback.BoolValue) - { - TriList.SetBool(UIBoolJoin.TapToBeginVisible, false); - SetupActivityFooterWhenRoomOn(); - } - else - { - TriList.SetBool(StartPageVisibleJoin, true); - TriList.SetBool(UIBoolJoin.TapToBeginVisible, true); - SetupActivityFooterWhenRoomOff(); - } - ShowCurrentDisplayModeSigsInUse(); - - // *** Header Buttons *** - - // Generic "close" button for popup modals - TriList.SetSigFalseAction(UIBoolJoin.InterlockedModalClosePress, PopupInterlock.HideAndClear); - - // Volume related things - TriList.SetSigFalseAction(UIBoolJoin.VolumeDefaultPress, () => CurrentRoom.SetDefaultLevels()); - TriList.SetString(UIStringJoin.AdvancedVolumeSlider1Text, "Room"); - - //if (TriList is CrestronApp) - // TriList.BooleanInput[UIBoolJoin.GearButtonVisible].BoolValue = false; - //else - // TriList.BooleanInput[UIBoolJoin.GearButtonVisible].BoolValue = true; - - // power-related functions - // Note: some of these are not directly-related to the huddle space UI, but are held over - // in case - TriList.SetSigFalseAction(UIBoolJoin.ShowPowerOffPress, EndMeetingPress); - - TriList.SetSigFalseAction(UIBoolJoin.DisplayPowerTogglePress, () => - { - if (CurrentRoom != null && CurrentRoom.DefaultDisplay != null && CurrentRoom.DefaultDisplay is IHasPowerControl) - (CurrentRoom.DefaultDisplay as IHasPowerControl).PowerToggle(); - }); - - SetupNextMeetingTimer(); - - base.Show(); - } - - /// - /// Allows PopupInterlock to be toggled if the calls list is already visible, or if the codec is in a call - /// - public void ShowActiveCallsListOrMeetingInfo() - { - TriList.SetBool(UIBoolJoin.CallEndAllConfirmVisible, true); - - - if(PopupInterlock.CurrentJoin == CallListOrMeetingInfoPopoverVisibilityJoin) - PopupInterlock.ShowInterlockedWithToggle(CallListOrMeetingInfoPopoverVisibilityJoin); - else - { - if(CurrentRoom.VideoCodec.IsInCall) - PopupInterlock.ShowInterlockedWithToggle(CallListOrMeetingInfoPopoverVisibilityJoin); - } - } - - /// - /// - /// - void ShowLogo() - { - if (CurrentRoom.LogoUrlLightBkgnd == null) - { - TriList.SetBool(UIBoolJoin.LogoDefaultVisible, true); - TriList.SetBool(UIBoolJoin.LogoUrlVisible, false); - } - else - { - TriList.SetBool(UIBoolJoin.LogoDefaultVisible, false); - TriList.SetBool(UIBoolJoin.LogoUrlVisible, true); - TriList.SetString(UIStringJoin.LogoUrlLightBkgnd, _CurrentRoom.LogoUrlLightBkgnd); - TriList.SetString(UIStringJoin.LogoUrlDarkBkgnd, _CurrentRoom.LogoUrlDarkBkgnd); - } - } - - /// - /// - /// - void HideLogo() - { - TriList.SetBool(UIBoolJoin.LogoDefaultVisible, false); - TriList.SetBool(UIBoolJoin.LogoUrlVisible, false); - } - - /// - /// - /// - public override void Hide() - { - HideAndClearCurrentDisplayModeSigsInUse(); - TriList.SetBool(UIBoolJoin.TopBarHabaneroDynamicVisible, false); - TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = false; - TriList.BooleanInput[StartPageVisibleJoin].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; - if (NextMeetingTimer != null) - NextMeetingTimer.Stop(); - HideNextMeetingPopup(); - base.Hide(); - } - - /// - /// Reveals a message on the notification ribbon until cleared - /// - /// Text to display - /// Time in ms to display. 0 to keep on screen - public void ShowNotificationRibbon(string message, int timeout) - { - TriList.SetString(UIStringJoin.NotificationRibbonText, message); - TriList.SetBool(UIBoolJoin.NotificationRibbonVisible, true); - if (timeout > 0) - { - if (RibbonTimer != null) - RibbonTimer.Stop(); - RibbonTimer = new CTimer(o => { - TriList.SetBool(UIBoolJoin.NotificationRibbonVisible, false); - RibbonTimer = null; - }, timeout); - } - } - - /// - /// Hides the notification ribbon - /// - public void HideNotificationRibbon() - { - TriList.SetBool(UIBoolJoin.NotificationRibbonVisible, false); - if (RibbonTimer != null) - { - RibbonTimer.Stop(); - RibbonTimer = null; - } - } - - void SetupNextMeetingTimer() - { - var ss = CurrentRoom.ScheduleSource; - if (ss != null) - { - NextMeetingTimer = new CTimer(o => ShowNextMeetingTimerCallback(), null, 0, 60000); - } - } - - /// - /// - /// - void ShowNextMeetingTimerCallback() - { - //Update calendar for Zoom. Zoom doesn't automatically update when meetings are in the past - if (_isZoomRoomWithNoExternalSources) - { - CurrentRoom.ScheduleSource.GetSchedule(); - } - - // Every 60 seconds, refresh the calendar - RefreshMeetingsList(); - // check meetings list for the closest, joinable meeting - var ss = CurrentRoom.ScheduleSource; - var meetings = ss.CodecSchedule.Meetings; - - if (meetings.Count <= 0) - { - return; - } - // If the room is off pester the user - // If the room is on, and the meeting is joinable - // and the LastMeetingDismissed != this meeting - - var lastMeetingDismissed = meetings.FirstOrDefault(m => m.Id == LastMeetingDismissedId); - //Debug.Console(0, "*#* Room on: {0}, lastMeetingDismissedId: {1} {2} *#*", - // CurrentRoom.OnFeedback.BoolValue, - // LastMeetingDismissedId, - // lastMeetingDismissed != null ? lastMeetingDismissed.StartTime.ToString("t", Global.Culture) : ""); - - var meeting = meetings.LastOrDefault(m => m.Joinable); - if (CurrentRoom.OnFeedback.BoolValue - && lastMeetingDismissed == meeting) - { - // meeting no longer joinable, hide popup - if(meeting == null) - HideNextMeetingPopup(); - - return; - } - - LastMeetingDismissedId = null; - // Clear the popup when we run out of meetings - if (meeting == null) - { - HideNextMeetingPopup(); - } - else - { - - - TriList.SetString(UIStringJoin.MeetingsOrContactMethodListTitleText, "Upcoming meeting"); - TriList.SetString(UIStringJoin.NextMeetingStartTimeText, meeting.StartTime.ToString("t", Global.Culture)); - TriList.SetString(UIStringJoin.NextMeetingEndTimeText, meeting.EndTime.ToString("t", Global.Culture)); - TriList.SetString(UIStringJoin.NextMeetingTitleText, meeting.Title); - TriList.SetString(UIStringJoin.NextMeetingNameText, meeting.Organizer); - TriList.SetString(UIStringJoin.NextMeetingButtonLabel, "Join"); - TriList.SetSigFalseAction(UIBoolJoin.NextMeetingJoinPress, () => - { - HideNextMeetingPopup(); - PopupInterlock.Hide(); - RoomOnAndDialMeeting(meeting); - }); - TriList.SetString(UIStringJoin.NextMeetingSecondaryButtonLabel, "Show Schedule"); - TriList.SetSigFalseAction(UIBoolJoin.CalendarHeaderButtonPress, () => - { - HideNextMeetingPopup(); - //CalendarPress(); - RefreshMeetingsList(); - PopupInterlock.ShowInterlocked(UIBoolJoin.MeetingsOrContacMethodsListVisible); - }); - var indexOfNext = meetings.IndexOf(meeting) + 1; - - // indexOf = 3, 4 meetings : - if (indexOfNext < meetings.Count) - TriList.SetString(UIStringJoin.NextMeetingFollowingMeetingText, - meetings[indexOfNext].StartTime.ToString("t", Global.Culture)); - else - TriList.SetString(UIStringJoin.NextMeetingFollowingMeetingText, "No more meetings today"); - - TriList.SetSigFalseAction(UIBoolJoin.NextMeetingModalClosePress, () => - { - // Mark the meeting to not re-harass the user - if(CurrentRoom.OnFeedback.BoolValue) - LastMeetingDismissedId = meeting.Id; - HideNextMeetingPopup(); - }); - - TriList.SetBool(UIBoolJoin.NextMeetingModalVisible, true); - } - } - - /// - /// - /// - void HideNextMeetingPopup() - { - TriList.SetBool(UIBoolJoin.NextMeetingModalVisible, false); - - } - - /// - /// Calendar should only be visible when it's supposed to - /// - public void CalendarPress() - { - //RefreshMeetingsList(); // List should be up-to-date - PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.MeetingsOrContacMethodsListVisible); - } - - /// - /// Dials a meeting after turning on room (if necessary) - /// - void RoomOnAndDialMeeting(Meeting meeting) - { - Debug.Console(1, "[RoomOnAndDialMeeting] Joining meeting [{0}]", meeting); - Action dialAction = () => - { - var d = CurrentRoom.ScheduleSource as VideoCodecBase; - if (d != null) - { - Debug.Console(1, - "[RoomOnAndDialMeeting] [dialAction] Sending command to codec to join meeting {0}", meeting); - d.Dial(meeting); - LastMeetingDismissedId = meeting.Id; // To prevent prompts for already-joined call - } - }; - if (CurrentRoom.OnFeedback.BoolValue) - { - Debug.Console(1, "[RoomOnAndDialMeeting] Room is on."); - dialAction(); - } - else - { - Debug.Console(1, "RoomOnAndDialMeeting] Room is off or warming. Registering for Warming Feedback"); - // Rig a one-time handler to catch when the room is warmed and then dial call - EventHandler oneTimeHandler = null; - oneTimeHandler = (o, a) => - { - if (!CurrentRoom.IsWarmingUpFeedback.BoolValue) - { - CurrentRoom.IsWarmingUpFeedback.OutputChange -= oneTimeHandler; - dialAction(); - } - }; - CurrentRoom.IsWarmingUpFeedback.OutputChange += oneTimeHandler; - ActivityCallButtonPressed(); - } - } - - /// - /// Reveals the tech page and puts away anything that's in the way. - /// - public void ShowTech() - { - PopupInterlock.HideAndClear(); - TechDriver.Show(); - } - - /// - /// When the room is off, set the footer SRL - /// - void SetupActivityFooterWhenRoomOff() - { - ActivityFooterSrl.Clear(); - ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0, - b => { if (!b) ActivityShareButtonPressed(); })); - ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 3, - b => { if (!b) ActivityCallButtonPressed(); })); - ActivityFooterSrl.Count = 2; - TriList.SetUshort(UIUshortJoin.PresentationStagingCaretMode, 1); // right one slot - TriList.SetUshort(UIUshortJoin.CallStagingCaretMode, 5); // left one slot - } - - /// - /// Sets up the footer SRL for when the room is on - /// - void SetupActivityFooterWhenRoomOn() - { - ActivityFooterSrl.Clear(); - ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0, - b => { if (!b) ActivityShareButtonPressed(); })); - ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 3, - b => { if (!b) ActivityCallButtonPressed(); })); - ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(3, ActivityFooterSrl, 4, - b => { if (!b) EndMeetingPress(); })); - ActivityFooterSrl.Count = 3; - TriList.SetUshort(UIUshortJoin.PresentationStagingCaretMode, 2); // center - TriList.SetUshort(UIUshortJoin.CallStagingCaretMode, 0); // left -2 - } - - /// - /// Single point call for setting the feedbacks on the activity buttons - /// - void SetActivityFooterFeedbacks() - { - if (CurrentRoom != null) - { - var startMode = CurrentMode == UiDisplayMode.Start; - var presentationMode = CurrentMode == UiDisplayMode.Presentation; - var callMode = CurrentMode == UiDisplayMode.Call; - - TriList.SetBool(StartPageVisibleJoin, startMode ? true : false); - - if (presentationMode &&_isZoomRoomWithNoExternalSources) - { - // For now, if this is a Zoom Room and there are no shareable sources just display the informational subpage - TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, false); - TriList.SetBool(UIBoolJoin.ZoomRoomContentSharingVisible, true); - } - else - { - // Otherwise, show the staging bar - TriList.SetBool(UIBoolJoin.ZoomRoomContentSharingVisible, false); - TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, presentationMode ? true : false); - - } - if (!presentationMode) - { - TriList.SetBool(UIBoolJoin.ZoomRoomContentSharingVisible, false); - TriList.SetBool(UIBoolJoin.SelectASourceVisible, false); - } - - CallButtonSig.BoolValue = callMode - && CurrentRoom.ShutdownType == eShutdownType.None; - ShareButtonSig.BoolValue = presentationMode - && CurrentRoom.ShutdownType == eShutdownType.None; - EndMeetingButtonSig.BoolValue = CurrentRoom.ShutdownType != eShutdownType.None; - } - } - - /// - /// - /// - public void ActivityCallButtonPressed() - { - if (VCDriver.IsVisible) - return; - HideLogo(); - HideNextMeetingPopup(); - //TriList.SetBool(StartPageVisibleJoin, false); - //TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, false); - //TriList.SetBool(UIBoolJoin.SelectASourceVisible, false); - if (CurrentSourcePageManager != null) - CurrentSourcePageManager.Hide(); - PowerOnFromCall(); - CurrentMode = UiDisplayMode.Call; - VCDriver.Show(); - } - - /// - /// Attached to activity list share button - /// - void ActivityShareButtonPressed() - { - SetupSourceList(); - if (VCDriver.IsVisible) - VCDriver.Hide(); - HideNextMeetingPopup(); - - - if (_isZoomRoomWithNoExternalSources) - { - if (!CurrentRoom.OnFeedback.BoolValue) - { - CurrentRoom.RunDefaultPresentRoute(); - } - // For now, if this is a Zoom Room and there are no shareable sources just display the informational subpage - TriList.SetBool(UIBoolJoin.ZoomRoomContentSharingVisible, true); - - var presentationMeetingCodec = CurrentRoom.VideoCodec as IHasPresentationOnlyMeeting; - var farEndContentStatusCodec = CurrentRoom.VideoCodec as IHasFarEndContentStatus; - var receivingContent = false; - - if (farEndContentStatusCodec != null) - { - receivingContent = farEndContentStatusCodec.ReceivingContent.BoolValue; - } - - if (presentationMeetingCodec != null && !CurrentRoom.VideoCodec.IsInCall) - { - presentationMeetingCodec.StartSharingOnlyMeeting(eSharingMeetingMode.Laptop); - } - else if (CurrentRoom.VideoCodec.IsInCall && !CurrentRoom.VideoCodec.SharingContentIsOnFeedback.BoolValue && - !receivingContent) - { - CurrentRoom.VideoCodec.StartSharing(); - } - - if (CurrentSourcePageManager != null) - CurrentSourcePageManager.Hide(); - } - else - { - // Run default source when room is off and share is pressed - if (!CurrentRoom.OnFeedback.BoolValue) - { - // If there's no default, show UI elements - if (!(CurrentRoom as IRunDefaultPresentRoute).RunDefaultPresentRoute()) - TriList.SetBool(UIBoolJoin.SelectASourceVisible, true); - } - else // room is on show what's active or select a source if nothing is yet active - { - if (CurrentRoom.CurrentSourceInfo == null || - (CurrentRoom.VideoCodec != null && - CurrentRoom.CurrentSourceInfo.SourceDevice.Key == CurrentRoom.VideoCodec.OsdSource.Key)) - TriList.SetBool(UIBoolJoin.SelectASourceVisible, true); - else if (CurrentSourcePageManager != null) - { - TriList.SetBool(UIBoolJoin.SelectASourceVisible, false); - CurrentSourcePageManager.Show(); - } - } - SetupSourceList(); - } - CurrentMode = UiDisplayMode.Presentation; - } - - /// - /// Powers up the system to the codec route, if not already on. - /// - void PowerOnFromCall() - { - if (!CurrentRoom.OnFeedback.BoolValue) - { - CurrentRoom.RunDefaultCallRoute(); - } - } - - /// - /// Shows all sigs that are in CurrentDisplayModeSigsInUse - /// - void ShowCurrentDisplayModeSigsInUse() - { - foreach (var sig in CurrentDisplayModeSigsInUse) - sig.BoolValue = true; - } - - /// - /// Hides all CurrentDisplayModeSigsInUse sigs and clears the array - /// - void HideAndClearCurrentDisplayModeSigsInUse() - { - foreach (var sig in CurrentDisplayModeSigsInUse) - sig.BoolValue = false; - CurrentDisplayModeSigsInUse.Clear(); - } - - - /// - /// Loads the appropriate Sigs into CurrentDisplayModeSigsInUse and shows them - /// - void ShowCurrentSource() - { - if (CurrentRoom.CurrentSourceInfo == null || _isZoomRoomWithNoExternalSources) - return; - - CurrentMode = UiDisplayMode.Presentation; - - if (CurrentRoom.CurrentSourceInfo.SourceDevice == null) - { - TriList.SetBool(UIBoolJoin.SelectASourceVisible, true); - return; - } - - var uiDev = CurrentRoom.CurrentSourceInfo.SourceDevice as IUiDisplayInfo; - PageManager pm = null; - // If we need a page manager, get an appropriate one - if (uiDev != null) - { - TriList.SetBool(UIBoolJoin.SelectASourceVisible, false); - // Got an existing page manager, get it - if (PageManagers.ContainsKey(uiDev)) - pm = PageManagers[uiDev]; - // Otherwise make an apporiate one - else if (uiDev is ISetTopBoxControls) - pm = new SetTopBoxThreePanelPageManager(uiDev as ISetTopBoxControls, TriList); - else if (uiDev is IDiscPlayerControls) - pm = new DiscPlayerMediumPageManager(uiDev as IDiscPlayerControls, TriList); - else - pm = new DefaultPageManager(uiDev, TriList); - PageManagers[uiDev] = pm; - CurrentSourcePageManager = pm; - pm.Show(); - } - } - - /// - /// Called from button presses on source, where We can assume we want - /// to change to the proper screen. - /// - /// The key name of the route to run - void UiSelectSource(string key) - { - // Run the route and when it calls back, show the source - CurrentRoom.RunRouteAction(key); - } - - /// - /// - /// - public void EndMeetingPress() - { - if (!CurrentRoom.OnFeedback.BoolValue - || CurrentRoom.ShutdownPromptTimer.IsRunningFeedback.BoolValue) - return; - - CurrentRoom.StartShutdown(eShutdownType.Manual); - } - - /// - /// Puts away modals and things that might be up when call comes in - /// - public void PrepareForCodecIncomingCall() - { - if (PowerDownModal != null && PowerDownModal.ModalIsVisible) - PowerDownModal.CancelDialog(); - PopupInterlock.Hide(); - } - - /// - /// - /// - /// - /// - void ShutdownPromptTimer_HasStarted(object sender, EventArgs e) - { - // Do we need to check where the UI is? No? - var timer = CurrentRoom.ShutdownPromptTimer; - SetActivityFooterFeedbacks(); - - if (CurrentRoom.ShutdownType == eShutdownType.Manual || CurrentRoom.ShutdownType == eShutdownType.Vacancy) - { - PowerDownModal = new ModalDialog(TriList); - var message = string.Format("Meeting will end in {0} seconds", CurrentRoom.ShutdownPromptSeconds); - - // Attach timer things to modal - CurrentRoom.ShutdownPromptTimer.TimeRemainingFeedback.OutputChange += ShutdownPromptTimer_TimeRemainingFeedback_OutputChange; - CurrentRoom.ShutdownPromptTimer.PercentFeedback.OutputChange += ShutdownPromptTimer_PercentFeedback_OutputChange; - - // respond to offs by cancelling dialog - var onFb = CurrentRoom.OnFeedback; - EventHandler offHandler = null; - offHandler = (o, a) => - { - if (!onFb.BoolValue) - { - PowerDownModal.HideDialog(); - SetActivityFooterFeedbacks(); - onFb.OutputChange -= offHandler; - } - }; - onFb.OutputChange += offHandler; - - PowerDownModal.PresentModalDialog(2, "End Meeting", "Power", message, "Cancel", "End Meeting Now", true, true, - but => - { - if (but != 2) // any button except for End cancels - timer.Cancel(); - else - timer.Finish(); - }); - } - } - - /// - /// - /// - /// - /// - void ShutdownPromptTimer_HasFinished(object sender, EventArgs e) - { - SetActivityFooterFeedbacks(); - CurrentRoom.ShutdownPromptTimer.TimeRemainingFeedback.OutputChange -= ShutdownPromptTimer_TimeRemainingFeedback_OutputChange; - CurrentRoom.ShutdownPromptTimer.PercentFeedback.OutputChange -= ShutdownPromptTimer_PercentFeedback_OutputChange; - } - - /// - /// - /// - /// - /// - void ShutdownPromptTimer_WasCancelled(object sender, EventArgs e) - { - if (PowerDownModal != null) - PowerDownModal.HideDialog(); - SetActivityFooterFeedbacks(); - - CurrentRoom.ShutdownPromptTimer.TimeRemainingFeedback.OutputChange += ShutdownPromptTimer_TimeRemainingFeedback_OutputChange; - CurrentRoom.ShutdownPromptTimer.PercentFeedback.OutputChange -= ShutdownPromptTimer_PercentFeedback_OutputChange; - } - - /// - /// Event handler for countdown timer on power off modal - /// - void ShutdownPromptTimer_TimeRemainingFeedback_OutputChange(object sender, EventArgs e) - { - - var message = string.Format("Meeting will end in {0} seconds", (sender as StringFeedback).StringValue); - TriList.StringInput[ModalDialog.MessageTextJoin].StringValue = message; - } - - /// - /// Event handler for percentage on power off countdown - /// - void ShutdownPromptTimer_PercentFeedback_OutputChange(object sender, EventArgs e) - { - var value = (ushort)((sender as IntFeedback).UShortValue * 65535 / 100); - TriList.UShortInput[ModalDialog.TimerGaugeJoin].UShortValue = value; - } - - /// - /// - /// - void CancelPowerOffTimer() - { - if (PowerOffTimer != null) - { - PowerOffTimer.Stop(); - PowerOffTimer = null; - } - } - - /// - /// - /// - /// - public void VolumeUpPress(bool state) - { - if (CurrentRoom.CurrentVolumeControls != null) - CurrentRoom.CurrentVolumeControls.VolumeUp(state); - } - - /// - /// - /// - /// - public void VolumeDownPress(bool state) - { - if (CurrentRoom.CurrentVolumeControls != null) - CurrentRoom.CurrentVolumeControls.VolumeDown(state); - } - - /// - /// Helper for property setter. Sets the panel to the given room, latching up all functionality - /// - void RefreshCurrentRoom(IEssentialsHuddleVtc1Room room) - { - - if (_CurrentRoom != null) - { - // Disconnect current room - _CurrentRoom.CurrentVolumeDeviceChange -= this.CurrentRoom_CurrentAudioDeviceChange; - ClearAudioDeviceConnections(); - _CurrentRoom.CurrentSourceChange -= this.CurrentRoom_SourceInfoChange; - DisconnectSource(_CurrentRoom.CurrentSourceInfo); - _CurrentRoom.ShutdownPromptTimer.HasStarted -= ShutdownPromptTimer_HasStarted; - _CurrentRoom.ShutdownPromptTimer.HasFinished -= ShutdownPromptTimer_HasFinished; - _CurrentRoom.ShutdownPromptTimer.WasCancelled -= ShutdownPromptTimer_WasCancelled; - - _CurrentRoom.OnFeedback.OutputChange -= CurrentRoom_OnFeedback_OutputChange; - _CurrentRoom.IsWarmingUpFeedback.OutputChange -= CurrentRoom_IsWarmingFeedback_OutputChange; - _CurrentRoom.IsCoolingDownFeedback.OutputChange -= CurrentRoom_IsCoolingDownFeedback_OutputChange; - _CurrentRoom.InCallFeedback.OutputChange -= CurrentRoom_InCallFeedback_OutputChange; - - var scheduleAwareCodec = _CurrentRoom.VideoCodec as IHasScheduleAwareness; - if (scheduleAwareCodec != null) - { - scheduleAwareCodec.CodecSchedule.MeetingsListHasChanged -= CodecSchedule_MeetingsListHasChanged; - } - - var meetingInfoCodec = _CurrentRoom.VideoCodec as IHasMeetingInfo; - if (meetingInfoCodec != null) - { - meetingInfoCodec.MeetingInfoChanged -= meetingInfoCodec_MeetingInfoChanged; - } - } - - _CurrentRoom = room; - - if (_CurrentRoom != null) - { - // get the source list config and set up the source list - - SetupSourceList(); - - // Name and logo - TriList.StringInput[UIStringJoin.CurrentRoomName].StringValue = _CurrentRoom.Name; - ShowLogo(); - - // Shutdown timer - _CurrentRoom.ShutdownPromptTimer.HasStarted += ShutdownPromptTimer_HasStarted; - _CurrentRoom.ShutdownPromptTimer.HasFinished += ShutdownPromptTimer_HasFinished; - _CurrentRoom.ShutdownPromptTimer.WasCancelled += ShutdownPromptTimer_WasCancelled; - - // Link up all the change events from the room - _CurrentRoom.OnFeedback.OutputChange += CurrentRoom_OnFeedback_OutputChange; - CurrentRoom_SyncOnFeedback(); - _CurrentRoom.IsWarmingUpFeedback.OutputChange += CurrentRoom_IsWarmingFeedback_OutputChange; - _CurrentRoom.IsCoolingDownFeedback.OutputChange += CurrentRoom_IsCoolingDownFeedback_OutputChange; - _CurrentRoom.InCallFeedback.OutputChange += CurrentRoom_InCallFeedback_OutputChange; - - - _CurrentRoom.CurrentVolumeDeviceChange += CurrentRoom_CurrentAudioDeviceChange; - RefreshAudioDeviceConnections(); - _CurrentRoom.CurrentSourceChange += CurrentRoom_SourceInfoChange; - RefreshSourceInfo(); - - - var scheduleAwareCodec = _CurrentRoom.VideoCodec as IHasScheduleAwareness; - if (scheduleAwareCodec != null) - { - scheduleAwareCodec.CodecSchedule.MeetingsListHasChanged += CodecSchedule_MeetingsListHasChanged; - } - - var meetingInfoCodec = _CurrentRoom.VideoCodec as IHasMeetingInfo; - if (meetingInfoCodec != null) - { - meetingInfoCodec.MeetingInfoChanged += new EventHandler(meetingInfoCodec_MeetingInfoChanged); - - CallListOrMeetingInfoPopoverVisibilityJoin = UIBoolJoin.HeaderMeetingInfoVisible; - } - else - { - CallListOrMeetingInfoPopoverVisibilityJoin = UIBoolJoin.HeaderActiveCallsListVisible; - } - - CallSharingInfoVisibleFeedback = new BoolFeedback(() => _CurrentRoom.VideoCodec.SharingContentIsOnFeedback.BoolValue); - _CurrentRoom.VideoCodec.SharingContentIsOnFeedback.OutputChange += SharingContentIsOnFeedback_OutputChange; - CallSharingInfoVisibleFeedback.LinkInputSig(TriList.BooleanInput[UIBoolJoin.CallSharedSourceInfoVisible]); - - SetActiveCallListSharingContentStatus(); - - if (_CurrentRoom != null) - _CurrentRoom.CurrentSourceChange += new SourceInfoChangeHandler(CurrentRoom_CurrentSingleSourceChange); - - // Moved to EssentialsVideoCodecUiDriver - //TriList.SetSigFalseAction(UIBoolJoin.CallStopSharingPress, () => _CurrentRoom.RunRouteAction("codecOsd", _CurrentRoom.SourceListKey)); - - (Parent as EssentialsPanelMainInterfaceDriver).HeaderDriver.SetupHeaderButtons(this, CurrentRoom); - } - else - { - // Clear sigs that need to be - TriList.StringInput[UIStringJoin.CurrentRoomName].StringValue = "Select a room"; - } - } - - void meetingInfoCodec_MeetingInfoChanged(object sender, MeetingInfoEventArgs e) - { - if (e.Info == null) - { - return; - } - - TriList.SetString(UIStringJoin.MeetingIdText, e.Info.Id); - TriList.SetString(UIStringJoin.MeetingHostText, e.Info.Host); - TriList.SetString(UIStringJoin.MeetingNameText, e.Info.Name); - - TriList.SetString(UIStringJoin.MeetingPasswordText, e.Info.Password); - // Show the password fields if one is present - TriList.SetBool(UIBoolJoin.MeetingPasswordVisible, !string.IsNullOrEmpty(e.Info.Password)); - - TriList.SetString(UIStringJoin.CallSharedSourceNameText, e.Info.ShareStatus); - - TriList.SetString(UIStringJoin.MeetingLeaveText, e.Info.IsHost ? "End Meeting" : "Leave Meeting"); - } - - void SetCurrentRoom(IEssentialsHuddleVtc1Room room) - { - if (_CurrentRoom == room) return; - // Disconnect current (probably never called) - - if(_CurrentRoom != null) - _CurrentRoom.ConfigChanged -= room_ConfigChanged; - - room.ConfigChanged -= room_ConfigChanged; - room.ConfigChanged += room_ConfigChanged; - - if (room.IsMobileControlEnabled) - { - StartPageVisibleJoin = UIBoolJoin.StartMCPageVisible; - UpdateMCJoins(room); - - if (_CurrentRoom != null) - _CurrentRoom.MobileControlRoomBridge.UserCodeChanged -= MobileControlRoomBridge_UserCodeChanged; - - room.MobileControlRoomBridge.UserCodeChanged -= MobileControlRoomBridge_UserCodeChanged; - room.MobileControlRoomBridge.UserCodeChanged += MobileControlRoomBridge_UserCodeChanged; - } - else - { - StartPageVisibleJoin = UIBoolJoin.StartPageVisible; - } - - RefreshCurrentRoom(room); - } - - void MobileControlRoomBridge_UserCodeChanged(object sender, EventArgs e) - { - UpdateMCJoins(_CurrentRoom); - } - - void UpdateMCJoins(IEssentialsHuddleVtc1Room room) - { - TriList.SetString(UIStringJoin.RoomMcUrl, room.MobileControlRoomBridge.McServerUrl); - TriList.SetString(UIStringJoin.RoomMcQrCodeUrl, room.MobileControlRoomBridge.QrCodeUrl); - TriList.SetString(UIStringJoin.RoomUserCode, room.MobileControlRoomBridge.UserCode); - } - - /// - /// Fires when room config of current room has changed. Meant to refresh room values to propegate any updates to UI - /// - /// - /// - void room_ConfigChanged(object sender, EventArgs e) - { - RefreshCurrentRoom(_CurrentRoom); - } - - /// - /// - /// - /// - /// - void CurrentRoom_InCallFeedback_OutputChange(object sender, EventArgs e) - { - var inCall = CurrentRoom.InCallFeedback.BoolValue; - if (inCall) - { - // Check if transitioning to in call - and non-sharable source is in use - if (CurrentRoom.CurrentSourceInfo != null && CurrentRoom.CurrentSourceInfo.DisableCodecSharing) - { - Debug.Console(1, CurrentRoom, "Transitioning to in-call, cancelling non-sharable source"); - CurrentRoom.RunRouteAction("codecOsd"); - } - } - - SetupSourceList(); - } - - /// - /// - /// - void SetupSourceList() - { - - var inCall = CurrentRoom.InCallFeedback.BoolValue; - var config = ConfigReader.ConfigObject.SourceLists; - - - if (config.ContainsKey(_CurrentRoom.SourceListKey)) - { - var srcList = config[_CurrentRoom.SourceListKey].OrderBy(kv => kv.Value.Order); - - - // Setup sources list - SourceStagingSrl.Clear(); - uint i = 1; // counter for UI list - foreach (var kvp in srcList) - { - var srcConfig = kvp.Value; - Debug.Console(1, "**** {0}, {1}, {2}, {3}, {4}", srcConfig.PreferredName, srcConfig.IncludeInSourceList, - srcConfig.DisableCodecSharing, inCall, this.CurrentMode); - // Skip sources marked as not included, and filter list of non-sharable sources when in call - // or on share screen - if (!srcConfig.IncludeInSourceList || (inCall && srcConfig.DisableCodecSharing) - || this.CurrentMode == UiDisplayMode.Call && srcConfig.DisableCodecSharing) - { - Debug.Console(1, "Skipping {0}", srcConfig.PreferredName); - continue; - } - - var routeKey = kvp.Key; - var item = new SubpageReferenceListSourceItem(i++, SourceStagingSrl, srcConfig, - b => { if (!b) UiSelectSource(routeKey); }); - SourceStagingSrl.AddItem(item); // add to the SRL - item.RegisterForSourceChange(_CurrentRoom); - Debug.Console(1, "**** KEY {0}", kvp.Key); - - } - _sourceListCount = (i - 1); - SourceStagingSrl.Count = (ushort)_sourceListCount; - } - - } - - /// - /// If the schedule changes, this event will fire - /// - /// - /// - void CodecSchedule_MeetingsListHasChanged(object sender, EventArgs e) - { - RefreshMeetingsList(); - } - - /// - /// Updates the current shared source label on the call list when the source changes - /// - /// - /// - /// - void CurrentRoom_CurrentSingleSourceChange(SourceListItem info, ChangeType type) - { - Debug.Console(1, "AvFunctionsDriver: CurrentSingleSourceChange"); - - // Show the Select a source subpage - if (TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue) - { - Debug.Console(1, "AvFunctionsDriver: CurrentSingleSourceChange SourceStagingBarVisisble: true"); - - if (_CurrentRoom.CurrentSourceInfo == null || (_CurrentRoom.VideoCodec != null && _CurrentRoom.CurrentSourceInfo.SourceDevice.Key == _CurrentRoom.VideoCodec.OsdSource.Key)) - { - Debug.Console(1, "AvFunctionsDriver: CurrentSingleSourceChange Showing SelectASourceVisible"); - TriList.SetBool(UIBoolJoin.SelectASourceVisible, true); - } - else - { - TriList.SetBool(UIBoolJoin.SelectASourceVisible, false); - Debug.Console(1, "AvFunctionsDriver: CurrentSingleSourceChange Hiding SelectASourceVisible"); - } - } - else - { - Debug.Console(1, "AvFunctionsDriver: CurrentSingleSourceChange Hiding SelectASourceVisible"); - TriList.SetBool(UIBoolJoin.SelectASourceVisible, false); - } - - if (_CurrentRoom.VideoCodec.SharingContentIsOnFeedback.BoolValue && _CurrentRoom.CurrentSourceInfo != null) - TriList.StringInput[UIStringJoin.CallSharedSourceNameText].StringValue = _CurrentRoom.CurrentSourceInfo.PreferredName; - } - - /// - /// Fires when the sharing source feedback of the codec changes - /// - /// - /// - void SharingContentIsOnFeedback_OutputChange(object sender, EventArgs e) - { - SetActiveCallListSharingContentStatus(); - } - - /// - /// Sets the values for the text and button visibilty for the active call list source sharing info - /// - void SetActiveCallListSharingContentStatus() - { - CallSharingInfoVisibleFeedback.FireUpdate(); - - string callListSharedSourceLabel; - - if (_CurrentRoom.VideoCodec.SharingContentIsOnFeedback.BoolValue && _CurrentRoom.CurrentSourceInfo != null) - { - Debug.Console(0, "*#* CurrentRoom.CurrentSourceInfo = {0}", - _CurrentRoom.CurrentSourceInfo != null ? _CurrentRoom.CurrentSourceInfo.SourceKey : "Nada!"); - callListSharedSourceLabel = _CurrentRoom.CurrentSourceInfo.PreferredName; - } - else - callListSharedSourceLabel = "None"; - - TriList.StringInput[UIStringJoin.CallSharedSourceNameText].StringValue = callListSharedSourceLabel; - } - - /// - /// - /// - void RefreshMeetingsList() - { - // See if this is helpful or if the callback response in the codec class maybe doesn't come it time? - // Let's build list from event - - TriList.SetString(UIStringJoin.MeetingsOrContactMethodListIcon, "Calendar"); - TriList.SetString(UIStringJoin.MeetingsOrContactMethodListTitleText, "Today's Meetings"); - - ushort i = 0; - foreach (var m in CurrentRoom.ScheduleSource.CodecSchedule.Meetings) - { - i++; - MeetingOrContactMethodModalSrl.StringInputSig(i, 1).StringValue = m.StartTime.ToString("t", Global.Culture); - MeetingOrContactMethodModalSrl.StringInputSig(i, 2).StringValue = m.EndTime.ToString("t", Global.Culture); - MeetingOrContactMethodModalSrl.StringInputSig(i, 3).StringValue = m.Title; - MeetingOrContactMethodModalSrl.StringInputSig(i, 4).StringValue = string.Format("
{0}",m.Organizer); - MeetingOrContactMethodModalSrl.StringInputSig(i, 5).StringValue = "Join"; - MeetingOrContactMethodModalSrl.BoolInputSig(i, 2).BoolValue = m.Joinable; - var mm = m; // lambda scope - MeetingOrContactMethodModalSrl.GetBoolFeedbackSig(i, 1).SetSigFalseAction(() => - { - PopupInterlock.Hide(); - ActivityCallButtonPressed(); - var d = CurrentRoom.ScheduleSource as VideoCodecBase; - if (d != null) - RoomOnAndDialMeeting(mm); - }); - } - MeetingOrContactMethodModalSrl.Count = i; - - if (i == 0) // Show item indicating no meetings are booked for rest of day - { - MeetingOrContactMethodModalSrl.Count = 1; - - MeetingOrContactMethodModalSrl.StringInputSig(1, 1).StringValue = string.Empty; - MeetingOrContactMethodModalSrl.StringInputSig(1, 2).StringValue = string.Empty; - MeetingOrContactMethodModalSrl.StringInputSig(1, 3).StringValue = "No Meetings are booked for the remainder of the day."; - MeetingOrContactMethodModalSrl.StringInputSig(1, 4).StringValue = string.Empty; - MeetingOrContactMethodModalSrl.StringInputSig(1, 5).StringValue = string.Empty; - } - } - - /// - /// For room on/off changes - /// - void CurrentRoom_OnFeedback_OutputChange(object sender, EventArgs e) - { - CurrentRoom_SyncOnFeedback(); - } - - /// - /// - /// - void CurrentRoom_SyncOnFeedback() - { - var value = _CurrentRoom.OnFeedback.BoolValue; - TriList.BooleanInput[UIBoolJoin.RoomIsOn].BoolValue = value; - - //TriList.BooleanInput[StartPageVisibleJoin].BoolValue = !value; - - if (value) //ON - { - SetupActivityFooterWhenRoomOn(); - //TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = true; - - } - else - { - CurrentMode = UiDisplayMode.Start; - if (VCDriver.IsVisible) - VCDriver.Hide(); - SetupActivityFooterWhenRoomOff(); - ShowLogo(); - //TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = false; - //TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = false; - // Clear this so that the pesky meeting warning can resurface every minute when off - LastMeetingDismissedId = null; - } - } - - /// - /// - /// - void CurrentRoom_IsWarmingFeedback_OutputChange(object sender, EventArgs e) - { - if (CurrentRoom.IsWarmingUpFeedback.BoolValue) - { - ShowNotificationRibbon("Room is powering on. Please wait...", 0); - } - else - { - ShowNotificationRibbon("Room is powered on. Welcome.", 2000); - } - } - - /// - /// - /// - /// - /// - void CurrentRoom_IsCoolingDownFeedback_OutputChange(object sender, EventArgs e) - { - if (CurrentRoom.IsCoolingDownFeedback.BoolValue) - { - ShowNotificationRibbon("Room is powering off. Please wait.", 0); - } - else - { - HideNotificationRibbon(); - } - } - - /// - /// Hides source for provided source info - /// - /// - void DisconnectSource(SourceListItem previousInfo) - { - if (previousInfo == null) return; - - // Hide whatever is showing - if (IsVisible) - { - if (CurrentSourcePageManager != null) - { - CurrentSourcePageManager.Hide(); - CurrentSourcePageManager = null; - } - } - - if (previousInfo == null) return; - var previousDev = previousInfo.SourceDevice; - - // device type interfaces - if (previousDev is ISetTopBoxControls) - (previousDev as ISetTopBoxControls).UnlinkButtons(TriList); - // common interfaces - if (previousDev is IChannel) - (previousDev as IChannel).UnlinkButtons(TriList); - if (previousDev is IColor) - (previousDev as IColor).UnlinkButtons(TriList); - if (previousDev is IDPad) - (previousDev as IDPad).UnlinkButtons(TriList); - if (previousDev is IDvr) - (previousDev as IDvr).UnlinkButtons(TriList); - if (previousDev is INumericKeypad) - (previousDev as INumericKeypad).UnlinkButtons(TriList); - if (previousDev is IHasPowerControl) - (previousDev as IHasPowerControl).UnlinkButtons(TriList); - if (previousDev is ITransport) - (previousDev as ITransport).UnlinkButtons(TriList); - } - - /// - /// Refreshes and shows the room's current source - /// - void RefreshSourceInfo() - { - var routeInfo = CurrentRoom.CurrentSourceInfo; - // This will show off popup too - if (this.IsVisible && !VCDriver.IsVisible) - ShowCurrentSource(); - - if (routeInfo == null)// || !CurrentRoom.OnFeedback.BoolValue) - { - // Check for power off and insert "Room is off" - TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = "Room is off"; - TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = "Power"; - this.Hide(); - Parent.Show(); - return; - } - else if (routeInfo != null) - { - TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = routeInfo.PreferredName; - TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = routeInfo.Icon; // defaults to "blank" - } - else // This never gets hit???!!! - { - TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = "---"; - TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = "Blank"; - } - - // Connect controls - if (routeInfo.SourceDevice != null) - ConnectControlDeviceMethods(routeInfo.SourceDevice); - } - - /// - /// Attach the source to the buttons and things - /// - void ConnectControlDeviceMethods(Device dev) - { - if (dev is ISetTopBoxControls) - (dev as ISetTopBoxControls).LinkButtons(TriList); - if (dev is IChannel) - (dev as IChannel).LinkButtons(TriList); - if (dev is IColor) - (dev as IColor).LinkButtons(TriList); - if (dev is IDPad) - (dev as IDPad).LinkButtons(TriList); - if (dev is IDvr) - (dev as IDvr).LinkButtons(TriList); - if (dev is INumericKeypad) - (dev as INumericKeypad).LinkButtons(TriList); - if (dev is IHasPowerControl) - (dev as IHasPowerControl).LinkButtons(TriList); - if (dev is ITransport) - (dev as ITransport).LinkButtons(TriList); - } - - /// - /// Detaches the buttons and feedback from the room's current audio device - /// - void ClearAudioDeviceConnections() - { - TriList.ClearBoolSigAction(UIBoolJoin.VolumeUpPress); - TriList.ClearBoolSigAction(UIBoolJoin.VolumeDownPress); - TriList.ClearBoolSigAction(UIBoolJoin.Volume1ProgramMutePressAndFB); - - var fDev = CurrentRoom.CurrentVolumeControls as IBasicVolumeWithFeedback; - if (fDev != null) - { - TriList.ClearUShortSigAction(UIUshortJoin.VolumeSlider1Value); - fDev.VolumeLevelFeedback.UnlinkInputSig( - TriList.UShortInput[UIUshortJoin.VolumeSlider1Value]); - } - } - - /// - /// Attaches the buttons and feedback to the room's current audio device - /// - void RefreshAudioDeviceConnections() - { - var dev = CurrentRoom.CurrentVolumeControls; - if (dev != null) // connect buttons - { - TriList.SetBoolSigAction(UIBoolJoin.VolumeUpPress, VolumeUpPress); - TriList.SetBoolSigAction(UIBoolJoin.VolumeDownPress, VolumeDownPress); - TriList.SetSigFalseAction(UIBoolJoin.Volume1ProgramMutePressAndFB, dev.MuteToggle); - } - - var fbDev = dev as IBasicVolumeWithFeedback; - if (fbDev == null) // this should catch both IBasicVolume and IBasicVolumeWithFeeback - TriList.UShortInput[UIUshortJoin.VolumeSlider1Value].UShortValue = 0; - else - { - // slider - TriList.SetUShortSigAction(UIUshortJoin.VolumeSlider1Value, fbDev.SetVolume); - // feedbacks - fbDev.MuteFeedback.LinkInputSig(TriList.BooleanInput[UIBoolJoin.Volume1ProgramMutePressAndFB]); - fbDev.VolumeLevelFeedback.LinkInputSig( - TriList.UShortInput[UIUshortJoin.VolumeSlider1Value]); - } - } - - /// - /// Handler for when the room's volume control device changes - /// - void CurrentRoom_CurrentAudioDeviceChange(object sender, VolumeDeviceChangeEventArgs args) - { - if (args.Type == ChangeType.WillChange) - ClearAudioDeviceConnections(); - else // did change - RefreshAudioDeviceConnections(); - } - - /// - /// Handles source change - /// - void CurrentRoom_SourceInfoChange(SourceListItem info, ChangeType change) - { - if (change == ChangeType.WillChange) - DisconnectSource(info); - else - RefreshSourceInfo(); - } - } - - /// - /// For hanging off various common AV things that child drivers might need from a parent AV driver - /// - public interface IAVDriver - { - PanelDriverBase Parent { get; } - JoinedSigInterlock PopupInterlock { get; } - void ShowNotificationRibbon(string message, int timeout); - void HideNotificationRibbon(); - void ShowTech(); - uint StartPageVisibleJoin { get; } - } - - /// - /// For hanging off various common VC things that child drivers might need from a parent AV driver - /// - public interface IAVWithVCDriver : IAVDriver - { - IEssentialsHuddleVtc1Room CurrentRoom { get; } - - PepperDash.Essentials.Core.Touchpanels.Keyboards.HabaneroKeyboardController Keyboard { get; } - /// - /// Exposes the ability to switch into call mode - /// - void ActivityCallButtonPressed(); - /// - /// Allows the codec to trigger the main UI to clear up if call is coming in. - /// - void PrepareForCodecIncomingCall(); - - uint CallListOrMeetingInfoPopoverVisibilityJoin { get; } - - SubpageReferenceList MeetingOrContactMethodModalSrl { get; } - } -} diff --git a/PepperDashEssentials/UIDrivers/JoinedSigInterlock.cs b/PepperDashEssentials/UIDrivers/JoinedSigInterlock.cs deleted file mode 100644 index a7dba246..00000000 --- a/PepperDashEssentials/UIDrivers/JoinedSigInterlock.cs +++ /dev/null @@ -1,175 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials -{ - public class JoinedSigInterlock - { - public uint CurrentJoin { get; private set; } - - BasicTriList TriList; - - public BoolFeedback IsShownFeedback; - - public event EventHandler StatusChanged; - - bool _IsShown; - - public bool IsShown - { - get - { - return _IsShown; - } - private set - { - _IsShown = value; - IsShownFeedback.FireUpdate(); - } - } - - //public BoolFeedback ShownFeedback { get; private set; } - - public JoinedSigInterlock(BasicTriList triList) - { - TriList = triList; - - IsShownFeedback = new BoolFeedback(new Func( () => _IsShown)); - } - - /// - /// Hides CurrentJoin and shows join. Will check and re-set signal if join - /// equals CurrentJoin - /// - public void ShowInterlocked(uint join) - { - var prevJoin = CurrentJoin; - var wasShown = _IsShown; - //Debug.Console(2, "Trilist {0:X2}, interlock swapping {1} for {2}", TriList.ID, CurrentJoin, join); - if (CurrentJoin == join && TriList.BooleanInput[join].BoolValue) - return; - SetButDontShow(join); - TriList.SetBool(CurrentJoin, true); - IsShown = true; - - OnStatusChange(prevJoin, CurrentJoin, wasShown, IsShown); - } - - /// - /// - /// - /// - public void ShowInterlockedWithToggle(uint join) - { - var prevJoin = CurrentJoin; - var wasShown = IsShown; - - //Debug.Console(2, "Trilist {0:X2}, interlock swapping {1} for {2}", TriList.ID, CurrentJoin, join); - if (CurrentJoin == join) - HideAndClear(); - else - { - if (CurrentJoin > 0) - TriList.BooleanInput[CurrentJoin].BoolValue = false; - CurrentJoin = join; - TriList.BooleanInput[CurrentJoin].BoolValue = true; - IsShown = true; - - OnStatusChange(prevJoin, CurrentJoin, wasShown, IsShown); - } - } - /// - /// Hides current join and clears CurrentJoin - /// - public void HideAndClear() - { - var prevJoin = CurrentJoin; - var wasShown = IsShown; - //Debug.Console(2, "Trilist {0:X2}, interlock hiding {1}", TriList.ID, CurrentJoin); - Hide(); - CurrentJoin = 0; - - OnStatusChange(prevJoin, CurrentJoin, wasShown, IsShown); - } - - /// - /// Hides the current join but does not clear the selected join in case - /// it needs to be reshown - /// - public void Hide() - { - var prevJoin = CurrentJoin; - var wasShown = IsShown; - - //Debug.Console(2, "Trilist {0:X2}, interlock hiding {1}", TriList.ID, CurrentJoin); - if (CurrentJoin > 0) - { - TriList.BooleanInput[CurrentJoin].BoolValue = false; - IsShown = false; - OnStatusChange(prevJoin, CurrentJoin, wasShown, IsShown); - } - } - - /// - /// If CurrentJoin is set, it restores that join - /// - public void Show() - { - var prevJoin = CurrentJoin; - var wasShown = IsShown; - - //Debug.Console(2, "Trilist {0:X2}, interlock showing {1}", TriList.ID, CurrentJoin); - if (CurrentJoin > 0) - { - TriList.BooleanInput[CurrentJoin].BoolValue = true; - IsShown = true; - - OnStatusChange(prevJoin, CurrentJoin, wasShown, IsShown); - } - } - - /// - /// Useful for pre-setting the interlock but not enabling it. Sets CurrentJoin - /// - /// - public void SetButDontShow(uint join) - { - if (CurrentJoin > 0) - { - TriList.BooleanInput[CurrentJoin].BoolValue = false; - IsShown = false; - } - CurrentJoin = join; - } - - void OnStatusChange(uint prevJoin, uint newJoin, bool wasShown, bool isShown) - { - var handler = StatusChanged; - if (handler != null) - handler(this, new StatusChangedEventArgs(prevJoin, newJoin, wasShown, isShown)); - } - } - - public class StatusChangedEventArgs : EventArgs - { - public uint PreviousJoin { get; set; } - public uint NewJoin { get; set; } - public bool WasShown { get; set; } - public bool IsShown { get; set; } - - public StatusChangedEventArgs(uint prevJoin, uint newJoin, bool wasShown, bool isShown) - { - PreviousJoin = prevJoin; - NewJoin = newJoin; - WasShown = wasShown; - IsShown = isShown; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/Page Drivers/SingleSubpageModalAndBackDriver.cs b/PepperDashEssentials/UIDrivers/Page Drivers/SingleSubpageModalAndBackDriver.cs deleted file mode 100644 index f654d04e..00000000 --- a/PepperDashEssentials/UIDrivers/Page Drivers/SingleSubpageModalAndBackDriver.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.UI; - -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.SmartObjects; - - -namespace PepperDash.Essentials -{ - /// - /// Very basic show/hide manager for weather page. Basic functionality is useful on any - /// size of interface - /// - public class SingleSubpageModalAndBackDriver : PanelDriverBase - { - BoolInputSig SubpageSig; - - PanelDriverBase Parent; - - public SingleSubpageModalAndBackDriver(PanelDriverBase parent, uint subpageJoin) : base(parent.TriList) - { - Parent = parent; - SubpageSig = Parent.TriList.BooleanInput[subpageJoin]; - } - - /// - /// This shows the driver. - /// Not sure I like this approach. Hides this and shows it's parent. Not really a navigation-stack type thing. - /// The parent is always the home page driver - /// - public override void Show() - { - SubpageSig.BoolValue = true; - base.Show(); - } - - public override void Hide() - { - SubpageSig.BoolValue = false; - base.Hide(); - } - - public override void BackButtonPressed() - { - Hide(); - Parent.Show(); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/Page Drivers/SingleSubpageModalDriver.cs b/PepperDashEssentials/UIDrivers/Page Drivers/SingleSubpageModalDriver.cs deleted file mode 100644 index 307436e8..00000000 --- a/PepperDashEssentials/UIDrivers/Page Drivers/SingleSubpageModalDriver.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.UI; - -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.SmartObjects; - - -namespace PepperDash.Essentials -{ - /// - /// Very basic show/hide manager for weather page. Basic functionality is useful on any - /// size of interface - /// - public class SingleSubpageModalDriver : PanelDriverBase - { - BoolInputSig SubpageSig; - - public SingleSubpageModalDriver(PanelDriverBase parent, uint subpageJoin, uint closeJoin) - : base(parent.TriList) - { - SubpageSig = parent.TriList.BooleanInput[subpageJoin]; - parent.TriList.SetSigFalseAction(closeJoin, Hide); - } - - public override void Show() - { - SubpageSig.BoolValue = true; - base.Show(); - } - - public override void Hide() - { - SubpageSig.BoolValue = false; - base.Hide(); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/ScreenSaverController.cs b/PepperDashEssentials/UIDrivers/ScreenSaverController.cs deleted file mode 100644 index 11ce587a..00000000 --- a/PepperDashEssentials/UIDrivers/ScreenSaverController.cs +++ /dev/null @@ -1,152 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials -{ - /// - /// Driver responsible for controlling the screenshaver showing the client logo, MC connection information and QR Code. Moves the elements around to prevent screen burn in - /// - public class ScreenSaverController : PanelDriverBase, IDisposable - { - - /// - /// The parent driver for this - /// - private readonly EssentialsPanelMainInterfaceDriver _parent; - - - private JoinedSigInterlock PositionInterlock; - - CTimer PositionTimer; - - uint PositionTimeoutMs; - - List PositionJoins; - - int CurrentPositionIndex = 0; - - public ScreenSaverController(EssentialsPanelMainInterfaceDriver parent, CrestronTouchpanelPropertiesConfig config) - : base(parent.TriList) - { - _parent = parent; - - PositionTimeoutMs = config.ScreenSaverMovePositionIntervalMs; - - PositionJoins = new List() { UIBoolJoin.MCScreenSaverPosition1Visible, UIBoolJoin.MCScreenSaverPosition2Visible, UIBoolJoin.MCScreenSaverPosition3Visible, UIBoolJoin.MCScreenSaverPosition4Visible }; - - PositionInterlock = new JoinedSigInterlock(parent.TriList); - - var cmdName = String.Format("shwscrsvr-{0:X2}", parent.TriList.ID); - - CrestronConsole.AddNewConsoleCommand((o) => Show(), cmdName, "Shows Panel Screensaver", ConsoleAccessLevelEnum.AccessOperator); - - TriList.SetSigFalseAction(UIBoolJoin.MCScreenSaverClosePress, Hide); - } - - public override void Show() - { - //Debug.Console(2, "Showing ScreenSaverController: {0:X2}", TriList.ID); - - if (_parent.AvDriver != null) - { - _parent.AvDriver.PopupInterlock.ShowInterlocked(UIBoolJoin.MCScreenSaverVisible); - } - - CurrentPositionIndex = 0; - ShowCurrentPosition(); - StartPositionTimer(); - - base.Show(); - } - - public override void Hide() - { - //Debug.Console(2, "Hiding ScreenSaverController: {0:X2}", TriList.ID); - - if (PositionTimer != null) - { - //Debug.Console(2, "Stopping PositionTimer: {0:X2}", TriList.ID); - PositionTimer.Stop(); - PositionTimer.Dispose(); - PositionTimer = null; - } - - ClearAllPositions(); - - if (_parent.AvDriver != null) - { - _parent.AvDriver.PopupInterlock.HideAndClear(); - } - - base.Hide(); - } - - void StartPositionTimer() - { - //Debug.Console(2, "Starting Position Timer: {0:X2}", TriList.ID); - - if (PositionTimer == null) - { - PositionTimer = new CTimer((o) => PositionTimerExpired(), PositionTimeoutMs); - } - else - { - PositionTimer.Reset(PositionTimeoutMs); - } - - } - - void PositionTimerExpired() - { - IncrementPositionIndex(); - - ShowCurrentPosition(); - - StartPositionTimer(); - } - - void IncrementPositionIndex() - { - if (CurrentPositionIndex < PositionJoins.Count - 1) - { - CurrentPositionIndex++; - } - else - { - CurrentPositionIndex = 0; - } - - //Debug.Console(2, "ScreenSaver Position Timer Expired: Setting new position: {0} ID: {1:X2}", CurrentPositionIndex, TriList.ID); - } - - // - void ShowCurrentPosition() - { - // Set based on current index - PositionInterlock.ShowInterlocked(PositionJoins[CurrentPositionIndex]); - } - - void ClearAllPositions() - { - //Debug.Console(2, "Hiding all screensaver positions: {0:X2}", TriList.ID); - - PositionInterlock.HideAndClear(); - } - - #region IDisposable Members - - public void Dispose() - { - Hide(); - } - - #endregion - } - -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/SigInterlock.cs b/PepperDashEssentials/UIDrivers/SigInterlock.cs deleted file mode 100644 index e62fc7f3..00000000 --- a/PepperDashEssentials/UIDrivers/SigInterlock.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials -{ - /// - /// Used for interlocking sigs, using a set-clears-last-set model. - /// - public class SigInterlock - { - /// - /// - /// - public BoolInputSig CurrentSig { get; private set; } - - /// - /// - /// - public SigInterlock() - { - } - - /// - /// Hides CurrentJoin and shows join. Does nothing when resending CurrentJoin - /// - public void ShowInterlocked(BoolInputSig sig) - { - if (CurrentSig == sig) - return; - SetButDontShow(sig); - sig.BoolValue = true; - } - - /// - /// - /// - /// - public void ShowInterlockedWithToggle(BoolInputSig sig) - { - if(CurrentSig == sig) - HideAndClear(); - else - { - if(CurrentSig != null) - CurrentSig.BoolValue = false; - CurrentSig = sig; - CurrentSig.BoolValue = true; - } - - } - - /// - /// Hides current Sig and clears CurrentSig - /// - public void HideAndClear() - { - Hide(); - CurrentSig = null; - } - - /// - /// Hides the current Sig but does not clear the selected Sig in case - /// it needs to be reshown - /// - public void Hide() - { - if(CurrentSig != null) - CurrentSig.BoolValue = false; - } - - /// - /// If CurrentSig is set, it restores that Sig - /// - public void Show() - { - if(CurrentSig != null) - CurrentSig.BoolValue = true; - } - - /// - /// Useful for pre-setting the interlock but not enabling it. Sets CurrentSig - /// - /// - public void SetButDontShow(BoolInputSig sig) - { - if (CurrentSig != null) - CurrentSig.BoolValue = false; - CurrentSig = sig; - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/SmartObjectRoomsList.cs b/PepperDashEssentials/UIDrivers/SmartObjectRoomsList.cs deleted file mode 100644 index 2543e664..00000000 --- a/PepperDashEssentials/UIDrivers/SmartObjectRoomsList.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.SmartObjects; - -namespace PepperDash.Essentials -{ - public class SmartObjectRoomsList : SmartObjectDynamicList - { - public uint StatusSigOffset { get; private set; } - List Items; - - public SmartObjectRoomsList(SmartObject so, uint nameSigOffset, uint statusSigOffset) - : base(so, true, nameSigOffset) - { - StatusSigOffset = statusSigOffset; - Items = new List(); - } - - public void AddRoomItem(SmartObjectRoomsListItem item) - { - Items.Add(item); - } - - public void SetItemStatusText(uint index, string text) - { - if (index > MaxCount) return; - // The list item template defines CIPS tags that refer to standard joins - (SmartObject.Device as BasicTriList).StringInput[StatusSigOffset + index].StringValue = text; - } - - /// - /// Sets feedback for the given room - /// - public void SetFeedbackForRoom(IEssentialsHuddleSpaceRoom room) - { - var itemToSet = Items.FirstOrDefault(i => i.Room == room); - if (itemToSet != null) - SetFeedback(itemToSet.Index, true); - } - } - - public class SmartObjectRoomsListItem - { - public IEssentialsHuddleSpaceRoom Room { get; private set; } - SmartObjectRoomsList Parent; - public uint Index { get; private set; } - - public SmartObjectRoomsListItem(IEssentialsHuddleSpaceRoom room, uint index, SmartObjectRoomsList parent, - Action buttonAction) - { - Room = room; - Parent = parent; - Index = index; - if (room == null) return; - - // Set "now" states - parent.SetItemMainText(index, room.Name); - UpdateItem(room.CurrentSourceInfo); - // Watch for later changes - room.CurrentSourceChange += new SourceInfoChangeHandler(room_CurrentSourceInfoChange); - parent.SetItemButtonAction(index, buttonAction); - } - - void room_CurrentSourceInfoChange(SourceListItem info, ChangeType type) - { - UpdateItem(info); - } - - /// - /// Helper to handle source events and startup syncing with room's current source - /// - /// - void UpdateItem(SourceListItem info) - { - if (info == null || info.Type == eSourceListItemType.Off) - { - Parent.SetItemStatusText(Index, ""); - Parent.SetItemIcon(Index, "Blank"); - } - else - { - Parent.SetItemStatusText(Index, info.PreferredName); - Parent.SetItemIcon(Index, info.AltIcon); - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/SourceChangeArgs.cs b/PepperDashEssentials/UIDrivers/SourceChangeArgs.cs deleted file mode 100644 index 5c034084..00000000 --- a/PepperDashEssentials/UIDrivers/SourceChangeArgs.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials -{ - ///// - ///// The handler type for a Room's SourceInfoChange - ///// - //public delegate void SourceInfoChangeHandler(IEssentialsRoom room, SourceListItem info, ChangeType type); -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs b/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs deleted file mode 100644 index 40671238..00000000 --- a/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs +++ /dev/null @@ -1,2000 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Globalization; -using System.Text.RegularExpressions; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.SmartObjects; -using PepperDash.Essentials.Core.Touchpanels.Keyboards; -using PepperDash.Essentials.Devices.Common.Codec; -using PepperDash.Essentials.Devices.Common.VideoCodec; -using PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces; -using PepperDash.Essentials.Devices.Common.Cameras; - -namespace PepperDash.Essentials.UIDrivers.VC -{ - /// - /// This fella will likely need to interact with the room's source, although that is routed via the spark... - /// Probably needs event or FB to feed AV driver - to show two-mute volume when appropriate. - /// - /// - public class EssentialsVideoCodecUiDriver : PanelDriverBase - { - IAVWithVCDriver Parent; - - /// - /// - /// - VideoCodecBase Codec; - - /// - /// To drive UI elements outside of this driver that may be dependent on this. - /// - //BoolFeedback InCall; - BoolFeedback LocalPrivacyIsMuted; - - /// - /// For the subpages above the bar - /// - JoinedSigInterlock VCControlsInterlock; - - /// - /// For the camera control mode (auto/manual/off) - /// - JoinedSigInterlock VCCameraControlModeInterlock; - - /// - /// For the different staging bars: Active, inactive - /// - JoinedSigInterlock StagingBarsInterlock; - - /// - /// For the staging button feedbacks - /// - JoinedSigInterlock StagingButtonsFeedbackInterlock; - - SmartObjectNumeric DialKeypad; - - SubpageReferenceList ActiveCallsSRL; - - SmartObjectDynamicList RecentCallsList; - - SmartObjectDynamicList DirectoryList; - - SmartObjectDPad CameraPtzPad; - - SmartObjectDynamicList CameraModeList; - - SmartObjectDynamicList CameraSelectList; - - BoolFeedback DirectoryBackButtonVisibleFeedback; - - // These are likely temp until we get a keyboard built - StringFeedback DialStringFeedback; - StringBuilder DialStringBuilder = new StringBuilder(); - BoolFeedback DialStringBackspaceVisibleFeedback; - - StringFeedback SearchStringFeedback; - StringBuilder SearchStringBuilder = new StringBuilder(); - BoolFeedback SearchStringBackspaceVisibleFeedback; - - StringFeedback PasswordStringFeedback; - StringBuilder PasswordStringBuilder = new StringBuilder(); - - ModalDialog IncomingCallModal; - - eKeypadMode KeypadMode; - - bool CodecHasFavorites; - - bool ShowCameraModeControls; - - CTimer BackspaceTimer; - - - /// - /// The panel header driver - /// - EssentialsHeaderDriver HeaderDriver; - - /// - /// - /// - /// - /// - public EssentialsVideoCodecUiDriver(BasicTriListWithSmartObject triList, IAVWithVCDriver parent, VideoCodecBase codec, EssentialsHeaderDriver headerDriver) - : base(triList) - { - try - { - if (codec == null) - throw new ArgumentNullException("Codec cannot be null"); - Codec = codec; - Parent = parent; - HeaderDriver = headerDriver; - SetupCallStagingPopover(); - SetupDialKeypad(); - ActiveCallsSRL = new SubpageReferenceList(triList, UISmartObjectJoin.CodecActiveCallsHeaderList, 5,5,5); - SetupRecentCallsList(); - SetupFavorites(); - SetupLayoutControls(); - - codec.CallStatusChange += new EventHandler(Codec_CallStatusChange); - - //InCall = new BoolFeedback(() => false); - LocalPrivacyIsMuted = new BoolFeedback(() => false); - - VCControlsInterlock = new JoinedSigInterlock(triList); - VCCameraControlModeInterlock = new JoinedSigInterlock(triList); - - VCControlsInterlock.HideAndClear(); - - /* if (CodecHasFavorites || codec is IHasZoomRoomLayouts) //Checking for Zoom Room...picked a ZoomRoom specific interface to check for - VCControlsInterlock.SetButDontShow(UIBoolJoin.VCKeypadWithFavoritesVisible); - else - VCControlsInterlock.SetButDontShow(UIBoolJoin.VCKeypadVisible); */ - - StagingBarsInterlock = new JoinedSigInterlock(triList); - if(Codec is IHasCallHistory) - StagingBarsInterlock.SetButDontShow(UIBoolJoin.VCStagingInactivePopoverWithRecentsVisible); - else - StagingBarsInterlock.SetButDontShow(UIBoolJoin.VCStagingInactivePopoverWithoutRecentsVisible); - - StagingButtonsFeedbackInterlock = new JoinedSigInterlock(triList); - StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress); - - // Return formatted when dialing, straight digits when in call - DialStringFeedback = new StringFeedback(() => - { - // Format the number feedback if in dial mode and the codec is not IHasStartMeeting (ZoomRoom) - if (KeypadMode == eKeypadMode.Dial && !(Codec is IHasStartMeeting)) - return GetFormattedDialString(DialStringBuilder.ToString()); - else - return DialStringBuilder.ToString(); - - }); - DialStringFeedback.LinkInputSig(triList.StringInput[UIStringJoin.CodecAddressEntryText]); - - DialStringBackspaceVisibleFeedback = new BoolFeedback(() => DialStringBuilder.Length > 0); - DialStringBackspaceVisibleFeedback - .LinkInputSig(triList.BooleanInput[UIBoolJoin.VCKeypadBackspaceVisible]); - - SearchStringFeedback = new StringFeedback(() => - { - if (SearchStringBuilder.Length > 0) - { - Parent.Keyboard.EnableGoButton(); - return SearchStringBuilder.ToString(); - } - else - { - Parent.Keyboard.DisableGoButton(); - return "Tap for keyboard"; - } - }); - SearchStringFeedback.LinkInputSig(triList.StringInput[UIStringJoin.CodecDirectorySearchEntryText]); - - PasswordStringFeedback = new StringFeedback(() => - { - if (PasswordStringBuilder.Length > 0) - { - Parent.Keyboard.EnableGoButton(); - return PasswordStringBuilder.ToString(); - } - else - { - Parent.Keyboard.DisableGoButton(); - return ""; - } - }); - PasswordStringFeedback.LinkInputSig(triList.StringInput[UIStringJoin.PasswordPromptPasswordText]); - - SetupDirectoryList(); - - SearchStringBackspaceVisibleFeedback = new BoolFeedback(() => SearchStringBuilder.Length > 0); - SearchStringBackspaceVisibleFeedback.LinkInputSig(triList.BooleanInput[UIBoolJoin.VCDirectoryBackspaceVisible]); - - triList.SetSigFalseAction(UIBoolJoin.VCDirectoryBackPress, GetDirectoryParentFolderContents); - - DirectoryBackButtonVisibleFeedback = (codec as IHasDirectory).CurrentDirectoryResultIsNotDirectoryRoot; - DirectoryBackButtonVisibleFeedback - .LinkInputSig(triList.BooleanInput[UIBoolJoin.VCDirectoryBackVisible]); - - triList.SetSigFalseAction(UIBoolJoin.VCKeypadTextPress, RevealKeyboard); - - triList.SetSigFalseAction(UIBoolJoin.VCDirectorySearchTextPress, RevealKeyboard); - - triList.SetSigHeldAction(UIBoolJoin.VCDirectoryBackspacePress, 500, - StartSearchBackspaceRepeat, StopSearchBackspaceRepeat, SearchKeypadBackspacePress); - - - if (Codec is IPasswordPrompt) - { - SetupPasswordPrompt(); - } - - - // If the codec is ready, then get the values we want, otherwise wait - if (Codec.IsReady) - Codec_IsReady(); - else - codec.IsReadyChange += (o, a) => Codec_IsReady(); - } - catch (Exception e) - { - Debug.Console(1, "Exception in VideoCodecUiDriver Constructor: {0}", e); - } - } - - - /// - /// - /// - /// - /// - void Codec_IsReady() - { - SetupAddresses(); - - if(HeaderDriver.HeaderButtonsAreSetUp) - HeaderDriver.ComputeHeaderCallStatus(Codec); - - SetupCameraControls(); - } - - void SetupAddresses() - { - string roomContactNumbers = ""; - string roomPhoneNumber = ""; - string roomVideoAddress = ""; - - - Debug.Console(1, - @" - Codec.CodecInfo.IpAddress: {0} - Codec.CodecInfo.SipUri: {1} - Codec.CodecInfo.SipPhoneNumber: {2} - Codec.CodecInfo.E164Alias: {3} - Codec.CodecInfo.H323Id: {4} - ", Codec.CodecInfo.IpAddress, Codec.CodecInfo.SipUri, Codec.CodecInfo.SipPhoneNumber, Codec.CodecInfo.E164Alias, Codec.CodecInfo.H323Id); - - // Populate phone number - if (!string.IsNullOrEmpty(Codec.CodecInfo.SipUri)) // If both values are present, format the string with a pipe divider - { - roomPhoneNumber = Codec.CodecInfo.SipUri; - } - else if (!string.IsNullOrEmpty(Codec.CodecInfo.SipPhoneNumber)) // If only one value present, just show the phone number - { - roomPhoneNumber = GetFormattedPhoneNumber(Codec.CodecInfo.SipPhoneNumber); - } - - // Populate video number - if (!string.IsNullOrEmpty(Codec.CodecInfo.IpAddress)) - { - roomVideoAddress = Codec.CodecInfo.IpAddress; - } - else if (!string.IsNullOrEmpty(Codec.CodecInfo.E164Alias)) - { - roomVideoAddress = Codec.CodecInfo.E164Alias; - } - else if (!string.IsNullOrEmpty(Codec.CodecInfo.H323Id)) - { - roomVideoAddress = Codec.CodecInfo.H323Id; - } - - Debug.Console(1, - @" Room Contact Numbers: - Phone Number: {0} - Video Number: {1} - ", roomPhoneNumber, roomVideoAddress); - - if (!string.IsNullOrEmpty(roomPhoneNumber) && !string.IsNullOrEmpty(roomVideoAddress)) - { - roomContactNumbers = string.Format("{0} | {1}", roomPhoneNumber, roomVideoAddress); - } - else if (!string.IsNullOrEmpty(roomPhoneNumber)) - { - roomContactNumbers = roomPhoneNumber; - } - else if (!string.IsNullOrEmpty(roomVideoAddress)) - { - roomContactNumbers = roomVideoAddress; - } - - TriList.SetString(UIStringJoin.RoomAddressPipeText, roomContactNumbers); - TriList.SetString(UIStringJoin.RoomPhoneText, roomPhoneNumber); - TriList.SetString(UIStringJoin.RoomVideoAddressText, roomVideoAddress); - } - - /// - /// Handles status changes for calls - /// - /// - /// - void Codec_CallStatusChange(object sender, CodecCallStatusItemChangeEventArgs e) - { - var call = e.CallItem; - var meetingInfoSender = sender as IHasMeetingInfo; - - switch (e.CallItem.Status) - { - case eCodecCallStatus.Connected: - // fire at SRL item - Parent.ShowNotificationRibbon("Connected", 2000); - OnCallConnected(); - //VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible); - break; - case eCodecCallStatus.Connecting: - // fire at SRL item - Parent.ShowNotificationRibbon("Connecting", 0); - OnCallConnected(); - break; - case eCodecCallStatus.Dialing: - Parent.ShowNotificationRibbon("Connecting", 0); - break; - case eCodecCallStatus.Disconnected: - if (IncomingCallModal != null) - IncomingCallModal.HideDialog(); - if (!Codec.IsInCall) - { - KeypadMode = eKeypadMode.Dial; - // show keypad if we're in call UI mode - ShowKeypad(); - DialStringBuilder.Remove(0, DialStringBuilder.Length); - DialStringFeedback.FireUpdate(); - Parent.ShowNotificationRibbon("Disconnected", 2000); - Debug.Console(0, "Setting Connect Button mode to 0"); - } - - - break; - case eCodecCallStatus.Disconnecting: - break; - case eCodecCallStatus.EarlyMedia: - break; - case eCodecCallStatus.Idle: - break; - case eCodecCallStatus.OnHold: - break; - case eCodecCallStatus.Preserved: - break; - case eCodecCallStatus.RemotePreserved: - break; - case eCodecCallStatus.Ringing: - { - // fire up a modal - if( !Codec.CodecInfo.AutoAnswerEnabled && call.Direction == eCodecCallDirection.Incoming) - ShowIncomingModal(call); - break; - } - } - - if (meetingInfoSender != null && Codec.IsInCall) - { - var meetingInfo = meetingInfoSender.MeetingInfo; - - TriList.UShortInput[UIUshortJoin.VCStagingConnectButtonMode].UShortValue = - (ushort) (meetingInfo.IsSharingMeeting ? 2 : 1); - } - else - { - - TriList.UShortInput[UIUshortJoin.VCStagingConnectButtonMode].UShortValue = - (ushort) (Codec.IsInCall ? 1 : 0); - } - - uint stageJoin; - if (Codec.IsInCall) - stageJoin = UIBoolJoin.VCStagingActivePopoverVisible; - else - { - if (Codec is IHasCallHistory) - stageJoin = UIBoolJoin.VCStagingInactivePopoverWithRecentsVisible; - else - stageJoin = UIBoolJoin.VCStagingInactivePopoverWithoutRecentsVisible; - } - if (IsVisible) - StagingBarsInterlock.ShowInterlocked(stageJoin); - else - StagingBarsInterlock.SetButDontShow(stageJoin); - - HeaderDriver.ComputeHeaderCallStatus(Codec); - - // Update active call list - UpdateHeaderActiveCallList(); - } - - private void OnCallConnected() - { - HidePasswordPrompt(); - KeypadMode = eKeypadMode.DTMF; - DialStringBuilder.Remove(0, DialStringBuilder.Length); - DialStringFeedback.FireUpdate(); - DialStringTextCheckEnables(); - - StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress); - ShowKeypad(); - - UnmuteRoomOnCallConnect(); - } - - private void UnmuteRoomOnCallConnect() - { - var volControl = Parent.CurrentRoom as IHasCurrentVolumeControls; - - if (volControl == null) - { - return; - } - var currentVolControls = volControl.CurrentVolumeControls as IBasicVolumeWithFeedback; - - if (currentVolControls != null) - { - currentVolControls.MuteOff(); - } - } - - /// - /// Redraws the calls list on the header - /// - void UpdateHeaderActiveCallList() - { - var activeList = Codec.ActiveCalls.Where(c => c.IsActiveCall).ToList(); - ActiveCallsSRL.Clear(); - ushort i = 1; - foreach (var c in activeList) - { - //var item = new SubpageReferenceListItem(1, ActiveCallsSRL); - ActiveCallsSRL.StringInputSig(i, 1).StringValue = c.Name; - ActiveCallsSRL.StringInputSig(i, 2).StringValue = c.Number; - ActiveCallsSRL.StringInputSig(i, 3).StringValue = c.Status.ToString(); - ActiveCallsSRL.StringInputSig(i, 4).StringValue = string.Format("Participant {0}", i); - ActiveCallsSRL.UShortInputSig(i, 1).UShortValue = (ushort)(c.Type == eCodecCallType.Video ? 2 : 1); - var cc = c; // for scope in lambda - ActiveCallsSRL.GetBoolFeedbackSig(i, 1).SetSigFalseAction(() => Codec.EndCall(cc)); - i++; - } - ActiveCallsSRL.Count = (ushort)activeList.Count; - - // If Active Calls list is visible and codec is not in a call, hide the list - if (!Codec.IsInCall && Parent.PopupInterlock.CurrentJoin == Parent.CallListOrMeetingInfoPopoverVisibilityJoin) - Parent.PopupInterlock.ShowInterlockedWithToggle(Parent.CallListOrMeetingInfoPopoverVisibilityJoin); - } - - /// - /// - /// - void ShowIncomingModal(CodecActiveCallItem call) - { - Debug.Console(1, "Showing Incoming Call Modal"); - - (Parent as IAVWithVCDriver).PrepareForCodecIncomingCall(); - IncomingCallModal = new ModalDialog(TriList); - string msg; - string icon; - if (call.Type == eCodecCallType.Audio) - { - icon = "Phone"; - msg = string.Format("Incoming phone call from: {0}", call.Name); - } - else - { - icon = "Camera"; - msg = string.Format("Incoming video call from: {0}", call.Name); - } - - - // Hide screensaver - var screenSaverParent = Parent.Parent as IHasScreenSaverController; - - if (screenSaverParent != null) - { - screenSaverParent.ScreenSaverController.Hide(); - } - else - { - Debug.Console(1, "Parent.Parent is null or does not implement IHasScreenSaverController"); - } - - - IncomingCallModal.PresentModalDialog(2, "Incoming Call", icon, msg, - "Ignore", "Accept", false, false, b => - { - if (b == 1) - Codec.RejectCall(call); - else //2 - AcceptIncomingCall(call); - IncomingCallModal = null; - }); - } - - /// - /// - /// - void AcceptIncomingCall(CodecActiveCallItem call) - { - (Parent as IAVWithVCDriver).PrepareForCodecIncomingCall(); - (Parent as IAVWithVCDriver).ActivityCallButtonPressed(); - Codec.AcceptCall(call); - } - - /// - /// - /// - public override void Show() - { - VCControlsInterlock.Show(); - StagingBarsInterlock.Show(); - DialStringFeedback.FireUpdate(); - base.Show(); - } - - /// - /// - /// - public override void Hide() - { - VCControlsInterlock.Hide(); - StagingBarsInterlock.Hide(); - base.Hide(); - } - - /// - /// Builds the call stage - /// - void SetupCallStagingPopover() - { - TriList.SetSigFalseAction(UIBoolJoin.VCStagingDirectoryPress, ShowDirectory); - TriList.SetSigFalseAction(UIBoolJoin.VCStagingKeypadPress, ShowKeypad); - TriList.SetSigFalseAction(UIBoolJoin.VCStagingRecentsPress, ShowRecents); - TriList.SetSigFalseAction(UIBoolJoin.VCStagingCameraPress, ShowCameraControls); - TriList.SetSigFalseAction(UIBoolJoin.VCStagingConnectPress, ConnectPress); - TriList.SetSigFalseAction(UIBoolJoin.VCStagingMeetNowPress, MeetNowPress); - TriList.SetSigFalseAction(UIBoolJoin.CallStopSharingPress, CallStopSharingPress); - - var meetingInfoCodec = Codec as IHasMeetingInfo; - - TriList.SetSigFalseAction(UIBoolJoin.CallEndPress, () => - { - if (Codec.ActiveCalls.Count > 1) - { - Parent.PopupInterlock.ShowInterlocked(Parent.CallListOrMeetingInfoPopoverVisibilityJoin); - } - else if (meetingInfoCodec != null && Codec.ActiveCalls.Count == 1) - { - var meetingInfo = meetingInfoCodec.MeetingInfo; - - if (meetingInfo != null && meetingInfo.IsSharingMeeting) - { - var presentationMeetingCodec = Codec as IHasPresentationOnlyMeeting; - if (presentationMeetingCodec != null) - { - presentationMeetingCodec.StartNormalMeetingFromSharingOnlyMeeting(); - } - } - else - { - Codec.EndAllCalls(); - } - } - else - { - Codec.EndAllCalls(); - } - }); - - TriList.SetSigFalseAction(UIBoolJoin.CallEndAllConfirmPress, () => - { - Parent.PopupInterlock.HideAndClear(); - Codec.EndAllCalls(); - }); - - - if (meetingInfoCodec != null) - { - TriList.SetSigFalseAction(UIBoolJoin.MeetingLeavePress, () => - { - Parent.PopupInterlock.HideAndClear(); - - if (meetingInfoCodec.MeetingInfo.IsHost) - { - Codec.EndAllCalls(); - } - else - { - var startMeetingCodec = Codec as IHasStartMeeting; - if (startMeetingCodec != null) - { - startMeetingCodec.LeaveMeeting(); - } - } - }); - } - } - - void SetupCameraControls() - { - CameraPtzPad = new SmartObjectDPad(TriList.SmartObjects[UISmartObjectJoin.VCCameraDpad], true); - - // If the codec supports camera auto or off, we need to show the mode selector subpage - ShowCameraModeControls = Codec is IHasCameraAutoMode || Codec is IHasCameraOff; - - if (ShowCameraModeControls) - { - CameraModeList = new SmartObjectDynamicList(TriList.SmartObjects[UISmartObjectJoin.VCCameraMode], true, 0); - - VCControlsInterlock.StatusChanged += new EventHandler(VCControlsInterlock_StatusChanged); - - var codecOffCameras = Codec as IHasCameraOff; - - var supportsCameraOffMode = Codec.SupportsCameraOff; - - var codecAutoCameras = Codec as IHasCameraAutoMode; - - var supportsAutoCameraMode = Codec.SupportsCameraAutoMode; - - if (codecAutoCameras != null && supportsAutoCameraMode) - { - - CameraModeList.SetItemButtonAction(1,(b) => codecAutoCameras.CameraAutoModeOn()); - TriList.SmartObjects[UISmartObjectJoin.VCCameraMode].BooleanInput["Item 1 Visible"].BoolValue = true; - codecAutoCameras.CameraAutoModeIsOnFeedback.LinkInputSig(CameraModeList.SmartObject.BooleanInput["Item 1 Selected"]); - codecAutoCameras.CameraAutoModeIsOnFeedback.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VCCameraAutoModeIsOnFb]); - //TriList.SmartObjects[UISmartObjectJoin.VCCameraMode].BooleanOutput["Item 1 Pressed"].SetSigFalseAction( - //() => codecAutoCameras.CameraAutoModeOn()); - - - codecAutoCameras.CameraAutoModeIsOnFeedback.OutputChange += (o, a) => - { - if (a.BoolValue) - { - SetCameraManualModeButtonFeedback(false); - - if (VCControlsInterlock.CurrentJoin == UIBoolJoin.VCCameraModeBarVisible) - { - VCCameraControlModeInterlock.ShowInterlocked(UIBoolJoin.VCCameraAutoVisible); - } - else - { - VCCameraControlModeInterlock.SetButDontShow(UIBoolJoin.VCCameraAutoVisible); - } - } - else - { - ShowCameraManualMode(); - } - - }; - - } - - // Manual button always visible - CameraModeList.SetItemButtonAction(2, (b) => ShowCameraManualMode()); - - TriList.SmartObjects[UISmartObjectJoin.VCCameraMode].BooleanInput["Item 2 Visible"].BoolValue = true; - //TriList.SmartObjects[UISmartObjectJoin.VCCameraMode].BooleanOutput["Item 2 Pressed"].SetSigFalseAction( - // () => ShowCameraManualMode()); - - if (codecOffCameras != null && supportsCameraOffMode) - { - - TriList.SmartObjects[UISmartObjectJoin.VCCameraMode].BooleanInput["Item 3 Visible"].BoolValue = true; - codecOffCameras.CameraIsOffFeedback.LinkInputSig(CameraModeList.SmartObject.BooleanInput["Item 3 Selected"]); - CameraModeList.SetItemButtonAction(3, (b) => codecOffCameras.CameraOff()); - //TriList.SmartObjects[UISmartObjectJoin.VCCameraMode].BooleanOutput["Item 3 Pressed"].SetSigFalseAction( - // () => codecOffCameras.CameraOff()); - - codecOffCameras.CameraIsOffFeedback.OutputChange += (o, a) => - { - if (a.BoolValue) - { - SetCameraManualModeButtonFeedback(false); - - if (VCControlsInterlock.CurrentJoin == UIBoolJoin.VCCameraModeBarVisible) - { - VCCameraControlModeInterlock.ShowInterlocked(UIBoolJoin.VCCameraOffVisible); - } - else - { - VCCameraControlModeInterlock.SetButDontShow(UIBoolJoin.VCCameraOffVisible); - } - } - else - { - ShowCameraManualMode(); - } - - }; - - } - } - - var camerasCodec = Codec as IHasCameras; - - if(camerasCodec != null) - { - //CameraSelectList = new SmartObjectDynamicList(TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect], true, 0); - - var so = TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect]; - - so.SigChange += SmartObject_SigChange; - - for (uint i = 1; i <= camerasCodec.Cameras.Count; i++) - { - var cameraKey = camerasCodec.Cameras[(int)i - 1].Key; - Debug.Console(1, "Setting up action for Camera {0} with Key: {1} for button Item {0} Pressed", i, cameraKey); - - //TODO: Fix camera selection action. For some reson this action doesn't execute when the buttons are pressed - - var sig = so.BooleanOutput[String.Format("Item {0} Pressed", i)]; - - so.BooleanOutput[string.Format("Item {0} Pressed", i)].SetSigFalseAction( - () => camerasCodec.SelectCamera(cameraKey)); - } - - so.UShortInput["Set Number of Items"].UShortValue = (ushort)camerasCodec.Cameras.Count; - //TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect].UShortOutput["Item Clicked"].SetUShortSigAction( - // (u) => - // { - // var cameraKey = camerasCodec.Cameras[u - 1].Key; - // Debug.Console(1, "Selecting Camera {0} with Key: {1}", u, cameraKey); - // camerasCodec.SelectCamera(cameraKey); - // }); - - - // Set the names for the cameras - for (int i = 1; i <= camerasCodec.Cameras.Count; i++) - { - so.StringInput[string.Format("Set Item {0} Text", i)].StringValue = camerasCodec.Cameras[i - 1].Name; - } - - SetCameraSelectedFeedback(); - camerasCodec.CameraSelected += camerasCodec_CameraSelected; - MapCameraActions(); - } - - SetupPresets(); - - } - - void SmartObject_SigChange(GenericBase currentDevice, SmartObjectEventArgs args) - { - var uo = args.Sig.UserObject; - if (uo is Action) - (uo as Action)(args.Sig.BoolValue); - else if (uo is Action) - (uo as Action)(args.Sig.UShortValue); - else if (uo is Action) - (uo as Action)(args.Sig.StringValue); - } - - void VCControlsInterlock_StatusChanged(object sender, StatusChangedEventArgs e) - { - // Need to hide the camera mode interlock if the mode bar gets hidden - if (e.PreviousJoin == UIBoolJoin.VCCameraModeBarVisible) - VCCameraControlModeInterlock.Hide(); - - // These deal with hiding/showing the camera select bar if no mode controls are visible (tied to manual controls being visible) - if(!ShowCameraModeControls) - { - if(e.PreviousJoin == UIBoolJoin.VCCameraManualVisible) - TriList.SetBool(UIBoolJoin.VCCameraSelectBarWithoutModeVisible, false); - - if (e.NewJoin == UIBoolJoin.VCCameraManualVisible) - TriList.SetBool(UIBoolJoin.VCCameraSelectBarWithoutModeVisible, true); - } - - - } - - - /// - /// Shows the preset saved label for 2 seconds - /// - void ShowPresetStoreFeedback() - { - TriList.BooleanInput[UIBoolJoin.VCCameraPresetSavedLabelVisible].BoolValue = true; - - var timer = new CTimer((o) => TriList.BooleanInput[UIBoolJoin.VCCameraPresetSavedLabelVisible].BoolValue = false, 2000); - } - - void presetsCodec_CodecRoomPresetsListHasChanged(object sender, EventArgs e) - { - SetupPresets(); - } - - - void camerasCodec_CameraSelected(object sender, CameraSelectedEventArgs e) - { - MapCameraActions(); - - SetCameraSelectedFeedback(); - } - - /// - /// Set the feedback for the button of the selected camera - /// - void SetCameraSelectedFeedback() - { - var camerasCodec = Codec as IHasCameras; - - for (int i = 1; i <= camerasCodec.Cameras.Count; i++) - { - var cameraSelected = camerasCodec.SelectedCameraFeedback.StringValue; - var state = false; - if (cameraSelected == camerasCodec.Cameras[i - 1].Key) - { - state = true; - } - - TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect].BooleanInput[string.Format("Item {0} Selected", i)].BoolValue = state; - } - - } - - void SetupPresets() - { - var presetsCodec = Codec as IHasCodecRoomPresets; - if (presetsCodec != null) - { - uint holdTime = 5000; - presetsCodec.CodecRoomPresetsListHasChanged += new EventHandler(presetsCodec_CodecRoomPresetsListHasChanged); - - var preset = 1; - if (presetsCodec.NearEndPresets[preset - 1] != null && presetsCodec.NearEndPresets[preset - 1].Defined) - { - TriList.SetBool(UIBoolJoin.VCCameraPreset1Visible, true); - TriList.BooleanOutput[UIBoolJoin.VCCameraPreset1].SetSigHeldAction( - holdTime, ShowPresetStoreFeedback,() => presetsCodec.CodecRoomPresetStore(preset, presetsCodec.NearEndPresets[preset - 1].Description), - () => presetsCodec.CodecRoomPresetSelect(preset)); - TriList.StringInput[UIStringJoin.VCCameraPresetLabel1].StringValue = presetsCodec.NearEndPresets[preset - 1].Description; - } - else - { - TriList.SetBool(UIBoolJoin.VCCameraPreset1Visible, false); - } - - if (presetsCodec.NearEndPresets[1] != null && presetsCodec.NearEndPresets[1].Defined) - { - TriList.SetBool(UIBoolJoin.VCCameraPreset2Visible, true); - TriList.BooleanOutput[UIBoolJoin.VCCameraPreset2].SetSigHeldAction( - holdTime, ShowPresetStoreFeedback, () => presetsCodec.CodecRoomPresetStore(preset, presetsCodec.NearEndPresets[preset - 1].Description), - () => presetsCodec.CodecRoomPresetSelect(preset)); - TriList.StringInput[UIStringJoin.VCCameraPresetLabel2].StringValue = presetsCodec.NearEndPresets[1].Description; - } - else - { - TriList.SetBool(UIBoolJoin.VCCameraPreset2Visible, false); - } - - if (presetsCodec.NearEndPresets[2] != null && presetsCodec.NearEndPresets[2].Defined) - { - TriList.SetBool(UIBoolJoin.VCCameraPreset3Visible, true); - TriList.BooleanOutput[UIBoolJoin.VCCameraPreset3].SetSigHeldAction( - holdTime, ShowPresetStoreFeedback, () => presetsCodec.CodecRoomPresetStore(preset, presetsCodec.NearEndPresets[preset - 1].Description), - () => presetsCodec.CodecRoomPresetSelect(preset)); - TriList.StringInput[UIStringJoin.VCCameraPresetLabel3].StringValue = presetsCodec.NearEndPresets[2].Description; - } - else - { - TriList.SetBool(UIBoolJoin.VCCameraPreset3Visible, false); - } - } - } - - /// - /// Maps button actions to the selected camera - /// - void MapCameraActions() - { - // Now we setup the button actions for the manual controls - var camerasCodec = Codec as IHasCameras; - - if (camerasCodec != null && camerasCodec.SelectedCamera != null) - { - Debug.Console(2, "Attempting to map camera actions to selected camera: '{0}'", camerasCodec.SelectedCamera.Key); - var dpad = CameraPtzPad; - - var camera = camerasCodec.SelectedCamera as IHasCameraPtzControl; - if (camera != null) - { - - Debug.Console(2, "Selected camera is IHasCameraPtzControl"); - if (camerasCodec.SelectedCamera.CanTilt) - { - dpad.SigUp.SetBoolSigAction((b) => - { - if (b) - camera.TiltUp(); - else - camera.TiltStop(); - }); - dpad.SigDown.SetBoolSigAction((b) => - { - if (b) - camera.TiltDown(); - else - camera.TiltStop(); - }); - } - - if (camerasCodec.SelectedCamera.CanPan) - { - dpad.SigLeft.SetBoolSigAction((b) => - { - if (b) - camera.PanLeft(); - else - camera.PanStop(); - }); - dpad.SigRight.SetBoolSigAction((b) => - { - if (b) - camera.PanRight(); - else - camera.PanStop(); - }); - } - - - //dpad.SigCenter.SetSigFalseAction(() => camera.PositionHome()); - - //var homeButton = dpad.BooleanOutput["Home"]; - //if (homeButton != null) - //{ - // homeButton.SetSigFalseAction(() => camera.PositionHome()); - //} - - if (camerasCodec.SelectedCamera.CanZoom) - { - TriList.BooleanOutput[UIBoolJoin.VCCameraZoomIn].SetBoolSigAction((b) => - { - if (b) - camera.ZoomIn(); - else - camera.ZoomStop(); - }); - TriList.BooleanOutput[UIBoolJoin.VCCameraZoomOut].SetBoolSigAction((b) => - { - if (b) - camera.ZoomOut(); - else - camera.ZoomStop(); - }); - } - - } - else - { - Debug.Console(2, "Selected Camera is not IHasCameraPtzControl. No controls to map"); - } - } - else - { - Debug.Console(2, "Codec does not have cameras of selected camera is null"); - } - } - - // Determines if codec is in manual camera control mode and shows feedback - void ShowCameraManualMode() - { - Debug.Console(2, "ShowCameraManualMode"); - - var inManualMode = true; - - var codecOffCameras = Codec as IHasCameraOff; - - var codecAutoCameras = Codec as IHasCameraAutoMode; - - var supportsAutoCameras = codecAutoCameras != null && Codec.SupportsCameraAutoMode; - - if (codecOffCameras != null && codecOffCameras.CameraIsOffFeedback.BoolValue) - { - inManualMode = false; - - var codecCameraMute = Codec as IHasCameraMute; - - if (codecCameraMute != null) - { - codecCameraMute.CameraMuteOff(); - inManualMode = true; - - } - } - - // Clear auto mode - if (supportsAutoCameras) - { - if (codecAutoCameras.CameraAutoModeIsOnFeedback.BoolValue) - { - codecAutoCameras.CameraAutoModeOff(); - inManualMode = true; - } - } - - if (inManualMode) - { - VCCameraControlModeInterlock.SetButDontShow(UIBoolJoin.VCCameraManualVisible); - - if (VCControlsInterlock.CurrentJoin == UIBoolJoin.VCCameraModeBarVisible) - VCCameraControlModeInterlock.Show(); - } - - SetCameraManualModeButtonFeedback(inManualMode); - - } - - void SetCameraManualModeButtonFeedback(bool state) - { - // Set button feedback for manual mode - TriList.SmartObjects[UISmartObjectJoin.VCCameraMode].BooleanInput["Item 2 Selected"].BoolValue = state; - } - - /// - /// - /// - void SetupDialKeypad() - { - if(TriList.SmartObjects.Contains(UISmartObjectJoin.VCDialKeypad)) - { - DialKeypad = new SmartObjectNumeric(TriList.SmartObjects[UISmartObjectJoin.VCDialKeypad], true); - DialKeypad.Digit0.SetSigFalseAction(() => DialKeypadPress("0")); - DialKeypad.Digit1.SetSigFalseAction(() => DialKeypadPress("1")); - DialKeypad.Digit2.SetSigFalseAction(() => DialKeypadPress("2")); - DialKeypad.Digit3.SetSigFalseAction(() => DialKeypadPress("3")); - DialKeypad.Digit4.SetSigFalseAction(() => DialKeypadPress("4")); - DialKeypad.Digit5.SetSigFalseAction(() => DialKeypadPress("5")); - DialKeypad.Digit6.SetSigFalseAction(() => DialKeypadPress("6")); - DialKeypad.Digit7.SetSigFalseAction(() => DialKeypadPress("7")); - DialKeypad.Digit8.SetSigFalseAction(() => DialKeypadPress("8")); - DialKeypad.Digit9.SetSigFalseAction(() => DialKeypadPress("9")); - DialKeypad.Misc1SigName = "*"; - DialKeypad.Misc1.SetSigFalseAction(() => DialKeypadPress("*")); - DialKeypad.Misc2SigName = "#"; - DialKeypad.Misc2.SetSigFalseAction(() => DialKeypadPress("#")); - //TriList.SetSigFalseAction(UIBoolJoin.VCKeypadBackspacePress, DialKeypadBackspacePress); - TriList.SetSigHeldAction(UIBoolJoin.VCKeypadBackspacePress, 500, - StartBackspaceRepeat, StopBackspaceRepeat, DialKeypadBackspacePress); - } - else - Debug.Console(0, "Trilist {0:x2}, VC dial keypad object {1} not found. Check SGD file or VTP", - TriList.ID, UISmartObjectJoin.VCDialKeypad); - } - - /// - /// - /// - void SetupRecentCallsList() - { - var codec = Codec as IHasCallHistory; - if (codec != null) - { - codec.CallHistory.RecentCallsListHasChanged += (o, a) => RefreshRecentCallsList(); - // EVENT??????????????? Pointed at refresh - RecentCallsList = new SmartObjectDynamicList(TriList.SmartObjects[UISmartObjectJoin.VCRecentsList], true, 1200); - RefreshRecentCallsList(); - } - } - - /// - /// - /// - void RefreshRecentCallsList() - { - var codec = Codec as IHasCallHistory; - uint textOffset = 1200; - uint timeTextOffset = 1230; - if (codec != null) - { - ushort i = 0; - foreach (var c in codec.CallHistory.RecentCalls) - { - i++; - TriList.SetString(textOffset + i, c.Name); - // if it's today, show a simpler string - string timeText = null; - if (c.StartTime.Date == DateTime.Now.Date) - timeText = c.StartTime.ToString("t", Global.Culture); - else if (c.StartTime == DateTime.MinValue) - timeText = ""; - else - timeText = c.StartTime.ToString(); - TriList.SetString(timeTextOffset + i, timeText); - - string iconName = null; - if (c.OccurrenceType == eCodecOccurrenceType.Received) - iconName = "Misc-18_Light"; - else if (c.OccurrenceType == eCodecOccurrenceType.Placed) - iconName = "Misc-17_Light"; - else - iconName = "Delete"; - RecentCallsList.SetItemIcon(i, iconName); - - var call = c; // for lambda scope - RecentCallsList.SetItemButtonAction(i, b => { if(!b) Codec.Dial(call.Number); }); - } - RecentCallsList.Count = i; - } - } - - /// - /// - /// - void SetupFavorites() - { - var c = Codec as IHasCallFavorites; - if (c != null && c.CallFavorites != null) - { - CodecHasFavorites = true; - var favs = c.CallFavorites.Favorites; - for (uint i = 0; i <= 3; i++) - { - if (i < favs.Count) - { - var fav = favs[(int)i]; - TriList.SetString(UIStringJoin.VCFavoritesStart + i, fav.Name); - TriList.SetBool(UIBoolJoin.VCFavoriteVisibleStart + i, true); - TriList.SetSigFalseAction(UIBoolJoin.VCFavoritePressStart + i, () => - { - Codec.Dial(fav.Number); - }); - } - else - TriList.SetBool(UIBoolJoin.VCFavoriteVisibleStart + i, false); - } - } - } - - /// - /// - /// - void SetupDirectoryList() - { - var codec = Codec as IHasDirectory; - if (codec == null) - { - return; - } - - DirectoryList = new SmartObjectDynamicList(TriList.SmartObjects[UISmartObjectJoin.VCDirectoryList], - true, 1300); - codec.DirectoryResultReturned += dir_DirectoryResultReturned; - - if (codec.PhonebookSyncState.InitialSyncComplete) - SetCurrentDirectoryToRoot(); - else - { - codec.PhonebookSyncState.InitialSyncCompleted += PhonebookSyncState_InitialSyncCompleted; - } - } - - /// - /// Sets the current directory results to the DirectoryRoot and updates Back Button visibiltiy - /// - void SetCurrentDirectoryToRoot() - { - var hasDirectory = Codec as IHasDirectory; - - if (hasDirectory == null) - { - return; - } - - hasDirectory.SetCurrentDirectoryToRoot(); - SearchKeypadClear(); - } - - /// - /// Setup the Directory list when notified that the initial phonebook sync is completed - /// - /// - /// - void PhonebookSyncState_InitialSyncCompleted(object sender, EventArgs e) - { - var codec = Codec as IHasDirectory; - - if (codec == null) - { - return; - } - - if (!codec.CurrentDirectoryResultIsNotDirectoryRoot.BoolValue) - { - return; - } - - SetCurrentDirectoryToRoot(); - } - - /// - /// - /// - /// - /// - void dir_DirectoryResultReturned(object sender, DirectoryEventArgs e) - { - RefreshDirectory(e.Directory); - } - - /// - /// Helper method to retrieve directory folder contents and store last requested folder id - /// - /// - void GetDirectoryFolderContents(DirectoryFolder folder) - { - (Codec as IHasDirectory).GetDirectoryFolderContents(folder.FolderId); - - } - - /// - /// Request the parent folder contents or sets back to the root if no parent folder - /// - void GetDirectoryParentFolderContents() - { - var codec = Codec as IHasDirectory; - - if (codec != null) - { - codec.GetDirectoryParentFolderContents(); - - //RefreshDirectory(); - } - - } - - /// - /// - /// - void RefreshDirectory() - { - var codec = Codec as IHasDirectory; - - if (codec == null) - { - return; - } - - RefreshDirectory(codec.CurrentDirectoryResult); - } - - void RefreshDirectory(CodecDirectory directory) - { - if (directory.CurrentDirectoryResults.Count > 0) - { - ushort i = 0; - foreach (var r in directory.CurrentDirectoryResults) - { - if (i == DirectoryList.MaxCount) - { - break; - } - - i++; - - if (r is DirectoryContact) - { - DirectoryList.SetItemMainText(i, r.Name); - - var dc = r as DirectoryContact; - - if (dc.ContactMethods.Count > 1) - { - // If more than one contact method, show contact method modal dialog - DirectoryList.SetItemButtonAction(i, b => - { - if (b) - { - return; - } - // Refresh the contact methods list - RefreshContactMethodsModalList(dc); - Parent.PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.MeetingsOrContacMethodsListVisible); - }); - - } - else if (dc.ContactMethods.Count == 1) - { - var invitableContact = dc as IInvitableContact; - - if (invitableContact != null) - { - DirectoryList.SetItemButtonAction(i, b => { if (!b) Codec.Dial(invitableContact); }); - } - else - { - // If only one contact method, just dial that method - DirectoryList.SetItemButtonAction(i, b => { if (!b) Codec.Dial(dc.ContactMethods[0].Number); }); - } - } - else - { - Debug.Console(1, "Unable to dial contact. No availble ContactMethod(s) specified"); - } - } - else // is DirectoryFolder - { - DirectoryList.SetItemMainText(i, string.Format("[+] {0}", r.Name)); - - var df = r as DirectoryFolder; - - DirectoryList.SetItemButtonAction(i, b => - { - if (!b) - { - GetDirectoryFolderContents(df); - // will later call event handler after folder contents retrieved - } - }); - } - } - DirectoryList.Count = i; - } - else // No results in directory, display message to user - { - DirectoryList.Count = 1; - - DirectoryList.SetItemMainText(1, "No Results Found"); - } - } - - void RefreshContactMethodsModalList(DirectoryContact contact) - { - TriList.SetString(UIStringJoin.MeetingsOrContactMethodListIcon, "Users"); - TriList.SetString(UIStringJoin.MeetingsOrContactMethodListTitleText, "Contact Methods"); - - ushort i = 0; - foreach (var c in contact.ContactMethods) - { - i++; - Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 1).StringValue = c.Device.ToString(); - Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 2).StringValue = c.CallType.ToString(); - Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 3).StringValue = c.Number; - Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 4).StringValue = ""; - Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 5).StringValue = "Connect"; - Parent.MeetingOrContactMethodModalSrl.BoolInputSig(i, 2).BoolValue = true; - var cc = c; // to maintian lambda scope - Parent.MeetingOrContactMethodModalSrl.GetBoolFeedbackSig(i, 1).SetSigFalseAction(() => - { - Parent.PopupInterlock.Hide(); - var codec = Codec as VideoCodecBase; - if (codec != null) - codec.Dial(cc.Number); - }); - } - Parent.MeetingOrContactMethodModalSrl.Count = i; - - } - - /// - /// - /// - void SetupLayoutControls() - { - TriList.SetSigFalseAction(UIBoolJoin.VCStagingSelfViewLayoutPress, this.ShowSelfViewLayout); - var svc = Codec as IHasCodecSelfView; - if (svc != null) - { - TriList.SetSigFalseAction(UIBoolJoin.VCSelfViewTogglePress, svc.SelfViewModeToggle); - svc.SelfviewIsOnFeedback.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VCSelfViewTogglePress]); - } - var lc = Codec as IHasCodecLayouts; - if (lc != null) - { - - lc.LocalLayoutFeedback.LinkInputSig(TriList.StringInput[UIStringJoin.VCLayoutModeText]); - lc.LocalLayoutFeedback.OutputChange += (o,a) => - { - TriList.BooleanInput[UIBoolJoin.VCLayoutTogglePress].BoolValue = - lc.LocalLayoutFeedback.StringValue == "Prominent"; - }; - - - // attach to cisco special things to enable buttons - var cisco = Codec as PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.CiscoSparkCodec; - if (cisco != null) - { - TriList.SetSigFalseAction(UIBoolJoin.VCLayoutTogglePress, lc.LocalLayoutToggleSingleProminent); - // Cisco has min/max buttons that need special sauce - cisco.SharingContentIsOnFeedback.OutputChange += CiscoSharingAndPresentation_OutputChanges; - //cisco.PresentationViewMaximizedFeedback.OutputChange += CiscoSharingAndPresentation_OutputChanges; - - TriList.SetSigFalseAction(UIBoolJoin.VCMinMaxPress, cisco.MinMaxLayoutToggle); - } - - var zoomRoom = Codec as PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom.ZoomRoom; - if (zoomRoom != null) - { - TriList.BooleanInput[UIBoolJoin.VCLayoutToggleEnable].BoolValue = true; - TriList.SetSigFalseAction(UIBoolJoin.VCLayoutTogglePress, lc.LocalLayoutToggle); - } - - } - - - } - - /// - /// This should only be linked by cisco classes (spark initially) - /// - /// - /// - void CiscoSharingAndPresentation_OutputChanges(object sender, EventArgs e) - { - var cisco = Codec as PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.CiscoSparkCodec; - if (cisco != null) - { - var sharingNear = cisco.SharingContentIsOnFeedback.BoolValue; - - var sharingFar = cisco.FarEndIsSharingContentFeedback.BoolValue; - //set feedback and enables - TriList.BooleanInput[UIBoolJoin.VCMinMaxEnable].BoolValue = sharingNear; - TriList.BooleanInput[UIBoolJoin.VCLayoutToggleEnable].BoolValue = sharingNear || sharingFar; - TriList.BooleanInput[UIBoolJoin.VCMinMaxPress].BoolValue = sharingNear; - } - } - - /// - /// - /// - void RevealKeyboard() - { - if (_passwordPromptDialogVisible) - { - Debug.Console(2, "Attaching Keyboard to PasswordPromptDialog"); - DetachDialKeyboard(); - DetachSearchKeyboard(); - var kb = Parent.Keyboard; - kb.KeyPress -= Keyboard_PasswordKeyPress; - kb.KeyPress += Keyboard_PasswordKeyPress; - kb.HideAction = this.DetachPasswordKeyboard; - kb.GoButtonText = "Submit"; - kb.GoButtonVisible = true; - PasswordStringCheckEnables(); - kb.Show(); - } - else if (VCControlsInterlock.CurrentJoin == UIBoolJoin.VCKeypadWithFavoritesVisible && KeypadMode == eKeypadMode.Dial) - { - var kb = Parent.Keyboard; - kb.KeyPress -= Keyboard_DialKeyPress; - kb.KeyPress += Keyboard_DialKeyPress; - kb.HideAction = this.DetachDialKeyboard; - kb.GoButtonText = "Connect"; - kb.GoButtonVisible = true; - DialStringTextCheckEnables(); - kb.Show(); - } - else if(VCControlsInterlock.CurrentJoin == UIBoolJoin.VCDirectoryVisible) - { - var kb = Parent.Keyboard; - kb.KeyPress -= Keyboard_SearchKeyPress; - kb.KeyPress += Keyboard_SearchKeyPress; - kb.HideAction = this.DetachSearchKeyboard; - kb.GoButtonText = "Search"; - kb.GoButtonVisible = true; - SearchStringKeypadCheckEnables(); - kb.Show(); - } - - } - - /// - /// Event handler for keyboard dialing - /// - void Keyboard_DialKeyPress(object sender, PepperDash.Essentials.Core.Touchpanels.Keyboards.KeyboardControllerPressEventArgs e) - { - if (VCControlsInterlock.CurrentJoin == UIBoolJoin.VCKeypadWithFavoritesVisible && KeypadMode == eKeypadMode.Dial) - { - if (e.Text != null) - DialStringBuilder.Append(e.Text); - else - { - if (e.SpecialKey == KeyboardSpecialKey.Backspace) - DialKeypadBackspacePress(); - else if (e.SpecialKey == KeyboardSpecialKey.Clear) - DialKeypadClear(); - else if (e.SpecialKey == KeyboardSpecialKey.GoButton) - { - ConnectPress(); - } - } - DialStringFeedback.FireUpdate(); - DialStringTextCheckEnables(); - } - } - - /// - /// Event handler for keyboard directory searches - /// - /// - /// - void Keyboard_SearchKeyPress(object sender, KeyboardControllerPressEventArgs e) - { - if (VCControlsInterlock.CurrentJoin == UIBoolJoin.VCDirectoryVisible) - { - if (e.Text != null) - SearchStringBuilder.Append(e.Text); - else - { - if (e.SpecialKey == KeyboardSpecialKey.Backspace) - SearchKeypadBackspacePress(); - else if (e.SpecialKey == KeyboardSpecialKey.Clear) - SearchKeypadClear(); - else if (e.SpecialKey == KeyboardSpecialKey.GoButton) - { - SearchPress(); - Parent.Keyboard.Hide(); - } - } - SearchStringFeedback.FireUpdate(); - SearchStringKeypadCheckEnables(); - } - } - - /// - /// Event handler for keyboard dialing - /// - void Keyboard_PasswordKeyPress(object sender, PepperDash.Essentials.Core.Touchpanels.Keyboards.KeyboardControllerPressEventArgs e) - { - if (_passwordPromptDialogVisible) - { - if (e.Text != null) - PasswordStringBuilder.Append(e.Text); - else - { - if (e.SpecialKey == KeyboardSpecialKey.Backspace) - PasswordKeypadBackspacePress(); - else if (e.SpecialKey == KeyboardSpecialKey.Clear) - PasswordKeypadClear(); - else if (e.SpecialKey == KeyboardSpecialKey.GoButton) - { - (Codec as IPasswordPrompt).SubmitPassword(PasswordStringBuilder.ToString()); - HidePasswordPrompt(); - } - } - PasswordStringFeedback.FireUpdate(); - PasswordStringCheckEnables(); - } - } - - /// - /// Call - /// - void DetachDialKeyboard() - { - Parent.Keyboard.KeyPress -= Keyboard_DialKeyPress; - } - - void DetachSearchKeyboard() - { - Parent.Keyboard.KeyPress -= Keyboard_SearchKeyPress; - } - - void DetachPasswordKeyboard() - { - Parent.Keyboard.KeyPress -= Keyboard_PasswordKeyPress; - } - - /// - /// Shows the camera controls subpage - /// - void ShowCameraControls() - { - if (ShowCameraModeControls) - { - VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCCameraModeBarVisible); - - if (VCCameraControlModeInterlock.CurrentJoin != 0) - { - VCCameraControlModeInterlock.Show(); - } - else - { - var codecAutoCamera = Codec as IHasCameraAutoMode; - if (codecAutoCamera != null) - { - ShowCameraManualMode(); - VCCameraControlModeInterlock.Show(); - } - } - } - else - { - // Just show the manual camera control page - VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCCameraManualVisible); - } - - - - StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingCameraPress); - } - - /// - /// shows the directory subpage - /// - void ShowDirectory() - { - // populate directory - VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCDirectoryVisible); - StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingDirectoryPress); - - } - - /// - /// shows the appropriate keypad depending on mode and whether visible - /// - void ShowKeypad() - { - uint join = Codec.IsInCall ? UIBoolJoin.VCKeypadVisible : UIBoolJoin.VCKeypadWithFavoritesVisible; - if (IsVisible) - VCControlsInterlock.ShowInterlocked(join); - else - VCControlsInterlock.SetButDontShow(join); - StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress); - } - - /// - /// Shows the self-view layout controls subpage - /// - void ShowSelfViewLayout() - { - VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCCameraAutoVisible); - StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingSelfViewLayoutPress); - } - - /// - /// Shows the recents subpage - /// - void ShowRecents() - { - //populate recents - VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCRecentsVisible); - StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingRecentsPress); - } - - /// - /// Meet Now button - /// - void MeetNowPress() - { - var startMeetingCodec = Codec as IHasStartMeeting; - if (startMeetingCodec != null) - { - startMeetingCodec.StartMeeting(startMeetingCodec.DefaultMeetingDurationMin); - } - else - { - Debug.Console(2, "Codce does not implment IHasStartMeeting. Cannot meet now"); - } - } - - /// - /// Connect call button - /// - void ConnectPress() - { - if (Parent.Keyboard != null) - Parent.Keyboard.Hide(); - Codec.Dial(DialStringBuilder.ToString()); - } - - /// - /// Stop Sharing button - /// - void CallStopSharingPress() - { - Codec.StopSharing(); - Parent.CurrentRoom.RunRouteAction("codecOsd", Parent.CurrentRoom.SourceListKey); - } - - - /// - /// - /// - /// - void DialKeypadPress(string i) - { - if (KeypadMode == eKeypadMode.Dial) - { - DialStringBuilder.Append(i); - DialStringFeedback.FireUpdate(); - DialStringTextCheckEnables(); - } - else - { - Codec.SendDtmf(i); - DialStringBuilder.Append(i); - DialStringFeedback.FireUpdate(); - // no delete key in this mode! - } - DialStringTextCheckEnables(); - } - - /// - /// Does what it says - /// - void StartBackspaceRepeat() - { - if (BackspaceTimer == null) - { - BackspaceTimer = new CTimer(o => DialKeypadBackspacePress(), null, 0, 175); - } - } - - /// - /// Does what it says - /// - void StopBackspaceRepeat() - { - if (BackspaceTimer != null) - { - BackspaceTimer.Stop(); - BackspaceTimer = null; - } - } - - /// - /// - /// - void DialKeypadBackspacePress() - { - if (KeypadMode == eKeypadMode.Dial) - { - DialStringBuilder.Remove(DialStringBuilder.Length - 1, 1); - DialStringFeedback.FireUpdate(); - DialStringTextCheckEnables(); - } - else - DialKeypadClear(); - } - - /// - /// Clears the dial keypad - /// - void DialKeypadClear() - { - DialStringBuilder.Remove(0, DialStringBuilder.Length); - DialStringFeedback.FireUpdate(); - DialStringTextCheckEnables(); - } - - /// - /// Checks the enabled states of various elements around the keypad - /// - void DialStringTextCheckEnables() - { - var textIsEntered = DialStringBuilder.Length > 0; - TriList.SetBool(UIBoolJoin.VCKeypadBackspaceVisible, textIsEntered); - TriList.SetBool(UIBoolJoin.VCStagingConnectEnable, textIsEntered); - if (textIsEntered) - Parent.Keyboard.EnableGoButton(); - else - Parent.Keyboard.DisableGoButton(); - } - - /// - /// - /// - void SearchPress() - { - (Codec as IHasDirectory).SearchDirectory(SearchStringBuilder.ToString()); - } - - /// - /// - /// - /// - void SearchKeyboardPress(string i) - { - SearchStringBuilder.Append(i); - SearchStringFeedback.FireUpdate(); - SearchStringKeypadCheckEnables(); - } - - /// - /// Does what it says - /// - void StartSearchBackspaceRepeat() - { - if (BackspaceTimer == null) - { - BackspaceTimer = new CTimer(o => SearchKeypadBackspacePress(), null, 0, 175); - } - } - - /// - /// Does what it says - /// - void StopSearchBackspaceRepeat() - { - if (BackspaceTimer != null) - { - BackspaceTimer.Stop(); - BackspaceTimer = null; - } - } - - /// - /// - /// - void SearchKeypadBackspacePress() - { - SearchStringBuilder.Remove(SearchStringBuilder.Length - 1, 1); - - if (SearchStringBuilder.Length == 0) - SetCurrentDirectoryToRoot(); - - SearchStringFeedback.FireUpdate(); - SearchStringKeypadCheckEnables(); - } - - /// - /// Clears the Search keypad - /// - void SearchKeypadClear() - { - SearchStringBuilder.Remove(0, SearchStringBuilder.Length); - SearchStringFeedback.FireUpdate(); - SearchStringKeypadCheckEnables(); - - if ((Codec as IHasDirectory).CurrentDirectoryResultIsNotDirectoryRoot.BoolValue) - SetCurrentDirectoryToRoot(); - } - - /// - /// Checks the enabled states of various elements around the keypad - /// - void SearchStringKeypadCheckEnables() - { - var textIsEntered = SearchStringBuilder.Length > 0; - TriList.SetBool(UIBoolJoin.VCDirectoryBackspaceVisible, textIsEntered); - if (textIsEntered) - Parent.Keyboard.EnableGoButton(); - else - Parent.Keyboard.DisableGoButton(); - } - - /// - /// Clears the Password keypad - /// - void PasswordKeypadClear() - { - PasswordStringBuilder.Remove(0, PasswordStringBuilder.Length); - PasswordStringFeedback.FireUpdate(); - PasswordStringCheckEnables(); - - } - - /// - /// - /// - void PasswordKeypadBackspacePress() - { - PasswordStringBuilder.Remove(PasswordStringBuilder.Length - 1, 1); - - PasswordStringFeedback.FireUpdate(); - PasswordStringCheckEnables(); - } - - /// - /// Checks the enabled states of various elements around the keypad - /// - void PasswordStringCheckEnables() - { - var textIsEntered = PasswordStringBuilder.Length > 0; - if (textIsEntered) - Parent.Keyboard.EnableGoButton(); - else - Parent.Keyboard.DisableGoButton(); - } - - - /// - /// Returns the text value for the keypad dial entry field - /// - /// - string GetFormattedDialString(string ds) - { - if (DialStringBuilder.Length == 0 && !Codec.IsInCall) - { - return "Tap for keyboard"; - } - - return GetFormattedPhoneNumber(ds); - - } - - /// - /// Formats a string of numbers as a North American phone number - /// - /// - /// - string GetFormattedPhoneNumber(string s) - { - if (Regex.Match(s, @"^\d{4,7}$").Success) // 456-7890 - return string.Format("{0}-{1}", s.Substring(0, 3), s.Substring(3)); - if (Regex.Match(s, @"^9\d{4,7}$").Success) // 456-7890 - return string.Format("9 {0}-{1}", s.Substring(1, 3), s.Substring(4)); - if (Regex.Match(s, @"^\d{8,10}$").Success) // 123-456-78 - return string.Format("({0}) {1}-{2}", s.Substring(0, 3), s.Substring(3, 3), s.Substring(6)); - if (Regex.Match(s, @"^\d{10}$").Success) // 123-456-7890 full - return string.Format("({0}) {1}-{2}", s.Substring(0, 3), s.Substring(3, 3), s.Substring(6)); - if (Regex.Match(s, @"^1\d{10}$").Success) - return string.Format("+1 ({0}) {1}-{2}", s.Substring(1, 3), s.Substring(4, 3), s.Substring(7)); - if (Regex.Match(s, @"^9\d{10}$").Success) - return string.Format("9 ({0}) {1}-{2}", s.Substring(1, 3), s.Substring(4, 3), s.Substring(7)); - if (Regex.Match(s, @"^91\d{10}$").Success) - return string.Format("9 +1 ({0}) {1}-{2}", s.Substring(2, 3), s.Substring(5, 3), s.Substring(8)); - return s; - } - - enum eKeypadMode - { - Dial = 0, - DTMF - } - - void SetupPasswordPrompt() - { - var passwordPromptCodec = Codec as IPasswordPrompt; - - passwordPromptCodec.PasswordRequired += new EventHandler(passwordPromptCodec_PasswordRequired); - - TriList.SetSigFalseAction(UIBoolJoin.PasswordPromptCancelPress, HidePasswordPrompt); - TriList.SetSigFalseAction(UIBoolJoin.PasswordPromptTextPress, RevealKeyboard); - } - - void passwordPromptCodec_PasswordRequired(object sender, PasswordPromptEventArgs e) - { - if (e.LoginAttemptCancelled) - { - HidePasswordPrompt(); - return; - } - - if (!string.IsNullOrEmpty(e.Message)) - { - TriList.SetString(UIStringJoin.PasswordPromptMessageText, e.Message); - } - - if (e.LoginAttemptFailed) - { - // TODO: Show a message modal to indicate the login attempt failed - return; - } - - TriList.SetBool(UIBoolJoin.PasswordPromptErrorVisible, e.LastAttemptWasIncorrect); - - ShowPasswordPrompt(); - } - - private bool _passwordPromptDialogVisible; - - void ShowPasswordPrompt() - { - // Clear out any previous data - PasswordKeypadClear(); - - _passwordPromptDialogVisible = true; - TriList.SetBool(UIBoolJoin.PasswordPromptDialogVisible, _passwordPromptDialogVisible); - RevealKeyboard(); - } - - void HidePasswordPrompt() - { - if (_passwordPromptDialogVisible) - { - _passwordPromptDialogVisible = false; - Parent.Keyboard.Hide(); - TriList.SetBool(UIBoolJoin.PasswordPromptDialogVisible, _passwordPromptDialogVisible); - PasswordKeypadClear(); - } - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs.orig b/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs.orig deleted file mode 100644 index 7d0301e7..00000000 --- a/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs.orig +++ /dev/null @@ -1,250 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; -using PepperDash.Essentials; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.SmartObjects; -using PepperDash.Essentials.Devices.Common.VideoCodec; - -namespace PepperDash.Essentials.UIDrivers.VC -{ - - /// - /// This fella will likely need to interact with the room's source, although that is routed via the spark... - /// Probably needs event or FB to feed AV driver - to show two-mute volume when appropriate. - /// - /// - public class EssentialsVideoCodecUiDriver : PanelDriverBase - { - /// - /// - /// - VideoCodecBase Codec; - - /// - /// - /// - SmartObjectDynamicList DirectorySrl; // ***************** SRL ??? - - - /// - /// To drive UI elements outside of this driver that may be dependent on this. - /// - BoolFeedback InCall; - BoolFeedback LocalPrivacyIsMuted; - - /// - /// For the subpages above the bar - /// - JoinedSigInterlock VCControlsInterlock; - - /// - /// For the different staging bars: Active, inactive - /// - JoinedSigInterlock StagingBarInterlock; - - /// - /// For the staging button feedbacks - /// - JoinedSigInterlock StagingButtonFeedbackInterlock; - - SmartObjectNumeric DialKeypad; - - // These are likely temp until we get a keyboard built - StringFeedback DialStringFeedback; - StringBuilder DialStringBuilder = new StringBuilder(); - BoolFeedback DialStringBackspaceVisibleFeedback; - - /// - /// - /// - /// - /// - public EssentialsVideoCodecUiDriver(BasicTriListWithSmartObject triList, VideoCodecBase codec) - : base(triList) - { - Codec = codec; - SetupCallStagingPopover(); - SetupDialKeypad(); - - InCall = new BoolFeedback(() => false); - LocalPrivacyIsMuted = new BoolFeedback(() => false); - - //DirectorySrl = new SubpageReferenceList(triList, UISmartObjectJoin.VCDirectoryList, 3, 3, 3); - - VCControlsInterlock = new JoinedSigInterlock(triList); - VCControlsInterlock.SetButDontShow(UIBoolJoin.VCDirectoryVisible); - - StagingBarInterlock = new JoinedSigInterlock(triList); - StagingBarInterlock.SetButDontShow(UIBoolJoin.VCStagingInactivePopoverVisible); - - StagingButtonFeedbackInterlock = new JoinedSigInterlock(triList); - StagingButtonFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCRecentsVisible); - - DialStringFeedback = new StringFeedback(() => DialStringBuilder.ToString()); - DialStringFeedback.LinkInputSig(triList.StringInput[UIStringJoin.KeyboardText]); - - DialStringBackspaceVisibleFeedback = new BoolFeedback(() => DialStringBuilder.Length > 0); - DialStringBackspaceVisibleFeedback - .LinkInputSig(TriList.BooleanInput[UIBoolJoin.KeyboardClearVisible]); - - Codec.ActiveCallCountFeedback.OutputChange += new EventHandler(InCallFeedback_OutputChange); - } - - /// - /// - /// - public override void Show() - { - VCControlsInterlock.Show(); - StagingBarInterlock.Show(); - base.Show(); - } - - /// - /// - /// - public override void Hide() - { - VCControlsInterlock.Hide(); - StagingBarInterlock.Hide(); - base.Hide(); - } - - /// - /// Builds the call stage - /// - void SetupCallStagingPopover() - { - TriList.SetSigFalseAction(UIBoolJoin.VCStagingDirectoryPress, ShowDirectory); - TriList.SetSigFalseAction(UIBoolJoin.VCStagingConnectPress, ConnectPress); - TriList.SetSigFalseAction(UIBoolJoin.VCStagingKeypadPress, ShowKeypad); - TriList.SetSigFalseAction(UIBoolJoin.VCStagingRecentsPress, ShowRecents); - } - - /// - /// - /// - void SetupDialKeypad() - { - if(TriList.SmartObjects.Contains(UISmartObjectJoin.VCDialKeypad)) - { - DialKeypad = new SmartObjectNumeric(TriList.SmartObjects[UISmartObjectJoin.VCDialKeypad], true); - DialKeypad.Digit0.SetSigFalseAction(() => DialKeypadPress("0")); - DialKeypad.Digit1.SetSigFalseAction(() => DialKeypadPress("1")); - DialKeypad.Digit2.SetSigFalseAction(() => DialKeypadPress("2")); - DialKeypad.Digit3.SetSigFalseAction(() => DialKeypadPress("3")); - DialKeypad.Digit4.SetSigFalseAction(() => DialKeypadPress("4")); - DialKeypad.Digit5.SetSigFalseAction(() => DialKeypadPress("5")); - DialKeypad.Digit6.SetSigFalseAction(() => DialKeypadPress("6")); - DialKeypad.Digit7.SetSigFalseAction(() => DialKeypadPress("7")); - DialKeypad.Digit8.SetSigFalseAction(() => DialKeypadPress("8")); - DialKeypad.Digit9.SetSigFalseAction(() => DialKeypadPress("9")); - DialKeypad.Misc1SigName = "*"; - DialKeypad.Misc1.SetSigFalseAction(() => DialKeypadPress("*")); - DialKeypad.Misc2SigName = "#"; - DialKeypad.Misc2.SetSigFalseAction(() => DialKeypadPress("#")); - TriList.SetSigFalseAction(UIBoolJoin.KeyboardClearPress, DialKeypadBackspacePress); - } - else - Debug.Console(0, "Trilist {0:x2}, VC dial keypad object {1} not found. Check SGD file or VTP", - TriList.ID, UISmartObjectJoin.VCDialKeypad); - } - - /// - /// - /// - void ShowCameraControls() - { - VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCCameraVisible); - StagingButtonFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingCameraPress); - } - - void ShowKeypad() - { - VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible); - StagingButtonFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress); - } - - void ShowDirectory() - { - // populate directory - VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCDirectoryVisible); - StagingButtonFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingDirectoryPress); - } - - void ShowRecents() - { - //populate recents - VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCDirectoryVisible); - StagingButtonFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingRecentsPress); - } - - /// - /// - /// - void ConnectPress() - { - if (Codec.IsInCall) -<<<<<<< HEAD - Codec.EndCall("end whatever is selected"); -======= - Codec.EndAllCalls(); ->>>>>>> origin/feature/cisco-spark-2 - else - Codec.Dial(DialStringBuilder.ToString()); - } - - /// - /// - /// - void InCallFeedback_OutputChange(object sender, EventArgs e) - { - var inCall = Codec.IsInCall; - Debug.Console(1, "*#* Codec Driver InCallFeedback change={0}", InCall); - TriList.UShortInput[UIUshortJoin.VCStagingConnectButtonMode].UShortValue = (ushort)(inCall ? 1 : 0); - StagingBarInterlock.ShowInterlocked( - inCall ? UIBoolJoin.VCStagingActivePopoverVisible : UIBoolJoin.VCStagingInactivePopoverVisible); - - if (Codec.IsInCall) // Call is starting - { - // Header icon - // Volume bar needs to have mic mute - } - else // ending - { - // Header icon - // Volume bar no mic mute (or hidden if no source?) - } - } - - /// - /// - /// - /// - void DialKeypadPress(string i) - { - DialStringBuilder.Append(i); - DialStringFeedback.FireUpdate(); - TriList.BooleanInput[UIBoolJoin.KeyboardClearVisible].BoolValue = - DialStringBuilder.Length > 0; - } - - /// - /// - /// - void DialKeypadBackspacePress() - { - DialStringBuilder.Remove(DialStringBuilder.Length - 1, 1); - DialStringFeedback.FireUpdate(); - TriList.BooleanInput[UIBoolJoin.KeyboardClearVisible].BoolValue = - DialStringBuilder.Length > 0; - TriList.SetBool(UIBoolJoin.VCStagingConnectEnable, DialStringBuilder.Length > 0); - } - } -} \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/enums and base.cs b/PepperDashEssentials/UIDrivers/enums and base.cs deleted file mode 100644 index dbb1a681..00000000 --- a/PepperDashEssentials/UIDrivers/enums and base.cs +++ /dev/null @@ -1,158 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharpPro.DeviceSupport; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials -{ - public enum eAvSubpageType - { - NoControls, - PowerOff, - SetupFullDistributed, - SourceWaitOverlay, - TopBar, - VolumePopup, - ZoneSource - } - - public enum eAvSourceSubpageType - { - AppleTv, - Radio, - Roku - } - - public enum eCommonSubpageType - { - GenericModal, - Home, - PanelSetup, - Weather - } - - public enum eAvSmartObjects - { - RoomList, - SourceList - } - - public enum eCommonSmartObjects - { - HomePageList - } - - /// - /// - /// - public abstract class PanelDriverBase - { - /// - /// - /// - public bool IsVisible { get; private set; } - - public bool WasVisibleWhenHidden { get; private set; } - - /// - /// Makes sure you call this. - /// Sets IsVisible and attaches back/home buttons to BackButtonPressed - /// - public virtual void Show() - { - IsVisible = true; - TriList.SetSigFalseAction(15002, BackButtonPressed); - } - - /// - /// Will show if this was visible when Hide was called (for group hiding/showing) - /// - public void Restore() - { - if (WasVisibleWhenHidden) - Show(); - } - - /// - /// Only sets IsVisible - /// - public virtual void Hide() - { - WasVisibleWhenHidden = IsVisible; - IsVisible = false; - } - - /// - /// Toggles visibility of this driver - /// - public virtual void Toggle() - { - if (IsVisible) - Hide(); - else - Show(); - } - - /// - /// Override with specific back button behavior. Default is empty - /// - public virtual void BackButtonPressed() - { - } - - public PanelDriverBase(BasicTriListWithSmartObject triList) - { - TriList = triList; - } - - #region IBasicTriListWithSmartObject Members - - /// - /// - /// - public void AddSmartObjectHelper(uint id, object controller) - { - SmartObjectControllers.Add(id, controller); - } - - /// - /// - /// - public void RemoveSmartObjectHelper(uint id) - { - SmartObjectControllers.Remove(id); - } - - Dictionary SmartObjectControllers = new Dictionary(); - - /// - /// The trilist object for the Crestron TP device - /// - public BasicTriListWithSmartObject TriList { get; private set; } - - /// - /// - /// - /// - /// - public bool ContainsSmartObjectHelper(uint id) - { - return SmartObjectControllers.ContainsKey(id); - } - - /// - /// - /// - /// - /// - public object GetSmartObjectHelper(uint id) - { - if (SmartObjectControllers.ContainsKey(id)) - return SmartObjectControllers[id]; - else - return null; - } - - #endregion - } -} \ No newline at end of file diff --git a/devjson commands.json b/docs/devjson commands.json similarity index 100% rename from devjson commands.json rename to docs/devjson commands.json diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase.sln b/essentials-framework/Essentials Core/PepperDashEssentialsBase.sln deleted file mode 100644 index a51c8c5d..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDash_Essentials_Core", "PepperDashEssentialsBase\PepperDash_Essentials_Core.csproj", "{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DigitalLoggerJoinMap.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DigitalLoggerJoinMap.cs deleted file mode 100644 index 5a7d00a6..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DigitalLoggerJoinMap.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; - -namespace PepperDash.Essentials.Core.Bridges -{ - [Obsolete("This Device will be moved to a plugin in a future update")] - public class DigitalLoggerJoinMap : JoinMapBase - { - public uint IsOnline { get; set; } - public uint CircuitNames { get; set; } - public uint CircuitState { get; set; } - public uint CircuitCycle { get; set; } - public uint CircuitIsCritical { get; set; } - public uint CircuitOnCmd { get; set; } - public uint CircuitOffCmd { get; set; } - - public DigitalLoggerJoinMap() - { - // Digital - IsOnline = 9; - CircuitState = 0; - CircuitCycle = 0; - CircuitIsCritical = 10; - CircuitOnCmd = 10; - CircuitOffCmd = 20; - // Serial - CircuitNames = 0; - // Analog - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - IsOnline = IsOnline + joinOffset; - CircuitNames = CircuitNames + joinOffset; - CircuitState = CircuitState + joinOffset; - CircuitCycle = CircuitCycle + joinOffset; - CircuitIsCritical = CircuitIsCritical + joinOffset; - CircuitOnCmd = CircuitOnCmd + joinOffset; - CircuitOffCmd = CircuitOffCmd + joinOffset; - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/GlsPartitionSensorJoinMap.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/GlsPartitionSensorJoinMap.cs deleted file mode 100644 index 5a583d69..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/GlsPartitionSensorJoinMap.cs +++ /dev/null @@ -1,300 +0,0 @@ -using System; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Core.Bridges.JoinMaps -{ - public class GlsPartitionSensorJoinMap : JoinMapBaseAdvanced - { - - #region Digital - - [JoinName("IsOnline")] - public JoinDataComplete IsOnline = new JoinDataComplete( - new JoinData - { - JoinNumber = 1, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Is Online", - JoinCapabilities = eJoinCapabilities.ToSIMPL, - JoinType = eJoinType.Digital - }); - - - [JoinName("Enable")] - public JoinDataComplete Enable = new JoinDataComplete( - new JoinData - { - JoinNumber = 2, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Enable", - JoinCapabilities = eJoinCapabilities.ToFromSIMPL, - JoinType = eJoinType.Digital - }); - - [JoinName("PartitionSensed")] - public JoinDataComplete PartitionSensed = new JoinDataComplete( - new JoinData - { - JoinNumber = 3, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Partition Sensed", - JoinCapabilities = eJoinCapabilities.ToSIMPL, - JoinType = eJoinType.Digital - }); - - [JoinName("PartitionNotSensed")] - public JoinDataComplete PartitionNotSensed = new JoinDataComplete( - new JoinData - { - JoinNumber = 4, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Partition Not Sensed", - JoinCapabilities = eJoinCapabilities.ToSIMPL, - JoinType = eJoinType.Digital - }); - - [JoinName("IncreaseSensitivity")] - public JoinDataComplete IncreaseSensitivity = new JoinDataComplete( - new JoinData - { - JoinNumber = 6, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Increase Sensitivity", - JoinCapabilities = eJoinCapabilities.FromSIMPL, - JoinType = eJoinType.Digital - }); - - [JoinName("DecreaseSensitivity")] - public JoinDataComplete DecreaseSensitivity = new JoinDataComplete( - new JoinData - { - JoinNumber = 7, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Decrease Sensitivity", - JoinCapabilities = eJoinCapabilities.FromSIMPL, - JoinType = eJoinType.Digital - }); - - #endregion - - #region Analog - - [JoinName("Sensitivity")] - public JoinDataComplete Sensitivity = new JoinDataComplete( - new JoinData - { - JoinNumber = 2, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Sensitivity", - JoinCapabilities = eJoinCapabilities.ToFromSIMPL, - JoinType = eJoinType.Analog - }); - - #endregion - - - #region Serial - - [JoinName("Name")] - public JoinDataComplete Name = new JoinDataComplete( - new JoinData - { - JoinNumber = 1, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Name", - JoinCapabilities = eJoinCapabilities.ToSIMPL, - JoinType = eJoinType.Serial - }); - - #endregion - - - /// - /// Constructor to use when instantiating this Join Map without inheriting from it - /// - /// Join this join map will start at - public GlsPartitionSensorJoinMap(uint joinStart) - : this(joinStart, typeof(GlsPartitionSensorJoinMap)) - { - - } - - /// - /// Constructor to use when extending this Join map - /// - /// Join this join map will start at - /// Type of the child join map - protected GlsPartitionSensorJoinMap(uint joinStart, Type type) - : base(joinStart, type) - { - - } - } -} - -namespace PepperDash_Essentials_Core.Bridges.JoinMaps -{ - /// - /// - /// - [Obsolete("use PepperDash.Essentials.Core.Bridges.JoinMaps version")] - public class GlsPartitionSensorJoinMap:JoinMapBaseAdvanced - { - [JoinName("IsOnline")] - public JoinDataComplete IsOnline = new JoinDataComplete( - new JoinData - { - JoinNumber = 1, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Is Online", - JoinCapabilities = eJoinCapabilities.ToSIMPL, - JoinType = eJoinType.Digital - }); - - [JoinName("Name")] - public JoinDataComplete Name = new JoinDataComplete( - new JoinData - { - JoinNumber = 1, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Name", - JoinCapabilities = eJoinCapabilities.ToSIMPL, - JoinType = eJoinType.Serial - }); - - [JoinName("Enable")] - public JoinDataComplete Enable = new JoinDataComplete( - new JoinData - { - JoinNumber = 2, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Enable", - JoinCapabilities = eJoinCapabilities.ToFromSIMPL, - JoinType = eJoinType.Digital - }); - - [JoinName("PartitionSensed")] - public JoinDataComplete PartitionSensed = new JoinDataComplete( - new JoinData - { - JoinNumber = 3, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Partition Sensed", - JoinCapabilities = eJoinCapabilities.ToSIMPL, - JoinType = eJoinType.Digital - }); - - [JoinName("PartitionNotSensed")] - public JoinDataComplete PartitionNotSensed = new JoinDataComplete( - new JoinData - { - JoinNumber = 4, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Partition Not Sensed", - JoinCapabilities = eJoinCapabilities.ToSIMPL, - JoinType = eJoinType.Digital - }); - - [JoinName("IncreaseSensitivity")] - public JoinDataComplete IncreaseSensitivity = new JoinDataComplete( - new JoinData - { - JoinNumber = 6, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Increase Sensitivity", - JoinCapabilities = eJoinCapabilities.FromSIMPL, - JoinType = eJoinType.Digital - }); - - [JoinName("DecreaseSensitivity")] - public JoinDataComplete DecreaseSensitivity = new JoinDataComplete( - new JoinData - { - JoinNumber = 7, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Decrease Sensitivity", - JoinCapabilities = eJoinCapabilities.FromSIMPL, - JoinType = eJoinType.Digital - }); - - [JoinName("Sensitivity")] - public JoinDataComplete Sensitivity = new JoinDataComplete( - new JoinData - { - JoinNumber = 2, - JoinSpan = 1 - }, - new JoinMetadata - { - Description = "Sensor Sensitivity", - JoinCapabilities = eJoinCapabilities.ToFromSIMPL, - JoinType = eJoinType.Analog - }); - - /// - /// Constructor to use when instantiating this Join Map without inheriting from it - /// - /// Join this join map will start at - public GlsPartitionSensorJoinMap(uint joinStart) - : this(joinStart, typeof(GlsPartitionSensorJoinMap)) - { - - } - - /// - /// Constructor to use when extending this Join map - /// - /// Join this join map will start at - /// Type of the child join map - protected GlsPartitionSensorJoinMap(uint joinStart, Type type) - : base(joinStart, type) - { - - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/C2nIo/C2nIoController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/C2nIo/C2nIoController.cs deleted file mode 100644 index f1f1891d..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/C2nIo/C2nIoController.cs +++ /dev/null @@ -1,106 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.GeneralIO; -using PepperDash.Core; -using PepperDash.Essentials.Core.Bridges; -using PepperDash.Essentials.Core.Config; - -namespace PepperDash.Essentials.Core.CrestronIO -{ - public class C2NIoController:CrestronGenericBaseDevice, IComPorts, IIROutputPorts, IRelayPorts - { - private C2nIo _device; - - public C2NIoController(string key, Func preActivationFunc, DeviceConfig config):base(key, config.Name) - { - AddPreActivationAction(() => - { - _device = preActivationFunc(config); - - RegisterCrestronGenericBase(_device); - }); - } - - #region Implementation of IComPorts - - public CrestronCollection ComPorts - { - get { return _device.ComPorts; } - } - - public int NumberOfComPorts - { - get { return _device.NumberOfComPorts; } - } - - #endregion - - #region Implementation of IIROutputPorts - - public CrestronCollection IROutputPorts - { - get { return _device.IROutputPorts; } - } - - public int NumberOfIROutputPorts - { - get { return _device.NumberOfIROutputPorts; } - } - - #endregion - - #region Implementation of IRelayPorts - - public CrestronCollection RelayPorts - { - get { return _device.RelayPorts; } - } - - public int NumberOfRelayPorts - { - get { return _device.NumberOfRelayPorts; } - } - - #endregion - } - - public class C2NIoControllerFactory : EssentialsDeviceFactory - { - public C2NIoControllerFactory() - { - TypeNames = new List() { "c2nio" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new C2N-IO Device"); - - return new C2NIoController(dc.Key, GetC2NIoDevice, dc); - } - - static C2nIo GetC2NIoDevice(DeviceConfig dc) - { - var control = CommFactory.GetControlPropertiesConfig(dc); - var cresnetId = control.CresnetIdInt; - var branchId = control.ControlPortNumber; - var parentKey = string.IsNullOrEmpty(control.ControlPortDevKey) ? "processor" : control.ControlPortDevKey; - - if (parentKey.Equals("processor", StringComparison.CurrentCultureIgnoreCase)) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new C2nIo", parentKey); - return new C2nIo(cresnetId, Global.ControlSystem); - } - var cresnetBridge = DeviceManager.GetDeviceForKey(parentKey) as IHasCresnetBranches; - - if (cresnetBridge != null) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new C2nIo", parentKey); - return new C2nIo(cresnetId, cresnetBridge.CresnetBranches[branchId]); - } - Debug.Console(0, "Device {0} is not a valid cresnet master", parentKey); - return null; - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/C2nRts/C2nRthsController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/C2nRts/C2nRthsController.cs deleted file mode 100644 index e1aa545e..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/C2nRts/C2nRthsController.cs +++ /dev/null @@ -1,148 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.GeneralIO; -using Newtonsoft.Json; -using PepperDash.Core; -using PepperDash.Essentials.Core.Bridges; -using PepperDash.Essentials.Core.Config; - - -namespace PepperDash.Essentials.Core.CrestronIO -{ - [Description("Wrapper class for the C2N-RTHS sensor")] - public class C2nRthsController : CrestronGenericBridgeableBaseDevice - { - private C2nRths _device; - - public IntFeedback TemperatureFeedback { get; private set; } - public IntFeedback HumidityFeedback { get; private set; } - - public C2nRthsController(string key, Func preActivationFunc, - DeviceConfig config) - : base(key, config.Name) - { - - AddPreActivationAction(() => - { - _device = preActivationFunc(config); - - RegisterCrestronGenericBase(_device); - - TemperatureFeedback = new IntFeedback(() => _device.TemperatureFeedback.UShortValue); - HumidityFeedback = new IntFeedback(() => _device.HumidityFeedback.UShortValue); - - if (_device != null) _device.BaseEvent += DeviceOnBaseEvent; - }); - } - - - private void DeviceOnBaseEvent(GenericBase device, BaseEventArgs args) - { - switch (args.EventId) - { - case C2nRths.TemperatureFeedbackEventId: - TemperatureFeedback.FireUpdate(); - break; - case C2nRths.HumidityFeedbackEventId: - HumidityFeedback.FireUpdate(); - break; - } - } - - public void SetTemperatureFormat(bool setToC) - { - _device.TemperatureFormat.BoolValue = setToC; - } - - public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) - { - var joinMap = new C2nRthsControllerJoinMap(joinStart); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - if (bridge != null) - { - bridge.AddJoinMap(Key, joinMap); - } - else - { - Debug.Console(0, this, "Please update config to use 'eiscapiadvanced' to get all join map features for this device."); - } - - Debug.Console(1, this, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - - trilist.SetBoolSigAction(joinMap.TemperatureFormat.JoinNumber, SetTemperatureFormat); - - - - IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]); - TemperatureFeedback.LinkInputSig(trilist.UShortInput[joinMap.Temperature.JoinNumber]); - HumidityFeedback.LinkInputSig(trilist.UShortInput[joinMap.Humidity.JoinNumber]); - - trilist.StringInput[joinMap.Name.JoinNumber].StringValue = Name; - - trilist.OnlineStatusChange += (d, args) => - { - if (!args.DeviceOnLine) return; - - UpdateFeedbacksWhenOnline(); - - trilist.StringInput[joinMap.Name.JoinNumber].StringValue = Name; - }; - } - - private void UpdateFeedbacksWhenOnline() - { - IsOnline.FireUpdate(); - TemperatureFeedback.FireUpdate(); - HumidityFeedback.FireUpdate(); - } - - #region PreActivation - - private static C2nRths GetC2nRthsDevice(DeviceConfig dc) - { - var control = CommFactory.GetControlPropertiesConfig(dc); - var cresnetId = control.CresnetIdInt; - var branchId = control.ControlPortNumber; - var parentKey = string.IsNullOrEmpty(control.ControlPortDevKey) ? "processor" : control.ControlPortDevKey; - - if (parentKey.Equals("processor", StringComparison.CurrentCultureIgnoreCase)) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new C2nRths", parentKey); - return new C2nRths(cresnetId, Global.ControlSystem); - } - var cresnetBridge = DeviceManager.GetDeviceForKey(parentKey) as IHasCresnetBranches; - - if (cresnetBridge != null) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new C2nRths", parentKey); - return new C2nRths(cresnetId, cresnetBridge.CresnetBranches[branchId]); - } - Debug.Console(0, "Device {0} is not a valid cresnet master", parentKey); - return null; - } - #endregion - - public class C2nRthsControllerFactory : EssentialsDeviceFactory - { - public C2nRthsControllerFactory() - { - TypeNames = new List() { "c2nrths" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new C2N-RTHS Device"); - - return new C2nRthsController(dc.Key, GetC2nRthsDevice, dc); - } - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3CardControllerBase.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3CardControllerBase.cs deleted file mode 100644 index bfb81acd..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3CardControllerBase.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using Crestron.SimplSharpProInternal; - -namespace PepperDash.Essentials.Core.CrestronIO.Cards -{ - public class C3CardControllerBase:CrestronGenericBaseDevice - { - private readonly C3Card _card; - - public C3CardControllerBase(string key, string name, C3Card hardware) : base(key, name, hardware) - { - _card = hardware; - } - - #region Overrides of Object - - public override string ToString() - { - return String.Format("{0} {1}", Key, _card.ToString()); - } - - #endregion - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Com3Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Com3Controller.cs deleted file mode 100644 index 9658b2bb..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Com3Controller.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.ThreeSeriesCards; - -namespace PepperDash.Essentials.Core.CrestronIO.Cards -{ - public class C3Com3Controller:C3CardControllerBase, IComPorts - { - private readonly C3com3 _card; - - public C3Com3Controller(string key, string name, C3com3 hardware) : base(key, name, hardware) - { - _card = hardware; - } - - #region Implementation of IComPorts - - public CrestronCollection ComPorts - { - get { return _card.ComPorts; } - } - - public int NumberOfComPorts - { - get { return _card.NumberOfComPorts; } - } - - #endregion - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Io16Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Io16Controller.cs deleted file mode 100644 index bdf4742d..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Io16Controller.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.ThreeSeriesCards; - -namespace PepperDash.Essentials.Core.CrestronIO.Cards -{ - public class C3Io16Controller:C3CardControllerBase,IIOPorts - { - private readonly C3io16 _card; - - public C3Io16Controller(string key, string name, C3io16 hardware) : base(key, name, hardware) - { - _card = hardware; - } - - #region Implementation of IIOPorts - - public CrestronCollection VersiPorts - { - get { return _card.VersiPorts; } - } - - public int NumberOfVersiPorts - { - get { return _card.NumberOfVersiPorts; } - } - - #endregion - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Ir8Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Ir8Controller.cs deleted file mode 100644 index c35d2038..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Ir8Controller.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.ThreeSeriesCards; - -namespace PepperDash.Essentials.Core.CrestronIO.Cards -{ - public class C3Ir8Controller:C3CardControllerBase, IIROutputPorts - { - private readonly C3ir8 _card; - - public C3Ir8Controller(string key, string name, C3ir8 hardware) : base(key, name, hardware) - { - _card = hardware; - } - - #region Implementation of IIROutputPorts - - public CrestronCollection IROutputPorts - { - get { return _card.IROutputPorts; } - } - - public int NumberOfIROutputPorts - { - get { return _card.NumberOfIROutputPorts; } - } - - #endregion - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Ry16Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Ry16Controller.cs deleted file mode 100644 index a68ecaf0..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Ry16Controller.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.ThreeSeriesCards; - -namespace PepperDash.Essentials.Core.CrestronIO.Cards -{ - public class C3Ry16Controller:C3CardControllerBase, IRelayPorts - { - private readonly C3ry16 _card; - - public C3Ry16Controller(string key, string name, C3ry16 hardware) : base(key, name, hardware) - { - _card = hardware; - } - - #region Implementation of IRelayPorts - - public CrestronCollection RelayPorts - { - get { return _card.RelayPorts; } - } - - public int NumberOfRelayPorts - { - get { return _card.NumberOfRelayPorts; } - } - - #endregion - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Ry8Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Ry8Controller.cs deleted file mode 100644 index 2fc5fa1b..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/C3Ry8Controller.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.ThreeSeriesCards; - -namespace PepperDash.Essentials.Core.CrestronIO.Cards -{ - public class C3Ry8Controller:C3CardControllerBase, IRelayPorts - { - private readonly C3ry8 _card; - - public C3Ry8Controller(string key, string name, C3ry8 hardware) : base(key, name, hardware) - { - _card = hardware; - } - - #region Implementation of IRelayPorts - - public CrestronCollection RelayPorts - { - get { return _card.RelayPorts; } - } - - public int NumberOfRelayPorts - { - get { return _card.NumberOfRelayPorts; } - } - - #endregion - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/CenCi31Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/CenCi31Controller.cs deleted file mode 100644 index a6daa591..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/CenCi31Controller.cs +++ /dev/null @@ -1,116 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharpPro.ThreeSeriesCards; -using Newtonsoft.Json; -using PepperDash.Core; -using PepperDash.Essentials.Core.Config; - -namespace PepperDash.Essentials.Core.CrestronIO.Cards -{ - [ConfigSnippet("\"properties\":{\"card\":\"c3com3\"}")] - public class CenCi31Controller : CrestronGenericBaseDevice - { - private const string CardKeyTemplate = "{0}-card"; - private const string CardNameTemplate = "{0}:{1}:{2}"; - private const uint CardSlot = 1; - private readonly CenCi31 _cardCage; - private readonly CenCi31Configuration _config; - - private readonly Dictionary> _cardDict; - - public CenCi31Controller(string key, string name, CenCi31Configuration config, CenCi31 hardware) : base(key, name, hardware) - { - _cardCage = hardware; - - _config = config; - - _cardDict = new Dictionary> - { - { - "c3com3", - (c, s) => - new C3Com3Controller(String.Format(CardKeyTemplate, key), - String.Format(CardNameTemplate, key, s, "C3Com3"), new C3com3(_cardCage)) - }, - { - "c3io16", - (c, s) => - new C3Io16Controller(String.Format(CardKeyTemplate, key), - String.Format(CardNameTemplate, key, s,"C3Io16"), new C3io16(_cardCage)) - }, - { - "c3ir8", - (c, s) => - new C3Ir8Controller(String.Format(CardKeyTemplate, key), - String.Format(CardNameTemplate, key, s, "C3Ir8"), new C3ir8(_cardCage)) - }, - { - "c3ry16", - (c, s) => - new C3Ry16Controller(String.Format(CardKeyTemplate, key), - String.Format(CardNameTemplate, key, s, "C3Ry16"), new C3ry16(_cardCage)) - }, - { - "c3ry8", - (c, s) => - new C3Ry8Controller(String.Format(CardKeyTemplate, key), - String.Format(CardNameTemplate, key, s, "C3Ry8"), new C3ry8(_cardCage)) - }, - - }; - - GetCards(); - } - - private void GetCards() - { - Func cardBuilder; - - if (String.IsNullOrEmpty(_config.Card)) - { - Debug.Console(0, this, "No card specified"); - return; - } - - if (!_cardDict.TryGetValue(_config.Card.ToLower(), out cardBuilder)) - { - Debug.Console(0, "Unable to find factory for 3-Series card type {0}.", _config.Card); - return; - } - - var device = cardBuilder(_cardCage, CardSlot); - - DeviceManager.AddDevice(device); - } - } - - public class CenCi31Configuration - { - [JsonProperty("card")] - public string Card { get; set; } - } - - public class CenCi31ControllerFactory : EssentialsDeviceFactory - { - public CenCi31ControllerFactory() - { - TypeNames = new List {"cenci31"}; - } - #region Overrides of EssentialsDeviceFactory - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory attempting to build new CEN-CI-1"); - - var controlProperties = CommFactory.GetControlPropertiesConfig(dc); - var ipId = controlProperties.IpIdInt; - - var cardCage = new CenCi31(ipId, Global.ControlSystem); - var config = dc.Properties.ToObject(); - - return new CenCi31Controller(dc.Key, dc.Name, config, cardCage); - } - - #endregion - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/CenCi33Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/CenCi33Controller.cs deleted file mode 100644 index 3b054c00..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/CenCi33Controller.cs +++ /dev/null @@ -1,131 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharpPro.ThreeSeriesCards; -using Newtonsoft.Json; -using PepperDash.Core; -using PepperDash.Essentials.Core.Config; - -namespace PepperDash.Essentials.Core.CrestronIO.Cards -{ - [ConfigSnippet("\"properties\":{\"cards\":{\"1\":\"c3com3\",\"2\":\"c3ry16\",\"3\":\"c3ry8\"}}")] - public class CenCi33Controller : CrestronGenericBaseDevice - { - private const string CardKeyTemplate = "{0}-card{1}"; - private const string CardNameTemplate = "{0}:{1}:{2}"; - private const uint CardSlots = 3; - private readonly CenCi33 _cardCage; - private readonly CenCi33Configuration _config; - - private readonly Dictionary> _cardDict; - - public CenCi33Controller(string key, string name, CenCi33Configuration config, CenCi33 hardware) : base(key, name, hardware) - { - _cardCage = hardware; - - _config = config; - - _cardDict = new Dictionary> - { - { - "c3com3", - (c, s) => - new C3Com3Controller(String.Format(CardKeyTemplate, key, s), - String.Format(CardNameTemplate, key, s, "C3Com3"), new C3com3(s,_cardCage)) - }, - { - "c3io16", - (c, s) => - new C3Io16Controller(String.Format(CardKeyTemplate, key, s), - String.Format(CardNameTemplate, key, s, "C3Io16"), new C3io16(s,_cardCage)) - }, - { - "c3ir8", - (c, s) => - new C3Ir8Controller(String.Format(CardKeyTemplate, key, s), - String.Format(CardNameTemplate, key, s, "C3Ir8"), new C3ir8(s,_cardCage)) - }, - { - "c3ry16", - (c, s) => - new C3Ry16Controller(String.Format(CardKeyTemplate, key, s), - String.Format(CardNameTemplate, key, s, "C3Ry16"), new C3ry16(s,_cardCage)) - }, - { - "c3ry8", - (c, s) => - new C3Ry8Controller(String.Format(CardKeyTemplate, key, s), - String.Format(CardNameTemplate, key, s, "C3Ry8"), new C3ry8(s,_cardCage)) - }, - - }; - - GetCards(); - } - - private void GetCards() - { - if (_config.Cards == null) - { - Debug.Console(0, this, "No card configuration for this device found"); - return; - } - - for (uint i = 1; i <= CardSlots; i++) - { - string cardType; - if (!_config.Cards.TryGetValue(i, out cardType)) - { - Debug.Console(1, this, "No card found for slot {0}", i); - continue; - } - - if (String.IsNullOrEmpty(cardType)) - { - Debug.Console(0, this, "No card specified for slot {0}", i); - return; - } - - Func cardBuilder; - if (!_cardDict.TryGetValue(cardType.ToLower(), out cardBuilder)) - { - Debug.Console(0, "Unable to find factory for 3-Series card type {0}.", cardType); - return; - } - - var device = cardBuilder(_cardCage, i); - - DeviceManager.AddDevice(device); - } - } - } - - public class CenCi33Configuration - { - [JsonProperty("cards")] - public Dictionary Cards { get; set; } - } - - public class CenCi33ControllerFactory : EssentialsDeviceFactory - { - public CenCi33ControllerFactory() - { - TypeNames = new List {"cenci33"}; - } - #region Overrides of EssentialsDeviceFactory - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory attempting to build new CEN-CI-3"); - - var controlProperties = CommFactory.GetControlPropertiesConfig(dc); - var ipId = controlProperties.IpIdInt; - - var cardCage = new CenCi33(ipId, Global.ControlSystem); - var config = dc.Properties.ToObject(); - - return new CenCi33Controller(dc.Key, dc.Name, config, cardCage); - } - - #endregion - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/InternalCardCageController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/InternalCardCageController.cs deleted file mode 100644 index 964edd5c..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Cards/InternalCardCageController.cs +++ /dev/null @@ -1,141 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharpPro.ThreeSeriesCards; -using Newtonsoft.Json; -using PepperDash.Core; -using PepperDash.Essentials.Core.Config; - -namespace PepperDash.Essentials.Core.CrestronIO.Cards -{ - [ConfigSnippet("\"properties\":{\"cards\":{\"1\":\"c3com3\",\"2\":\"c3ry16\",\"3\":\"c3ry8\"}}")] - public class InternalCardCageController : EssentialsDevice - { - private const string CardKeyTemplate = "{0}-card{1}"; - private const string CardNameTemplate = "{0}:{1}:{2}"; - private const uint CardSlots = 3; - - private readonly InternalCardCageConfiguration _config; - - private readonly Dictionary> _cardDict; - - public InternalCardCageController(string key, string name, InternalCardCageConfiguration config) : base(key, name) - { - _config = config; - - _cardDict = new Dictionary> - { - { - "c3com3", - (s) => - new C3Com3Controller(String.Format(CardKeyTemplate, key, s), - String.Format(CardNameTemplate, key, s, "C3Com3"), new C3com3(s,Global.ControlSystem)) - }, - { - "c3io16", - (s) => - new C3Io16Controller(String.Format(CardKeyTemplate, key, s), - String.Format(CardNameTemplate, key, s, "C3Io16"), new C3io16(s,Global.ControlSystem)) - }, - { - "c3ir8", - (s) => - new C3Ir8Controller(String.Format(CardKeyTemplate, key, s), - String.Format(CardNameTemplate, key, s, "C3Ir8"), new C3ir8(s,Global.ControlSystem)) - }, - { - "c3ry16", - (s) => - new C3Ry16Controller(String.Format(CardKeyTemplate, key, s), - String.Format(CardNameTemplate, key, s, "C3Ry16"), new C3ry16(s,Global.ControlSystem)) - }, - { - "c3ry8", - (s) => - new C3Ry8Controller(String.Format(CardKeyTemplate, key, s), - String.Format(CardNameTemplate, key, s, "C3Ry8"), new C3ry8(s,Global.ControlSystem)) - }, - - }; - - GetCards(); - } - - private void GetCards() - { - if (_config.Cards == null) - { - Debug.Console(0, this, "No card configuration for this device found"); - return; - } - - for (uint i = 1; i <= CardSlots; i++) - { - string cardType; - if (!_config.Cards.TryGetValue(i, out cardType)) - { - Debug.Console(0, this, "No card found for slot {0}", i); - continue; - } - - if (String.IsNullOrEmpty(cardType)) - { - Debug.Console(0, this, "No card specified for slot {0}", i); - continue; - } - - Func cardBuilder; - if (!_cardDict.TryGetValue(cardType.ToLower(), out cardBuilder)) - { - Debug.Console(0, "Unable to find factory for 3-Series card type {0}.", cardType); - continue; - } - - try - { - var device = cardBuilder(i); - - - DeviceManager.AddDevice(device); - } - catch (InvalidOperationException ex) - { - Debug.Console(0, this, Debug.ErrorLogLevel.Error, - "Unable to add card {0} to internal card cage.\r\nError Message: {1}\r\nStack Trace: {2}", - cardType, ex.Message, ex.StackTrace); - } - } - } - } - - public class InternalCardCageConfiguration - { - [JsonProperty("cards")] - public Dictionary Cards { get; set; } - } - - public class InternalCardCageControllerFactory : EssentialsDeviceFactory - { - public InternalCardCageControllerFactory() - { - TypeNames = new List {"internalcardcage"}; - } - #region Overrides of EssentialsDeviceFactory - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory attempting to build new Internal Card Cage Controller"); - - if (!Global.ControlSystem.SupportsThreeSeriesPlugInCards) - { - Debug.Console(0, Debug.ErrorLogLevel.Warning, "Current control system does NOT support 3-Series cards. Everything is NOT awesome."); - return null; - } - - var config = dc.Properties.ToObject(); - - return new InternalCardCageController(dc.Key, dc.Name, config); - } - - #endregion - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/DinCenCn/DinCenCnController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/DinCenCn/DinCenCnController.cs deleted file mode 100644 index 7e9179fe..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/DinCenCn/DinCenCnController.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Collections.Generic; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.GeneralIO; -using PepperDash.Core; -using PepperDash.Essentials.Core.Config; - - -namespace PepperDash.Essentials.Core -{ - public class DinCenCn2Controller : CrestronGenericBaseDevice, IHasCresnetBranches - { - private readonly DinCenCn2 _device; - - public CrestronCollection CresnetBranches - { - get { - return _device != null ? _device.Branches : null; - } - } - - public DinCenCn2Controller(string key, string name, DinCenCn2 device, DeviceConfig config) - : base(key, name, device) - { - _device = device; - } - - public class DinCenCn2ControllerFactory : EssentialsDeviceFactory - { - public DinCenCn2ControllerFactory() - { - TypeNames = new List() { "dincencn2", "dincencn2poe", "din-cencn2", "din-cencn2-poe" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new DIN-CEN-CN2 Device"); - - var control = CommFactory.GetControlPropertiesConfig(dc); - var ipid = control.IpIdInt; - - if (dc.Type.ToLower().Contains("poe")) - { - return new DinCenCn2Controller(dc.Key, dc.Name, new DinCenCn2Poe(ipid, Global.ControlSystem), dc); - } - - return new DinCenCn2Controller(dc.Key, dc.Name, new DinCenCn2(ipid, Global.ControlSystem), dc); - } - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/DinIo8/DinIo8Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/DinIo8/DinIo8Controller.cs deleted file mode 100644 index 794fe609..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/DinIo8/DinIo8Controller.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.GeneralIO; -using PepperDash.Core; -using PepperDash.Essentials.Core.Bridges; -using PepperDash.Essentials.Core.Config; - -namespace PepperDash.Essentials.Core.CrestronIO -{ - public class DinIo8Controller:CrestronGenericBaseDevice, IIOPorts - { - private DinIo8 _device; - - public DinIo8Controller(string key, Func preActivationFunc, DeviceConfig config):base(key, config.Name) - { - AddPreActivationAction(() => - { - _device = preActivationFunc(config); - - RegisterCrestronGenericBase(_device); - }); - } - - #region Implementation of IIOPorts - - public CrestronCollection VersiPorts - { - get { return _device.VersiPorts; } - } - - public int NumberOfVersiPorts - { - get { return _device.NumberOfVersiPorts; } - } - - #endregion - - - } - - public class DinIo8ControllerFactory : EssentialsDeviceFactory - { - public DinIo8ControllerFactory() - { - TypeNames = new List() { "DinIo8" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new DinIo8 Device"); - - return new DinIo8Controller(dc.Key, GetDinIo8Device, dc); - } - - static DinIo8 GetDinIo8Device(DeviceConfig dc) - { - var control = CommFactory.GetControlPropertiesConfig(dc); - var cresnetId = control.CresnetIdInt; - var branchId = control.ControlPortNumber; - var parentKey = string.IsNullOrEmpty(control.ControlPortDevKey) ? "processor" : control.ControlPortDevKey; - - if (parentKey.Equals("processor", StringComparison.CurrentCultureIgnoreCase)) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new DinIo8", parentKey); - return new DinIo8(cresnetId, Global.ControlSystem); - } - var cresnetBridge = DeviceManager.GetDeviceForKey(parentKey) as IHasCresnetBranches; - - if (cresnetBridge != null) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new DinIo8", parentKey); - return new DinIo8(cresnetId, cresnetBridge.CresnetBranches[branchId]); - } - Debug.Console(0, "Device {0} is not a valid cresnet master", parentKey); - return null; - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Inputs/CenIoDigIn104Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Inputs/CenIoDigIn104Controller.cs deleted file mode 100644 index bdbcc2e9..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Inputs/CenIoDigIn104Controller.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.GeneralIO; -using PepperDash.Essentials.Core.Config; - - -using PepperDash.Core; - -namespace PepperDash.Essentials.Core -{ - /// - /// Wrapper class for CEN-IO-DIGIN-104 digital input module - /// - [Description("Wrapper class for the CEN-IO-DIGIN-104 diginal input module")] - public class CenIoDigIn104Controller : CrestronGenericBaseDevice, IDigitalInputPorts - { - public CenIoDi104 Di104 { get; private set; } - - public CenIoDigIn104Controller(string key, string name, CenIoDi104 di104) - : base(key, name) - { - Di104 = di104; - } - - #region IDigitalInputPorts Members - - public CrestronCollection DigitalInputPorts - { - get { return Di104.DigitalInputPorts; } - } - - public int NumberOfDigitalInputPorts - { - get { return Di104.NumberOfDigitalInputPorts; } - } - - #endregion - } - - public class CenIoDigIn104ControllerFactory : EssentialsDeviceFactory - { - public CenIoDigIn104ControllerFactory() - { - TypeNames = new List() { "ceniodigin104" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new CEN-DIGIN-104 Device"); - - var control = CommFactory.GetControlPropertiesConfig(dc); - if (control == null) - { - Debug.Console(1, "Factory failed to create a new CEN-DIGIN-104 Device, control properties not found"); - return null; - } - var ipid = control.IpIdInt; - if (ipid != 0) return new CenIoDigIn104Controller(dc.Key, dc.Name, new CenIoDi104(ipid, Global.ControlSystem)); - - Debug.Console(1, "Factory failed to create a new CEN-IO-IR-104 Device using IP-ID-{0}", ipid); - return null; - } - } - -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Ir/CenIoIr104Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Ir/CenIoIr104Controller.cs deleted file mode 100644 index 3fa45dd7..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Ir/CenIoIr104Controller.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.GeneralIO; -using PepperDash.Essentials.Core.Config; - - -using PepperDash.Core; - -namespace PepperDash.Essentials.Core -{ - /// - /// Wrapper class for CEN-IO-IR-104 module - /// - [Description("Wrapper class for the CEN-IO-IR-104 module")] - public class CenIoIr104Controller : CrestronGenericBaseDevice, IIROutputPorts - { - private readonly CenIoIr104 _ir104; - - /// - /// Constructor - /// - /// - /// - /// - public CenIoIr104Controller(string key, string name, CenIoIr104 ir104) - : base(key, name, ir104) - { - _ir104 = ir104; - } - - #region IDigitalInputPorts Members - - /// - /// IR port collection - /// - public CrestronCollection IROutputPorts - { - get { return _ir104.IROutputPorts; } - } - - /// - /// Number of relay ports property - /// - public int NumberOfIROutputPorts - { - get { return _ir104.NumberOfIROutputPorts; } - } - - #endregion - } - - /// - /// CEN-IO-IR-104 controller fatory - /// - public class CenIoIr104ControllerFactory : EssentialsDeviceFactory - { - /// - /// Constructor - /// - public CenIoIr104ControllerFactory() - { - TypeNames = new List() { "cenioir104" }; - } - - /// - /// Build device CEN-IO-IR-104 - /// - /// - /// - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new CEN-IO-IR-104 Device"); - - var control = CommFactory.GetControlPropertiesConfig(dc); - if (control == null) - { - Debug.Console(1, "Factory failed to create a new CEN-IO-IR-104 Device, control properties not found"); - return null; - } - - var ipid = control.IpIdInt; - if(ipid != 0) return new CenIoIr104Controller(dc.Key, dc.Name, new CenIoIr104(ipid, Global.ControlSystem)); - - Debug.Console(1, "Factory failed to create a new CEN-IO-IR-104 Device using IP-ID-{0}", ipid); - return null; - } - } - -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Relay/CenIoRy104Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Relay/CenIoRy104Controller.cs deleted file mode 100644 index e9963f4d..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/Relay/CenIoRy104Controller.cs +++ /dev/null @@ -1,77 +0,0 @@ -using System.Collections.Generic; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.GeneralIO; -using PepperDash.Core; -using PepperDash.Essentials.Core.Config; - -namespace PepperDash.Essentials.Core -{ - /// - /// Wrapper class for CEN-IO-RY-104 relay module - /// - [Description("Wrapper class for the CEN-IO-RY-104 relay module")] - public class CenIoRy104Controller : CrestronGenericBaseDevice, IRelayPorts - { - private readonly CenIoRy104 _ry104; - - /// - /// Constructor - /// - /// - /// - /// - public CenIoRy104Controller(string key, string name, CenIoRy104 ry104) - : base(key, name, ry104) - { - _ry104 = ry104; - } - - /// - /// Relay port collection - /// - public CrestronCollection RelayPorts - { - get { return _ry104.RelayPorts; } - } - - /// - /// Number of relay ports property - /// - public int NumberOfRelayPorts - { - get { return _ry104.NumberOfRelayPorts; } - } - } - - /// - /// CEN-IO-RY Controller factory - /// - public class CenIoRy104ControllerFactory : EssentialsDeviceFactory - { - /// - /// Constructor - /// - public CenIoRy104ControllerFactory() - { - TypeNames = new List() { "ceniory104" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create a new CEN-IO-RY-104 Device"); - - var controlPropertiesConfig = CommFactory.GetControlPropertiesConfig(dc); - if (controlPropertiesConfig == null) - { - Debug.Console(1, "Factory failed to create a new CEN-IO-RY-104 Device, control properties not found"); - return null; - } - - var ipid = controlPropertiesConfig.IpIdInt; - if (ipid != 0) return new CenIoRy104Controller(dc.Key, dc.Name, new CenIoRy104(ipid, Global.ControlSystem)); - - Debug.Console(1, "Factory failed to create a new CEN-IO-RY-104 Device using IP-ID-{0}", ipid); - return null; - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/StatusSign/StatusSignController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/StatusSign/StatusSignController.cs deleted file mode 100644 index 6f0cf80e..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/StatusSign/StatusSignController.cs +++ /dev/null @@ -1,223 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.GeneralIO; -using Newtonsoft.Json; -using PepperDash.Core; -using PepperDash.Essentials.Core.Bridges; -using PepperDash.Essentials.Core.Config; - -namespace PepperDash.Essentials.Core.CrestronIO -{ - [Description("Wrapper class for the Crestron StatusSign device")] - public class StatusSignController : CrestronGenericBridgeableBaseDevice - { - private StatusSign _device; - - public BoolFeedback RedLedEnabledFeedback { get; private set; } - public BoolFeedback GreenLedEnabledFeedback { get; private set; } - public BoolFeedback BlueLedEnabledFeedback { get; private set; } - - public IntFeedback RedLedBrightnessFeedback { get; private set; } - public IntFeedback GreenLedBrightnessFeedback { get; private set; } - public IntFeedback BlueLedBrightnessFeedback { get; private set; } - - public StatusSignController(string key, Func preActivationFunc, DeviceConfig config) : base(key, config.Name) - { - AddPreActivationAction(() => - { - _device = preActivationFunc(config); - - RegisterCrestronGenericBase(_device); - - RedLedEnabledFeedback = - new BoolFeedback( - () => - _device.Leds[(uint)StatusSign.Led.eLedColor.Red] - .ControlFeedback.BoolValue); - GreenLedEnabledFeedback = - new BoolFeedback( - () => - _device.Leds[(uint)StatusSign.Led.eLedColor.Green] - .ControlFeedback.BoolValue); - BlueLedEnabledFeedback = - new BoolFeedback( - () => - _device.Leds[(uint)StatusSign.Led.eLedColor.Blue] - .ControlFeedback.BoolValue); - - RedLedBrightnessFeedback = - new IntFeedback(() => (int)_device.Leds[(uint)StatusSign.Led.eLedColor.Red].BrightnessFeedback); - GreenLedBrightnessFeedback = - new IntFeedback(() => (int)_device.Leds[(uint)StatusSign.Led.eLedColor.Green].BrightnessFeedback); - BlueLedBrightnessFeedback = - new IntFeedback(() => (int)_device.Leds[(uint)StatusSign.Led.eLedColor.Blue].BrightnessFeedback); - - if (_device != null) _device.BaseEvent += _device_BaseEvent; - - }); - } - - void _device_BaseEvent(GenericBase device, BaseEventArgs args) - { - switch (args.EventId) - { - case StatusSign.LedBrightnessFeedbackEventId: - RedLedBrightnessFeedback.FireUpdate(); - GreenLedBrightnessFeedback.FireUpdate(); - BlueLedBrightnessFeedback.FireUpdate(); - break; - case StatusSign.LedControlFeedbackEventId: - RedLedEnabledFeedback.FireUpdate(); - GreenLedEnabledFeedback.FireUpdate(); - BlueLedEnabledFeedback.FireUpdate(); - break; - } - } - - public void EnableLedControl(bool red, bool green, bool blue) - { - _device.Leds[(uint) StatusSign.Led.eLedColor.Red].Control.BoolValue = red; - _device.Leds[(uint)StatusSign.Led.eLedColor.Green].Control.BoolValue = green; - _device.Leds[(uint)StatusSign.Led.eLedColor.Blue].Control.BoolValue = blue; - } - - public void SetColor(uint red, uint green, uint blue) - { - try - { - _device.Leds[(uint)StatusSign.Led.eLedColor.Red].Brightness = - (StatusSign.Led.eBrightnessPercentageValues)SimplSharpDeviceHelper.PercentToUshort(red); - } - catch (InvalidOperationException) - { - Debug.Console(1, this, "Error converting value to Red LED brightness. value: {0}", red); - } - try - { - _device.Leds[(uint)StatusSign.Led.eLedColor.Green].Brightness = - (StatusSign.Led.eBrightnessPercentageValues)SimplSharpDeviceHelper.PercentToUshort(green); - } - catch (InvalidOperationException) - { - Debug.Console(1, this, "Error converting value to Green LED brightness. value: {0}", green); - } - - try - { - _device.Leds[(uint)StatusSign.Led.eLedColor.Blue].Brightness = - (StatusSign.Led.eBrightnessPercentageValues)SimplSharpDeviceHelper.PercentToUshort(blue); - } - catch (InvalidOperationException) - { - Debug.Console(1, this, "Error converting value to Blue LED brightness. value: {0}", blue); - } - } - - public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) - { - var joinMap = new StatusSignControllerJoinMap(joinStart); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - if (bridge != null) - { - bridge.AddJoinMap(Key, joinMap); - } - else - { - Debug.Console(0, this, "Please update config to use 'eiscapiadvanced' to get all join map features for this device."); - } - - Debug.Console(1, this, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - trilist.SetBoolSigAction(joinMap.RedControl.JoinNumber, b => EnableControl(trilist, joinMap, this)); - trilist.SetBoolSigAction(joinMap.GreenControl.JoinNumber, b => EnableControl(trilist, joinMap, this)); - trilist.SetBoolSigAction(joinMap.BlueControl.JoinNumber, b => EnableControl(trilist, joinMap, this)); - - trilist.SetUShortSigAction(joinMap.RedLed.JoinNumber, u => SetColor(trilist, joinMap, this)); - trilist.SetUShortSigAction(joinMap.GreenLed.JoinNumber, u => SetColor(trilist, joinMap, this)); - trilist.SetUShortSigAction(joinMap.BlueLed.JoinNumber, u => SetColor(trilist, joinMap, this)); - - trilist.StringInput[joinMap.Name.JoinNumber].StringValue = Name; - - IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]); - RedLedEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RedControl.JoinNumber]); - BlueLedEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.BlueControl.JoinNumber]); - GreenLedEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.GreenControl.JoinNumber]); - - RedLedBrightnessFeedback.LinkInputSig(trilist.UShortInput[joinMap.RedLed.JoinNumber]); - BlueLedBrightnessFeedback.LinkInputSig(trilist.UShortInput[joinMap.BlueLed.JoinNumber]); - GreenLedBrightnessFeedback.LinkInputSig(trilist.UShortInput[joinMap.GreenLed.JoinNumber]); - } - - private static void EnableControl(BasicTriList triList, StatusSignControllerJoinMap joinMap, - StatusSignController device) - { - var redEnable = triList.BooleanOutput[joinMap.RedControl.JoinNumber].BoolValue; - var greenEnable = triList.BooleanOutput[joinMap.GreenControl.JoinNumber].BoolValue; - var blueEnable = triList.BooleanOutput[joinMap.BlueControl.JoinNumber].BoolValue; - device.EnableLedControl(redEnable, greenEnable, blueEnable); - } - - private static void SetColor(BasicTriList triList, StatusSignControllerJoinMap joinMap, - StatusSignController device) - { - var redBrightness = triList.UShortOutput[joinMap.RedLed.JoinNumber].UShortValue; - var greenBrightness = triList.UShortOutput[joinMap.GreenLed.JoinNumber].UShortValue; - var blueBrightness = triList.UShortOutput[joinMap.BlueLed.JoinNumber].UShortValue; - - device.SetColor(redBrightness, greenBrightness, blueBrightness); - } - - #region PreActivation - - private static StatusSign GetStatusSignDevice(DeviceConfig dc) - { - var control = CommFactory.GetControlPropertiesConfig(dc); - var cresnetId = control.CresnetIdInt; - var branchId = control.ControlPortNumber; - var parentKey = string.IsNullOrEmpty(control.ControlPortDevKey) ? "processor" : control.ControlPortDevKey; - - if (parentKey.Equals("processor", StringComparison.CurrentCultureIgnoreCase)) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new StatusSign", parentKey); - return new StatusSign(cresnetId, Global.ControlSystem); - } - var cresnetBridge = DeviceManager.GetDeviceForKey(parentKey) as IHasCresnetBranches; - - if (cresnetBridge != null) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new StatusSign", parentKey); - return new StatusSign(cresnetId, cresnetBridge.CresnetBranches[branchId]); - } - Debug.Console(0, "Device {0} is not a valid cresnet master", parentKey); - return null; - } - #endregion - - public class StatusSignControllerFactory : EssentialsDeviceFactory - { - public StatusSignControllerFactory() - { - TypeNames = new List() { "statussign" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new StatusSign Device"); - - var control = CommFactory.GetControlPropertiesConfig(dc); - var cresnetId = control.CresnetIdInt; - - return new StatusSignController(dc.Key, GetStatusSignDevice, dc); - } - } - } - - -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasBranding.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasBranding.cs deleted file mode 100644 index 63f4917a..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasBranding.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; - -namespace PepperDash.Essentials.Core.DeviceTypeInterfaces -{ - public interface IHasBranding - { - bool BrandingEnabled { get; } - void InitializeBranding(string roomKey); - } -} - -namespace PepperDash_Essentials_Core.DeviceTypeInterfaces -{ - [Obsolete("Use PepperDash.Essentials.Core.DeviceTypeInterfaces")] - public interface IHasBranding - { - bool BrandingEnabled { get; } - void InitializeBranding(string roomKey); - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasPhoneDialing.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasPhoneDialing.cs deleted file mode 100644 index 7f75adec..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasPhoneDialing.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Core.DeviceTypeInterfaces -{ - public interface IHasPhoneDialing - { - BoolFeedback PhoneOffHookFeedback { get; } - StringFeedback CallerIdNameFeedback { get; } - StringFeedback CallerIdNumberFeedback { get; } - void DialPhoneCall(string number); - void EndPhoneCall(); - void SendDtmfToPhone(string digit); - } -} - -namespace PepperDash_Essentials_Core.DeviceTypeInterfaces -{ - [Obsolete("Use PepperDash.Essentials.Core.DeviceTypeInterfaces")] - public interface IHasPhoneDialing - { - BoolFeedback PhoneOffHookFeedback { get; } - StringFeedback CallerIdNameFeedback { get; } - StringFeedback CallerIdNumberFeedback { get; } - void DialPhoneCall(string number); - void EndPhoneCall(); - void SendDtmfToPhone(string digit); - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageDefinition.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageDefinition.cs deleted file mode 100644 index abf138a4..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageDefinition.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace PepperDash.Essentials.Core.DeviceTypeInterfaces -{ - public interface ILanguageDefinition - { - string LocaleName { get; set; } - string FriendlyName { get; set; } - bool Enable { get; set; } - List UiLabels { get; set; } - List Sources { get; set; } - List Destinations { get; set; } - List SourceGroupNames { get; set; } - List DestinationGroupNames { get; set; } - List RoomNames { get; set; } - } -} - -namespace PepperDash_Essentials_Core.DeviceTypeInterfaces -{ - [Obsolete("Use PepperDash.Essentials.Core.DeviceTypeInterfaces")] - public interface ILanguageDefinition - { - string LocaleName { get; set; } - string FriendlyName { get; set; } - bool Enable { get; set; } - List UiLabels { get; set; } - List Sources { get; set; } - List Destinations { get; set; } - List SourceGroupNames { get; set; } - List DestinationGroupNames { get; set; } - List RoomNames { get; set; } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageProvider.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageProvider.cs deleted file mode 100644 index dd48723d..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageProvider.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; - -namespace PepperDash.Essentials.Core.DeviceTypeInterfaces -{ - - public interface ILanguageProvider - { - ILanguageDefinition CurrentLanguage { get; set; } - - event EventHandler CurrentLanguageChanged; - } - -} - -namespace PepperDash_Essentials_Core.DeviceTypeInterfaces -{ - [Obsolete("Use PepperDash.Essentials.Core.DeviceTypeInterfaces")] - public interface ILanguageProvider - { - ILanguageDefinition CurrentLanguage { get; set; } - - event EventHandler CurrentLanguageChanged; - } - -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IMobileControl.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IMobileControl.cs deleted file mode 100644 index bb800b44..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IMobileControl.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using PepperDash.Core; - -namespace PepperDash.Essentials.Core.DeviceTypeInterfaces -{ - /// - /// Describes a MobileControlSystemController - /// - public interface IMobileControl : IKeyed - { - void CreateMobileControlRoomBridge(IEssentialsRoom room, IMobileControl parent); - - void LinkSystemMonitorToAppServer(); - } - - /// - /// Describes a MobileSystemController that accepts IEssentialsRoom - /// - public interface IMobileControl3 : IMobileControl - { - void CreateMobileControlRoomBridge(IEssentialsRoom room, IMobileControl parent); - } - - /// - /// Describes a MobileControl Room Bridge - /// - public interface IMobileControlRoomBridge : IKeyed - { - event EventHandler UserCodeChanged; - - event EventHandler UserPromptedForCode; - - event EventHandler ClientJoined; - - string UserCode { get; } - - string QrCodeUrl { get; } - - string QrCodeChecksum { get; } - - string McServerUrl { get; } - - string RoomName { get; } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/LanguageLabel.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/LanguageLabel.cs deleted file mode 100644 index c7d26722..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/LanguageLabel.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using PepperDash.Core; - -namespace PepperDash.Essentials.Core.DeviceTypeInterfaces -{ - public class LanguageLabel - { - public string Key { get; set; } - public string Description { get; set; } - public string DisplayText { get; set; } - public uint JoinNumber { get; set; } - } -} - -namespace PepperDash_Essentials_Core.DeviceTypeInterfaces -{ - [Obsolete("Use PepperDash.Essentials.Core.DeviceTypeInterfaces")] - public class LanguageLabel - { - public string Key { get; set; } - public string Description { get; set; } - public string DisplayText { get; set; } - public uint JoinNumber { get; set; } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/.IHasFeedbacks_BASE_3692.cs.swp b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/.IHasFeedbacks_BASE_3692.cs.swp deleted file mode 100644 index 827c466a..00000000 Binary files a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/.IHasFeedbacks_BASE_3692.cs.swp and /dev/null differ diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/.IHasFeedbacks_LOCAL_3692.cs.swp b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/.IHasFeedbacks_LOCAL_3692.cs.swp deleted file mode 100644 index e06196a4..00000000 Binary files a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/.IHasFeedbacks_LOCAL_3692.cs.swp and /dev/null differ diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/.IHasFeedbacks_REMOTE_3692.cs.swp b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/.IHasFeedbacks_REMOTE_3692.cs.swp deleted file mode 100644 index 842256cc..00000000 Binary files a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/.IHasFeedbacks_REMOTE_3692.cs.swp and /dev/null differ diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/CodecInterfaces.cs.orig b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/CodecInterfaces.cs.orig deleted file mode 100644 index 04d5aac9..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/CodecInterfaces.cs.orig +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -namespace PepperDash.Essentials.Core -{ - /// - /// Requirements for a device that has dialing capabilities - /// - public interface IHasDialer - { - // Add requirements for Dialer functionality - - void Dial(string number); -<<<<<<< HEAD - void EndCall(string number); -======= - void EndCall(object activeCall); - void EndAllCalls(); ->>>>>>> origin/feature/cisco-spark-2 - void AcceptCall(); - void RejectCall(); - void SendDtmf(string digit); - - IntFeedback ActiveCallCountFeedback { get; } - BoolFeedback IncomingCallFeedback { get; } - } - - /// - /// Defines minimum volume controls for a codec device with dialing capabilities - /// - public interface ICodecAudio : IBasicVolumeWithFeedback, IPrivacy - { - - } - - /// - /// Adds control of codec receive volume - /// - public interface IReceiveVolume - { - // Break this out into 3 interfaces - void SetReceiveVolume(ushort level); - void ReceiveMuteOn(); - void ReceiveMuteOff(); - void ReceiveMuteToggle(); - IntFeedback ReceiveLevelFeedback { get; } - BoolFeedback ReceiveMuteIsOnFeedback { get; } - } - - /// - /// Adds control of codec transmit volume - /// - public interface ITransmitVolume - { - void SetTransmitVolume(ushort level); - void TransmitMuteOn(); - void TransmitMuteOff(); - void TransmitMuteToggle(); - IntFeedback TransmitLevelFeedback { get; } - BoolFeedback TransmitMuteIsOnFeedback { get; } - } - - /// - /// Adds control of codec privacy function (microphone mute) - /// - public interface IPrivacy - { - void PrivacyModeOn(); - void PrivacyModeOff(); - void PrivacyModeToggle(); - BoolFeedback PrivacyModeIsOnFeedback { get; } - } - - public interface IHasCallHistory - { - // Add recent calls list - } - - public interface IHasDirectory - { - - } - - public interface IHasObtp - { - - // Upcoming Meeting warning event - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceJsonApi.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceJsonApi.cs deleted file mode 100644 index 2dda0bf8..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceJsonApi.cs +++ /dev/null @@ -1,369 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharp.Reflection; -using Newtonsoft.Json; - -using PepperDash.Core; - - -namespace PepperDash.Essentials.Core -{ - public class DeviceJsonApi - { - /// - /// - /// - /// - public static void DoDeviceActionWithJson(string json) - { - if (String.IsNullOrEmpty(json)) - { - CrestronConsole.ConsoleCommandResponse( - "Please provide a JSON object matching the format {\"deviceKey\":\"myDevice\", \"methodName\":\"someMethod\", \"params\": [\"param1\", true]}.\r\nIf the method has no parameters, the \"params\" object may be omitted."); - return; - } - try - { - var action = JsonConvert.DeserializeObject(json); - - DoDeviceAction(action); - } - catch (Exception ex) - { - CrestronConsole.ConsoleCommandResponse("Incorrect format for JSON. Please check that the format matches {\"deviceKey\":\"myDevice\", \"methodName\":\"someMethod\", \"params\": [\"param1\", true]}"); - } - - } - - - /// - /// - /// - /// - public static void DoDeviceAction(DeviceActionWrapper action) - { - var key = action.DeviceKey; - var obj = FindObjectOnPath(key); - if (obj == null) - { - CrestronConsole.ConsoleCommandResponse("Unable to find object at path {0}", key); - return; - } - - if (action.Params == null) - { - //no params, so setting action.Params to empty array - action.Params = new object[0]; - } - - CType t = obj.GetType(); - try - { - var methods = t.GetMethods().Where(m => m.Name == action.MethodName).ToList(); - - var method = methods.Count == 1 ? methods[0] : methods.FirstOrDefault(m => m.GetParameters().Length == action.Params.Length); - - if (method == null) - { - CrestronConsole.ConsoleCommandResponse( - "Unable to find method with name {0} and that matches parameters {1}", action.MethodName, - action.Params); - return; - } - var mParams = method.GetParameters(); - - var convertedParams = mParams - .Select((p, i) => ConvertType(action.Params[i], p.ParameterType)) - .ToArray(); - method.Invoke(obj, convertedParams); - - CrestronConsole.ConsoleCommandResponse("Method {0} successfully called on device {1}", method.Name, - action.DeviceKey); - } - catch (Exception ex) - { - CrestronConsole.ConsoleCommandResponse("Unable to call method with name {0}. {1}", action.MethodName, - ex.Message);} - } - - private static object ConvertType(object value, Type conversionType) - { - if (!conversionType.IsEnum) - { - return Convert.ChangeType(value, conversionType, System.Globalization.CultureInfo.InvariantCulture); - } - - var stringValue = Convert.ToString(value); - - if (String.IsNullOrEmpty(stringValue)) - { - throw new InvalidCastException( - String.Format("{0} cannot be converted to a string prior to conversion to enum")); - } - return Enum.Parse(conversionType, stringValue, true); - } - - /// - /// Gets the properties on a device - /// - /// - /// - public static string GetProperties(string deviceObjectPath) - { - var obj = FindObjectOnPath(deviceObjectPath); - if (obj == null) - return "{ \"error\":\"No Device\"}"; - - CType t = obj.GetType(); - // get the properties and set them into a new collection of NameType wrappers - var props = t.GetProperties().Select(p => new PropertyNameType(p, obj)); - return JsonConvert.SerializeObject(props, Formatting.Indented); - } - - /// - /// Gets a property from a device path by name - /// - /// - /// - /// - public static object GetPropertyByName(string deviceObjectPath, string propertyName) - { - var dev = FindObjectOnPath(deviceObjectPath); - if(dev == null) - return "{ \"error\":\"No Device\"}"; - - object prop = dev.GetType().GetCType().GetProperty(propertyName).GetValue(dev, null); - - // var prop = t.GetProperty(propertyName); - if (prop != null) - { - return prop; - } - else - { - Debug.Console(1, "Unable to find Property: {0} on Device with path: {1}", propertyName, deviceObjectPath); - return null; - } - } - - /// - /// Gets the methods on a device - /// - /// - /// - public static string GetMethods(string deviceObjectPath) - { - var obj = FindObjectOnPath(deviceObjectPath); - if (obj == null) - return "{ \"error\":\"No Device\"}"; - - // Package up method names using helper objects - CType t = obj.GetType(); - var methods = t.GetMethods() - .Where(m => !m.IsSpecialName) - .Select(p => new MethodNameParams(p)); - return JsonConvert.SerializeObject(methods, Formatting.Indented); - } - - public static string GetApiMethods(string deviceObjectPath) - { - var obj = FindObjectOnPath(deviceObjectPath); - if (obj == null) - return "{ \"error\":\"No Device\"}"; - - // Package up method names using helper objects - CType t = obj.GetType(); - var methods = t.GetMethods() - .Where(m => !m.IsSpecialName) - .Where(m => m.GetCustomAttributes(typeof(ApiAttribute), true).Any()) - .Select(p => new MethodNameParams(p)); - return JsonConvert.SerializeObject(methods, Formatting.Indented); - } - - - /// - /// Walks down a dotted object path, starting with a Device, and returns the object - /// at the end of the path - /// - public static object FindObjectOnPath(string deviceObjectPath) - { - var path = deviceObjectPath.Split('.'); - - var dev = DeviceManager.GetDeviceForKey(path[0]); - if (dev == null) - { - Debug.Console(0, "Device {0} not found", path[0]); - return null; - } - - // loop through any dotted properties - object obj = dev; - if (path.Length > 1) - { - for (int i = 1; i < path.Length; i++) - { - var objName = path[i]; - string indexStr = null; - var indexOpen = objName.IndexOf('['); - if (indexOpen != -1) - { - var indexClose = objName.IndexOf(']'); - if (indexClose == -1) - { - Debug.Console(0, dev, "ERROR Unmatched index brackets"); - return null; - } - // Get the index and strip quotes if any - indexStr = objName.Substring(indexOpen + 1, indexClose - indexOpen - 1).Replace("\"", ""); - objName = objName.Substring(0, indexOpen); - Debug.Console(0, dev, " Checking for collection '{0}', index '{1}'", objName, indexStr); - } - - CType oType = obj.GetType(); - var prop = oType.GetProperty(objName); - if (prop == null) - { - Debug.Console(0, dev, "Property {0} not found on {1}", objName, path[i - 1]); - return null; - } - // if there's an index, try to get the property - if (indexStr != null) - { - if (!typeof(ICollection).IsAssignableFrom(prop.PropertyType)) - { - Debug.Console(0, dev, "Property {0} is not collection", objName); - return null; - } - var collection = prop.GetValue(obj, null) as ICollection; - // Get the indexed items "property" - var indexedPropInfo = prop.PropertyType.GetProperty("Item"); - // These are the parameters for the indexing. Only care about one - var indexParams = indexedPropInfo.GetIndexParameters(); - if (indexParams.Length > 0) - { - Debug.Console(0, " Indexed, param type: {0}", indexParams[0].ParameterType.Name); - var properParam = Convert.ChangeType(indexStr, indexParams[0].ParameterType, - System.Globalization.CultureInfo.InvariantCulture); - try - { - obj = indexedPropInfo.GetValue(collection, new object[] { properParam }); - } - // if the index is bad, catch it here. - catch (Crestron.SimplSharp.Reflection.TargetInvocationException e) - { - if (e.InnerException is ArgumentOutOfRangeException) - Debug.Console(0, " Index Out of range"); - else if (e.InnerException is KeyNotFoundException) - Debug.Console(0, " Key not found"); - return null; - } - } - - } - else - obj = prop.GetValue(obj, null); - } - } - return obj; - } - - /// - /// Sets a property on an object. - /// - /// - /// - public static string SetProperty(string deviceObjectPath) - { - throw new NotImplementedException("This could be really useful. Finish it please"); - - //var obj = FindObjectOnPath(deviceObjectPath); - //if (obj == null) - // return "{\"error\":\"No object found\"}"; - - //CType t = obj.GetType(); - - - //// get the properties and set them into a new collection of NameType wrappers - //var props = t.GetProperties().Select(p => new PropertyNameType(p, obj)); - //return JsonConvert.SerializeObject(props, Formatting.Indented); - } - - - } - - public class DeviceActionWrapper - { - public string DeviceKey { get; set; } - public string MethodName { get; set; } - public object[] Params { get; set; } - } - - public class PropertyNameType - { - object Parent; - - [JsonIgnore] - public PropertyInfo PropInfo { get; private set; } - public string Name { get { return PropInfo.Name; } } - public string Type { get { return PropInfo.PropertyType.Name; } } - public string Value { get - { - if (PropInfo.CanRead) - { - try - { - return PropInfo.GetValue(Parent, null).ToString(); - } - catch (Exception) - { - return null; - } - } - else - return null; - } } - - public bool CanRead { get { return PropInfo.CanRead; } } - public bool CanWrite { get { return PropInfo.CanWrite; } } - - - public PropertyNameType(PropertyInfo info, object parent) - { - PropInfo = info; - Parent = parent; - } - } - - public class MethodNameParams - { - [JsonIgnore] - public MethodInfo MethodInfo { get; private set; } - - public string Name { get { return MethodInfo.Name; } } - public IEnumerable Params { get { - return MethodInfo.GetParameters().Select(p => - new NameType { Name = p.Name, Type = p.ParameterType.Name }); - } } - - public MethodNameParams(MethodInfo info) - { - MethodInfo = info; - } - } - - public class NameType - { - public string Name { get; set; } - public string Type { get; set; } - } - - [AttributeUsage(AttributeTargets.All)] - public class ApiAttribute : CAttribute - { - - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceManager.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceManager.cs deleted file mode 100644 index 55237496..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceManager.cs +++ /dev/null @@ -1,490 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; - -using PepperDash.Core; - - -namespace PepperDash.Essentials.Core -{ - public static class DeviceManager - { - public static event EventHandler AllDevicesActivated; - public static event EventHandler AllDevicesRegistered; - - private static readonly CCriticalSection DeviceCriticalSection = new CCriticalSection(); - private static readonly CEvent AllowAddDevicesCEvent = new CEvent(false, true); - //public static List Devices { get { return _Devices; } } - //static List _Devices = new List(); - - static readonly Dictionary Devices = new Dictionary(StringComparer.OrdinalIgnoreCase); - - /// - /// Returns a copy of all the devices in a list - /// - public static List AllDevices { get { return new List(Devices.Values); } } - - public static bool AddDeviceEnabled; - - public static void Initialize(CrestronControlSystem cs) - { - AddDeviceEnabled = true; - CrestronConsole.AddNewConsoleCommand(ListDeviceCommStatuses, "devcommstatus", "Lists the communication status of all devices", - ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(ListDeviceFeedbacks, "devfb", "Lists current feedbacks", - ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(ListDevices, "devlist", "Lists current managed devices", - ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(DeviceJsonApi.DoDeviceActionWithJson, "devjson", "", - ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(s => CrestronConsole.ConsoleCommandResponse(DeviceJsonApi.GetProperties(s)), "devprops", "", ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(s => CrestronConsole.ConsoleCommandResponse(DeviceJsonApi.GetMethods(s)), "devmethods", "", ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(s => CrestronConsole.ConsoleCommandResponse(DeviceJsonApi.GetApiMethods(s)), "apimethods", "", ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(SimulateComReceiveOnDevice, "devsimreceive", - "Simulates incoming data on a com device", ConsoleAccessLevelEnum.AccessOperator); - - CrestronConsole.AddNewConsoleCommand(SetDeviceStreamDebugging, "setdevicestreamdebug", "set comm debug [deviceKey] [off/rx/tx/both] ([minutes])", ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(s => DisableAllDeviceStreamDebugging(), "disableallstreamdebug", "disables stream debugging on all devices", ConsoleAccessLevelEnum.AccessOperator); - } - - /// - /// Calls activate steps on all Device class items - /// - public static void ActivateAll() - { - try - { - OnAllDevicesRegistered(); - - DeviceCriticalSection.Enter(); - AddDeviceEnabled = false; - // PreActivate all devices - Debug.Console(0,"****PreActivation starting...****"); - foreach (var d in Devices.Values) - { - try - { - if (d is Device) - (d as Device).PreActivate(); - } - catch (Exception e) - { - Debug.Console(0, d, "ERROR: Device {1} PreActivation failure: {0}", e.Message, d.Key); - Debug.Console(1, d, "Stack Trace: {0}", e.StackTrace); - } - } - Debug.Console(0, "****PreActivation complete****"); - Debug.Console(0, "****Activation starting...****"); - - // Activate all devices - foreach (var d in Devices.Values) - { - try - { - if (d is Device) - (d as Device).Activate(); - } - catch (Exception e) - { - Debug.Console(0, d, "ERROR: Device {1} Activation failure: {0}", e.Message, d.Key); - Debug.Console(1, d, "Stack Trace: {0}", e.StackTrace); - } - } - - Debug.Console(0, "****Activation complete****"); - Debug.Console(0, "****PostActivation starting...****"); - - // PostActivate all devices - foreach (var d in Devices.Values) - { - try - { - if (d is Device) - (d as Device).PostActivate(); - } - catch (Exception e) - { - Debug.Console(0, d, "ERROR: Device {1} PostActivation failure: {0}", e.Message, d.Key); - Debug.Console(1, d, "Stack Trace: {0}", e.StackTrace); - } - } - - Debug.Console(0, "****PostActivation complete****"); - - OnAllDevicesActivated(); - } - finally - { - DeviceCriticalSection.Leave(); - } - } - - private static void OnAllDevicesActivated() - { - var handler = AllDevicesActivated; - if (handler != null) - { - handler(null, new EventArgs()); - } - } - - private static void OnAllDevicesRegistered() - { - var handler = AllDevicesRegistered; - if (handler != null) - { - handler(null, new EventArgs()); - } - } - - /// - /// Calls activate on all Device class items - /// - public static void DeactivateAll() - { - try - { - DeviceCriticalSection.Enter(); - foreach (var d in Devices.Values.OfType()) - { - d.Deactivate(); - } - } - finally - { - DeviceCriticalSection.Leave(); - } - } - - //static void ListMethods(string devKey) - //{ - // var dev = GetDeviceForKey(devKey); - // if(dev != null) - // { - // var type = dev.GetType().GetCType(); - // var methods = type.GetMethods(BindingFlags.Public|BindingFlags.Instance); - // var sb = new StringBuilder(); - // sb.AppendLine(string.Format("{2} methods on [{0}] ({1}):", dev.Key, type.Name, methods.Length)); - // foreach (var m in methods) - // { - // sb.Append(string.Format("{0}(", m.Name)); - // var pars = m.GetParameters(); - // foreach (var p in pars) - // sb.Append(string.Format("({1}){0} ", p.Name, p.ParameterType.Name)); - // sb.AppendLine(")"); - // } - // CrestronConsole.ConsoleCommandResponse(sb.ToString()); - // } - //} - - private static void ListDevices(string s) - { - Debug.Console(0, "{0} Devices registered with Device Manager:", Devices.Count); - var sorted = Devices.Values.ToList(); - sorted.Sort((a, b) => a.Key.CompareTo(b.Key)); - - foreach (var d in sorted) - { - var name = d is IKeyName ? (d as IKeyName).Name : "---"; - Debug.Console(0, " [{0}] {1}", d.Key, name); - } - } - - private static void ListDeviceFeedbacks(string devKey) - { - var dev = GetDeviceForKey(devKey); - if (dev == null) - { - Debug.Console(0, "Device '{0}' not found", devKey); - return; - } - var statusDev = dev as IHasFeedback; - if (statusDev == null) - { - Debug.Console(0, "Device '{0}' does not have visible feedbacks", devKey); - return; - } - statusDev.DumpFeedbacksToConsole(true); - } - - //static void ListDeviceCommands(string devKey) - //{ - // var dev = GetDeviceForKey(devKey); - // if (dev == null) - // { - // Debug.Console(0, "Device '{0}' not found", devKey); - // return; - // } - // Debug.Console(0, "This needs to be reworked. Stay tuned.", devKey); - //} - - private static void ListDeviceCommStatuses(string input) - { - var sb = new StringBuilder(); - foreach (var dev in Devices.Values.OfType()) - { - sb.Append(string.Format("{0}: {1}\r", dev, - dev.CommunicationMonitor.Status)); - } - CrestronConsole.ConsoleCommandResponse(sb.ToString()); - } - - - //static void DoDeviceCommand(string command) - //{ - // Debug.Console(0, "Not yet implemented. Stay tuned"); - //} - - public static void AddDevice(IKeyed newDev) - { - try - { - if (!DeviceCriticalSection.TryEnter()) - { - Debug.Console(0, Debug.ErrorLogLevel.Error, "Currently unable to add devices to Device Manager. Please try again"); - return; - } - // Check for device with same key - //var existingDevice = _Devices.FirstOrDefault(d => d.Key.Equals(newDev.Key, StringComparison.OrdinalIgnoreCase)); - ////// If it exists, remove or warn?? - //if (existingDevice != null) - - if (!AddDeviceEnabled) - { - Debug.Console(0, Debug.ErrorLogLevel.Error, "All devices have been activated. Adding new devices is not allowed."); - return; - } - - if (Devices.ContainsKey(newDev.Key)) - { - Debug.Console(0, newDev, "WARNING: A device with this key already exists. Not added to manager"); - return; - } - Devices.Add(newDev.Key, newDev); - //if (!(_Devices.Contains(newDev))) - // _Devices.Add(newDev); - } - finally - { - DeviceCriticalSection.Leave(); - } - } - - public static void AddDevice(IEnumerable devicesToAdd) - { - try - { - if (!DeviceCriticalSection.TryEnter()) - { - Debug.Console(0, Debug.ErrorLogLevel.Error, - "Currently unable to add devices to Device Manager. Please try again"); - return; - } - if (!AddDeviceEnabled) - { - Debug.Console(0, Debug.ErrorLogLevel.Error, - "All devices have been activated. Adding new devices is not allowed."); - return; - } - - foreach (var dev in devicesToAdd) - { - try - { - Devices.Add(dev.Key, dev); - } - catch (ArgumentException ex) - { - Debug.Console(0, "Error adding device with key {0} to Device Manager: {1}\r\nStack Trace: {2}", - dev.Key, ex.Message, ex.StackTrace); - } - } - } - finally - { - DeviceCriticalSection.Leave(); - } - } - - public static void RemoveDevice(IKeyed newDev) - { - try - { - DeviceCriticalSection.Enter(); - if (newDev == null) - return; - if (Devices.ContainsKey(newDev.Key)) - Devices.Remove(newDev.Key); - //if (_Devices.Contains(newDev)) - // _Devices.Remove(newDev); - else - Debug.Console(0, "Device manager: Device '{0}' does not exist in manager. Cannot remove", newDev.Key); - } - finally - { - DeviceCriticalSection.Leave(); - } - } - - public static IEnumerable GetDeviceKeys() - { - //return _Devices.Select(d => d.Key).ToList(); - return Devices.Keys; - } - - public static IEnumerable GetDevices() - { - //return _Devices.Select(d => d.Key).ToList(); - return Devices.Values; - } - - public static IKeyed GetDeviceForKey(string key) - { - //return _Devices.FirstOrDefault(d => d.Key.Equals(key, StringComparison.OrdinalIgnoreCase)); - if (key != null && Devices.ContainsKey(key)) - return Devices[key]; - - return null; - } - - /// - /// Console handler that simulates com port data receive - /// - /// - public static void SimulateComReceiveOnDevice(string s) - { - // devcomsim:1 xyzabc - var match = Regex.Match(s, @"(\S*)\s*(.*)"); - if (match.Groups.Count < 3) - { - CrestronConsole.ConsoleCommandResponse(" Format: devsimreceive:P "); - return; - } - //Debug.Console(2, "**** {0} - {1} ****", match.Groups[1].Value, match.Groups[2].Value); - - var com = GetDeviceForKey(match.Groups[1].Value) as ComPortController; - if (com == null) - { - CrestronConsole.ConsoleCommandResponse("'{0}' is not a comm port device", match.Groups[1].Value); - return; - } - com.SimulateReceive(match.Groups[2].Value); - } - - /// - /// Prints a list of routing inputs and outputs by device key. - /// - /// Device key from which to report data - public static void GetRoutingPorts(string s) - { - var device = GetDeviceForKey(s); - - if (device == null) return; - var inputPorts = ((device as IRoutingInputs) != null) ? (device as IRoutingInputs).InputPorts : null; - var outputPorts = ((device as IRoutingOutputs) != null) ? (device as IRoutingOutputs).OutputPorts : null; - if (inputPorts != null) - { - CrestronConsole.ConsoleCommandResponse("Device {0} has {1} Input Ports:{2}", s, inputPorts.Count, CrestronEnvironment.NewLine); - foreach (var routingInputPort in inputPorts) - { - CrestronConsole.ConsoleCommandResponse("{0}{1}", routingInputPort.Key, CrestronEnvironment.NewLine); - } - } - if (outputPorts == null) return; - CrestronConsole.ConsoleCommandResponse("Device {0} has {1} Output Ports:{2}", s, outputPorts.Count, CrestronEnvironment.NewLine); - foreach (var routingOutputPort in outputPorts) - { - CrestronConsole.ConsoleCommandResponse("{0}{1}", routingOutputPort.Key, CrestronEnvironment.NewLine); - } - } - - /// - /// Attempts to set the debug level of a device - /// - /// - public static void SetDeviceStreamDebugging(string s) - { - if (String.IsNullOrEmpty(s) || s.Contains("?")) - { - CrestronConsole.ConsoleCommandResponse( - @"SETDEVICESTREAMDEBUG [{deviceKey}] [OFF |TX | RX | BOTH] [timeOutInMinutes] - {deviceKey} [OFF | TX | RX | BOTH] - Device to set stream debugging on, and which setting to use - timeOutInMinutes - Set timeout for stream debugging. Default is 30 minutes"); - return; - } - - var args = s.Split(' '); - - var deviceKey = args[0]; - var setting = args[1]; - - var timeout= String.Empty; - - if (args.Length >= 3) - { - timeout = args[2]; - } - - var device = GetDeviceForKey(deviceKey) as IStreamDebugging; - - if (device == null) - { - CrestronConsole.ConsoleCommandResponse("Unable to get device with key: {0}", deviceKey); - return; - } - - eStreamDebuggingSetting debugSetting; - - try - { - debugSetting = (eStreamDebuggingSetting)Enum.Parse(typeof(eStreamDebuggingSetting), setting, true); - } - catch - { - CrestronConsole.ConsoleCommandResponse("Unable to convert setting value. Please use off/rx/tx/both"); - return; - } - - if (!string.IsNullOrEmpty(timeout)) - { - try - { - var min = Convert.ToUInt32(timeout); - - device.StreamDebugging.SetDebuggingWithSpecificTimeout(debugSetting, min); - CrestronConsole.ConsoleCommandResponse("Device: '{0}' debug level set to {1} for {2} minutes", deviceKey, debugSetting, min); - - } - catch (Exception e) - { - CrestronConsole.ConsoleCommandResponse("Unable to convert minutes or settings value. Please use an integer value for minutes. Error: {0}", e); - } - } - else - { - device.StreamDebugging.SetDebuggingWithDefaultTimeout(debugSetting); - CrestronConsole.ConsoleCommandResponse("Device: '{0}' debug level set to {1} for default time (30 minutes)", deviceKey, debugSetting); - } - } - - /// - /// Sets stream debugging settings to off for all devices - /// - public static void DisableAllDeviceStreamDebugging() - { - foreach (var device in AllDevices) - { - var streamDevice = device as IStreamDebugging; - - if (streamDevice != null) - { - streamDevice.StreamDebugging.SetDebuggingWithDefaultTimeout(eStreamDebuggingSetting.Off); - } - } - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceManager.cs.orig b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceManager.cs.orig deleted file mode 100644 index e768807b..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceManager.cs.orig +++ /dev/null @@ -1,253 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.EthernetCommunication; -using Crestron.SimplSharpPro.UI; -using Crestron.SimplSharp.Reflection; - -using PepperDash.Core; - - -namespace PepperDash.Essentials.Core -{ - public static class DeviceManager - { - //public static List Devices { get { return _Devices; } } - //static List _Devices = new List(); - - static Dictionary Devices = new Dictionary(StringComparer.OrdinalIgnoreCase); - - /// - /// Returns a copy of all the devices in a list - /// - public static List AllDevices { get { return new List(Devices.Values); } } - - public static void Initialize(CrestronControlSystem cs) - { - CrestronConsole.AddNewConsoleCommand(ListDeviceCommStatuses, "devcommstatus", "Lists the communication status of all devices", - ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(ListDeviceFeedbacks, "devfb", "Lists current feedbacks", - ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(ListDevices, "devlist", "Lists current managed devices", - ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(DeviceJsonApi.DoDeviceActionWithJson, "devjson", "", - ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(s => - { - CrestronConsole.ConsoleCommandResponse(DeviceJsonApi.GetProperties(s)); - }, "devprops", "", ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(s => - { - CrestronConsole.ConsoleCommandResponse(DeviceJsonApi.GetMethods(s)); - }, "devmethods", "", ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(s => - { - CrestronConsole.ConsoleCommandResponse(DeviceJsonApi.GetApiMethods(s)); - }, "apimethods", "", ConsoleAccessLevelEnum.AccessOperator); - CrestronConsole.AddNewConsoleCommand(SimulateComReceiveOnDevice, "devsimreceive", - "Simulates incoming data on a com device", ConsoleAccessLevelEnum.AccessOperator); - } - - /// - /// Calls activate on all Device class items - /// - public static void ActivateAll() - { - foreach (var d in Devices.Values) -<<<<<<< HEAD - { - try - { - if (d is Device) - (d as Device).Activate(); - } - catch (Exception e) - { - Debug.Console(0, d, "ERROR: Device activation failure:\r{0}", e); - } - } -======= - { - try - { - if (d is Device) - (d as Device).Activate(); - } - catch (Exception e) - { - Debug.Console(0, d, "ERROR: Device activation failure:\r{0}", e); - } - } ->>>>>>> origin/feature/ecs-342-neil - } - - /// - /// Calls activate on all Device class items - /// - public static void DeactivateAll() - { - foreach (var d in Devices.Values) - { - if (d is Device) - (d as Device).Deactivate(); - } - } - - //static void ListMethods(string devKey) - //{ - // var dev = GetDeviceForKey(devKey); - // if(dev != null) - // { - // var type = dev.GetType().GetCType(); - // var methods = type.GetMethods(BindingFlags.Public|BindingFlags.Instance); - // var sb = new StringBuilder(); - // sb.AppendLine(string.Format("{2} methods on [{0}] ({1}):", dev.Key, type.Name, methods.Length)); - // foreach (var m in methods) - // { - // sb.Append(string.Format("{0}(", m.Name)); - // var pars = m.GetParameters(); - // foreach (var p in pars) - // sb.Append(string.Format("({1}){0} ", p.Name, p.ParameterType.Name)); - // sb.AppendLine(")"); - // } - // CrestronConsole.ConsoleCommandResponse(sb.ToString()); - // } - //} - - static void ListDevices(string s) - { - Debug.Console(0, "{0} Devices registered with Device Mangager:",Devices.Count); - var sorted = Devices.Values.ToList(); - sorted.Sort((a, b) => a.Key.CompareTo(b.Key)); - - foreach (var d in sorted) - { - var name = d is IKeyName ? (d as IKeyName).Name : "---"; - Debug.Console(0, " [{0}] {1}", d.Key, name); - } - } - - static void ListDeviceFeedbacks(string devKey) - { - var dev = GetDeviceForKey(devKey); - if(dev == null) - { - Debug.Console(0, "Device '{0}' not found", devKey); - return; - } - var statusDev = dev as IHasFeedback; - if(statusDev == null) - { - Debug.Console(0, "Device '{0}' does not have visible feedbacks", devKey); - return; - } - statusDev.DumpFeedbacksToConsole(true); - } - - //static void ListDeviceCommands(string devKey) - //{ - // var dev = GetDeviceForKey(devKey); - // if (dev == null) - // { - // Debug.Console(0, "Device '{0}' not found", devKey); - // return; - // } - // Debug.Console(0, "This needs to be reworked. Stay tuned.", devKey); - //} - - static void ListDeviceCommStatuses(string input) - { - var sb = new StringBuilder(); - foreach (var dev in Devices.Values) - { - if (dev is ICommunicationMonitor) - sb.Append(string.Format("{0}: {1}\r", dev.Key, (dev as ICommunicationMonitor).CommunicationMonitor.Status)); - } - CrestronConsole.ConsoleCommandResponse(sb.ToString()); - } - - - //static void DoDeviceCommand(string command) - //{ - // Debug.Console(0, "Not yet implemented. Stay tuned"); - //} - - public static void AddDevice(IKeyed newDev) - { - // Check for device with same key - //var existingDevice = _Devices.FirstOrDefault(d => d.Key.Equals(newDev.Key, StringComparison.OrdinalIgnoreCase)); - ////// If it exists, remove or warn?? - //if (existingDevice != null) - if(Devices.ContainsKey(newDev.Key)) - { - Debug.Console(0, newDev, "WARNING: A device with this key already exists. Not added to manager"); - return; - } - Devices.Add(newDev.Key, newDev); - //if (!(_Devices.Contains(newDev))) - // _Devices.Add(newDev); - } - - public static void RemoveDevice(IKeyed newDev) - { - if(newDev == null) - return; - if (Devices.ContainsKey(newDev.Key)) - Devices.Remove(newDev.Key); - //if (_Devices.Contains(newDev)) - // _Devices.Remove(newDev); - else - Debug.Console(0, "Device manager: Device '{0}' does not exist in manager. Cannot remove", newDev.Key); - } - - public static IEnumerable GetDeviceKeys() - { - //return _Devices.Select(d => d.Key).ToList(); - return Devices.Keys; - } - - public static IEnumerable GetDevices() - { - //return _Devices.Select(d => d.Key).ToList(); - return Devices.Values; - } - - public static IKeyed GetDeviceForKey(string key) - { - //return _Devices.FirstOrDefault(d => d.Key.Equals(key, StringComparison.OrdinalIgnoreCase)); - if (key != null && Devices.ContainsKey(key)) - return Devices[key]; - - return null; - } - - /// - /// Console handler that simulates com port data receive - /// - /// - public static void SimulateComReceiveOnDevice(string s) - { - // devcomsim:1 xyzabc - var match = Regex.Match(s, @"(\S*)\s*(.*)"); - if (match.Groups.Count < 3) - { - CrestronConsole.ConsoleCommandResponse(" Format: devsimreceive:P "); - return; - } - //Debug.Console(2, "**** {0} - {1} ****", match.Groups[1].Value, match.Groups[2].Value); - - ComPortController com = GetDeviceForKey(match.Groups[1].Value) as ComPortController; - if (com == null) - { - CrestronConsole.ConsoleCommandResponse("'{0}' is not a comm port device", match.Groups[1].Value); - return; - } - com.SimulateReceive(match.Groups[2].Value); - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IDspPreset.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IDspPreset.cs deleted file mode 100644 index 2ec63fcb..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IDspPreset.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections.Generic; - -namespace PepperDash.Essentials.Core -{ - public interface IHasDspPresets - { - List Presets { get; } - - void RecallPreset(IDspPreset preset); - - } - - public interface IDspPreset - { - string Name { get; } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_BACKUP_3692.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_BACKUP_3692.cs deleted file mode 100644 index 8af64e92..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_BACKUP_3692.cs +++ /dev/null @@ -1,135 +0,0 @@ -<<<<<<< HEAD -using System.Collections.Generic; -using System.Linq; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharp.Reflection; - -using PepperDash.Core; - -namespace PepperDash.Essentials.Core -{ - public interface IHasFeedback : IKeyed - { - /// - /// This method shall return a list of all Output objects on a device, - /// including all "aggregate" devices. - /// - List Feedbacks { get; } - - } - - - public static class IHasFeedbackExtensions - { - public static void DumpFeedbacksToConsole(this IHasFeedback source, bool getCurrentStates) - { - CType t = source.GetType(); - // get the properties and set them into a new collection of NameType wrappers - var props = t.GetProperties().Select(p => new PropertyNameType(p, t)); - - - - var feedbacks = source.Feedbacks.OrderBy(x => x.Type); - if (feedbacks != null) - { - Debug.Console(0, source, "\n\nAvailable feedbacks:"); - foreach (var f in feedbacks) - { - string val = ""; - string type = ""; - if (getCurrentStates) - { - if (f is BoolFeedback) - { - val = f.BoolValue.ToString(); - type = "boolean"; - } - else if (f is IntFeedback) - { - val = f.IntValue.ToString(); - type = "integer"; - } - else if (f is StringFeedback) - { - val = f.StringValue; - type = "string"; - } - } - Debug.Console(0, "{0,-12} {1, -25} {2}", type, - (string.IsNullOrEmpty(f.Cue.Name) ? "-no name-" : f.Cue.Name), val); - } - } - else - Debug.Console(0, source, "No available outputs:"); - } - } -======= -using System.Collections.Generic; -using System.Linq; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; - -namespace PepperDash.Essentials.Core -{ - public interface IHasFeedback : IKeyed - { - /// - /// This method shall return a list of all Output objects on a device, - /// including all "aggregate" devices. - /// - List Feedbacks { get; } - - } - - - public static class IHasFeedbackExtensions - { - public static void DumpFeedbacksToConsole(this IHasFeedback source, bool getCurrentStates) - { - var feedbacks = source.Feedbacks.OrderBy(x => x.Type); - if (feedbacks != null) - { - Debug.Console(0, source, "\n\nAvailable feedbacks:"); - foreach (var f in feedbacks) - { - string val = ""; - if (getCurrentStates) - { - if (f is BoolFeedback) - val = " = " + f.BoolValue; - else if(f is IntFeedback) - val = " = " + f.IntValue; - else if(f is StringFeedback) - val = " = " + f.StringValue; - - //switch (f.Type) - //{ - // case eCueType.Bool: - // val = " = " + f.BoolValue; - // break; - // case eCueType.Int: - // val = " = " + f.IntValue; - // break; - // case eCueType.String: - // val = " = " + f.StringValue; - // break; - // //case eOutputType.Other: - // // break; - //} - } - Debug.Console(0, "{0,-8} {1}{2}", f.GetType(), - (string.IsNullOrEmpty(f.Cue.Name) ? "-none-" : f.Cue.Name), val); - } - } - else - Debug.Console(0, source, "No available outputs:"); - } - } - - public static class IHasFeedbackFusionExtensions - { - - } ->>>>>>> origin/feature/ecs-307 -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_BASE_3692.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_BASE_3692.cs deleted file mode 100644 index 446577f6..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_BASE_3692.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; - -namespace PepperDash.Essentials.Core -{ - public interface IHasFeedback : IKeyed - { - /// - /// This method shall return a list of all Output objects on a device, - /// including all "aggregate" devices. - /// - List Feedbacks { get; } - - } - - - public static class IHasFeedbackExtensions - { - public static void DumpFeedbacksToConsole(this IHasFeedback source, bool getCurrentStates) - { - var feedbacks = source.Feedbacks.OrderBy(x => x.Type); - if (feedbacks != null) - { - Debug.Console(0, source, "\n\nAvailable feedbacks:"); - foreach (var f in feedbacks) - { - string val = ""; - if (getCurrentStates) - { - if (f is BoolFeedback) - val = " = " + f.BoolValue; - else if(f is IntFeedback) - val = " = " + f.IntValue; - else if(f is StringFeedback) - val = " = " + f.StringValue; - - //switch (f.Type) - //{ - // case eCueType.Bool: - // val = " = " + f.BoolValue; - // break; - // case eCueType.Int: - // val = " = " + f.IntValue; - // break; - // case eCueType.String: - // val = " = " + f.StringValue; - // break; - // //case eOutputType.Other: - // // break; - //} - } - Debug.Console(0, "{0,-8} {1}{2}", f.GetType(), - (string.IsNullOrEmpty(f.Cue.Name) ? "-none-" : f.Cue.Name), val); - } - } - else - Debug.Console(0, source, "No available outputs:"); - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_LOCAL_3692.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_LOCAL_3692.cs deleted file mode 100644 index 5d33afa9..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_LOCAL_3692.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharp.Reflection; - -using PepperDash.Core; - -namespace PepperDash.Essentials.Core -{ - public interface IHasFeedback : IKeyed - { - /// - /// This method shall return a list of all Output objects on a device, - /// including all "aggregate" devices. - /// - List Feedbacks { get; } - - } - - - public static class IHasFeedbackExtensions - { - public static void DumpFeedbacksToConsole(this IHasFeedback source, bool getCurrentStates) - { - CType t = source.GetType(); - // get the properties and set them into a new collection of NameType wrappers - var props = t.GetProperties().Select(p => new PropertyNameType(p, t)); - - - - var feedbacks = source.Feedbacks.OrderBy(x => x.Type); - if (feedbacks != null) - { - Debug.Console(0, source, "\n\nAvailable feedbacks:"); - foreach (var f in feedbacks) - { - string val = ""; - string type = ""; - if (getCurrentStates) - { - if (f is BoolFeedback) - { - val = f.BoolValue.ToString(); - type = "boolean"; - } - else if (f is IntFeedback) - { - val = f.IntValue.ToString(); - type = "integer"; - } - else if (f is StringFeedback) - { - val = f.StringValue; - type = "string"; - } - } - Debug.Console(0, "{0,-12} {1, -25} {2}", type, - (string.IsNullOrEmpty(f.Cue.Name) ? "-no name-" : f.Cue.Name), val); - } - } - else - Debug.Console(0, source, "No available outputs:"); - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_REMOTE_3692.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_REMOTE_3692.cs deleted file mode 100644 index 1ac02c71..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IHasFeedbacks_REMOTE_3692.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; - -namespace PepperDash.Essentials.Core -{ - public interface IHasFeedback : IKeyed - { - /// - /// This method shall return a list of all Output objects on a device, - /// including all "aggregate" devices. - /// - List Feedbacks { get; } - - } - - - public static class IHasFeedbackExtensions - { - public static void DumpFeedbacksToConsole(this IHasFeedback source, bool getCurrentStates) - { - var feedbacks = source.Feedbacks.OrderBy(x => x.Type); - if (feedbacks != null) - { - Debug.Console(0, source, "\n\nAvailable feedbacks:"); - foreach (var f in feedbacks) - { - string val = ""; - if (getCurrentStates) - { - if (f is BoolFeedback) - val = " = " + f.BoolValue; - else if(f is IntFeedback) - val = " = " + f.IntValue; - else if(f is StringFeedback) - val = " = " + f.StringValue; - - //switch (f.Type) - //{ - // case eCueType.Bool: - // val = " = " + f.BoolValue; - // break; - // case eCueType.Int: - // val = " = " + f.IntValue; - // break; - // case eCueType.String: - // val = " = " + f.StringValue; - // break; - // //case eOutputType.Other: - // // break; - //} - } - Debug.Console(0, "{0,-8} {1}{2}", f.GetType(), - (string.IsNullOrEmpty(f.Cue.Name) ? "-none-" : f.Cue.Name), val); - } - } - else - Debug.Console(0, source, "No available outputs:"); - } - } - - public static class IHasFeedbackFusionExtensions - { - - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IUsageTracking.cs.orig b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IUsageTracking.cs.orig deleted file mode 100644 index 59019df5..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IUsageTracking.cs.orig +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Core; - -namespace PepperDash.Essentials.Core -{ - public interface IUsageTracking - { - UsageTracking UsageTracker { get; set; } - } - - //public static class IUsageTrackingExtensions - //{ - // public static void EnableUsageTracker(this IUsageTracking device) - // { - // device.UsageTracker = new UsageTracking(); - // } - //} - - public class UsageTracking - { - public event EventHandler DeviceUsageEnded; - - public InUseTracking InUseTracker { get; protected set; } - - public bool UsageIsTracked { get; set; } - public DateTime UsageStartTime { get; protected set; } - public DateTime UsageEndTime { get; protected set; } - - public Device Parent { get; private set; } - - public UsageTracking(Device parent) - { - Parent = parent; - - InUseTracker = new InUseTracking(); - - InUseTracker.InUseFeedback.OutputChange +=new EventHandler(InUseFeedback_OutputChange); - } - - void InUseFeedback_OutputChange(object sender, EventArgs e) - { - if(InUseTracker.InUseFeedback.BoolValue) - { - StartDeviceUsage(); - } - else - { - EndDeviceUsage(); - } - } - - - /// - /// Stores the usage start time - /// - public void StartDeviceUsage() - { - UsageStartTime = DateTime.Now; - } - - /// - /// Calculates the difference between the usage start and end times, gets the total minutes used and fires an event to pass that info to a consumer - /// - public void EndDeviceUsage() - { - try - { - UsageEndTime = DateTime.Now; - - if (UsageStartTime != null) - { - var timeUsed = UsageEndTime - UsageStartTime; - - var handler = DeviceUsageEnded; - - if (handler != null) - { - Debug.Console(1, "Device Usage Ended for: {0} at {1}. In use for {2} minutes.", Parent.Name, UsageEndTime, timeUsed.Minutes); - handler(this, new DeviceUsageEventArgs() { UsageEndTime = UsageEndTime, MinutesUsed = timeUsed.Minutes }); - } - } - } - catch (Exception e) - { -<<<<<<< HEAD - Debug.Console(1, "Device Usage Ended at {0}. In use for {1} minutes.", UsageEndTime, timeUsed.Minutes); - handler(this, new DeviceUsageEventArgs() { UsageEndTime = UsageEndTime, MinutesUsed = timeUsed.Minutes }); -======= - Debug.Console(1, "Error ending device usage: {0}", e); ->>>>>>> origin/feature/fusion-nyu - } - } - } - - public class DeviceUsageEventArgs : EventArgs - { - public DateTime UsageEndTime { get; set; } - public int MinutesUsed { get; set; } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/REMOVE IHasFeedbacks.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/REMOVE IHasFeedbacks.cs deleted file mode 100644 index 511a952b..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/REMOVE IHasFeedbacks.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; - -namespace PepperDash.Essentials.Core -{ - //public interface IHasFeedback : IKeyed - //{ - // /// - // /// This method shall return a list of all Output objects on a device, - // /// including all "aggregate" devices. - // /// - // List Feedbacks { get; } - - //} - - - //public static class IHasFeedbackExtensions - //{ - // public static void DumpFeedbacksToConsole(this IHasFeedback source, bool getCurrentStates) - // { - // var outputs = source.Feedbacks.OrderBy(x => x.Type); - // if (outputs != null) - // { - // Debug.Console(0, source, "\n\nAvailable outputs:"); - // foreach (var o in outputs) - // { - // string val = ""; - // if (getCurrentStates) - // { - // switch (o.Type) - // { - // case eCueType.Bool: - // val = " = " + o.BoolValue; - // break; - // case eCueType.Int: - // val = " = " + o.IntValue; - // break; - // case eCueType.String: - // val = " = " + o.StringValue; - // break; - // //case eOutputType.Other: - // // break; - // } - // } - // Debug.Console(0, "{0,-8} {1,5} {2}{3}", o.Type, o.Cue.Number, - // (string.IsNullOrEmpty(o.Cue.Name) ? "-none-" : o.Cue.Name), val); - // } - // } - // else - // Debug.Console(0, source, "No available outputs:"); - // } - //} -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/SourceListItem.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/SourceListItem.cs deleted file mode 100644 index e302a2a4..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/SourceListItem.cs +++ /dev/null @@ -1,176 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharp; -using Crestron.SimplSharp.CrestronIO; -using Crestron.SimplSharpPro; - -using Newtonsoft.Json; -using Newtonsoft.Json.Converters; -using Newtonsoft.Json.Linq; -using PepperDash.Core; - -namespace PepperDash.Essentials.Core -{ - /// - /// - /// - public enum eSourceListItemType - { - Route, Off, Other, SomethingAwesomerThanThese - } - - /// - /// Represents an item in a source list - can be deserialized into. - /// - public class SourceListItem - { - [JsonProperty("sourceKey")] - public string SourceKey { get; set; } - - /// - /// Returns the source Device for this, if it exists in DeviceManager - /// - [JsonIgnore] - public Device SourceDevice - { - get - { - if (_SourceDevice == null) - _SourceDevice = DeviceManager.GetDeviceForKey(SourceKey) as Device; - return _SourceDevice; - } - } - Device _SourceDevice; - - /// - /// Gets either the source's Name or this AlternateName property, if - /// defined. If source doesn't exist, returns "Missing source" - /// - [JsonProperty("preferredName")] - public string PreferredName - { - get - { - if (string.IsNullOrEmpty(Name)) - { - if (SourceDevice == null) - return "---"; - return SourceDevice.Name; - } - return Name; - } - } - - /// - /// A name that will override the source's name on the UI - /// - [JsonProperty("name")] - public string Name { get; set; } - - /// - /// Specifies and icon for the source list item - /// - [JsonProperty("icon")] - public string Icon { get; set; } - - /// - /// Alternate icon - /// - [JsonProperty("altIcon")] - public string AltIcon { get; set; } - - /// - /// Indicates if the item should be included in the source list - /// - [JsonProperty("includeInSourceList")] - public bool IncludeInSourceList { get; set; } - - /// - /// Used to specify the order of the items in the source list when displayed - /// - [JsonProperty("order")] - public int Order { get; set; } - - /// - /// The key of the device for volume control - /// - [JsonProperty("volumeControlKey")] - public string VolumeControlKey { get; set; } - - /// - /// The type of source list item - /// - [JsonProperty("type")] - [JsonConverter(typeof(StringEnumConverter))] - public eSourceListItemType Type { get; set; } - - /// - /// The list of routes to execute for this source list item - /// - [JsonProperty("routeList")] - public List RouteList { get; set; } - - /// - /// Indicates if this source should be disabled for sharing to the far end call participants via codec content - /// - [JsonProperty("disableCodecSharing")] - public bool DisableCodecSharing { get; set; } - - /// - /// Indicates if this source should be disabled for routing to a shared output - /// - [JsonProperty("disableRoutedSharing")] - public bool DisableRoutedSharing { get; set; } - - [JsonProperty("destinations")] - public List Destinations { get; set; } - /// - /// A means to reference a source list for this source item, in the event that this source has an input that can have sources routed to it - /// - [JsonProperty("sourceListKey")] - public string SourceListKey { get; set; } - - /// - /// Indicates if the device associated with this source is controllable - /// - [JsonProperty("isControllable")] - public bool IsControllable { get; set; } - - /// - /// Indicates that the device associated with this source has audio available - /// - [JsonProperty("isAudioSource")] - public bool IsAudioSource { get; set; } - - public SourceListItem() - { - Icon = "Blank"; - } - - - } - - public class SourceRouteListItem - { - [JsonProperty("sourceKey")] - public string SourceKey { get; set; } - - [JsonProperty("destinationKey")] - public string DestinationKey { get; set; } - - [JsonProperty("type")] - public eRoutingSignalType Type { get; set; } - } - - /// - /// Defines the valid destination types for SourceListItems in a room - /// - public enum eSourceListItemDestinationTypes - { - defaultDisplay, - leftDisplay, - rightDisplay, - programAudio, - codecContent - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Display/MockDisplay.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Display/MockDisplay.cs deleted file mode 100644 index 266c1cbb..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Display/MockDisplay.cs +++ /dev/null @@ -1,237 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.DM; -using Crestron.SimplSharpPro.DM.Endpoints; -using Crestron.SimplSharpPro.DM.Endpoints.Transmitters; - -using PepperDash.Core; -using PepperDash.Essentials.Core.Bridges; -using PepperDash.Essentials.Core.Routing; -using PepperDash.Essentials.Core.Config; - -namespace PepperDash.Essentials.Core -{ - /// - /// - /// - public class MockDisplay : TwoWayDisplayBase, IBasicVolumeWithFeedback, IBridgeAdvanced - - { - public RoutingInputPort HdmiIn1 { get; private set; } - public RoutingInputPort HdmiIn2 { get; private set; } - public RoutingInputPort HdmiIn3 { get; private set; } - public RoutingInputPort ComponentIn1 { get; private set; } - public RoutingInputPort VgaIn1 { get; private set; } - - bool _PowerIsOn; - bool _IsWarmingUp; - bool _IsCoolingDown; - - protected override Func PowerIsOnFeedbackFunc - { - get - { - return () => - { - Debug.Console(2, this, "*************************************************** Display Power is {0}", _PowerIsOn ? "on" : "off"); - return _PowerIsOn; - }; - } } - protected override Func IsCoolingDownFeedbackFunc - { - get - { - return () => - { - Debug.Console(2, this, "*************************************************** {0}", _IsCoolingDown ? "Display is cooling down" : "Display has finished cooling down"); - return _IsCoolingDown; - }; - } - } - protected override Func IsWarmingUpFeedbackFunc - { - get - { - return () => - { - Debug.Console(2, this, "*************************************************** {0}", _IsWarmingUp ? "Display is warming up" : "Display has finished warming up"); - return _IsWarmingUp; - }; - } - } - protected override Func CurrentInputFeedbackFunc { get { return () => "Not Implemented"; } } - - int VolumeHeldRepeatInterval = 200; - ushort VolumeInterval = 655; - ushort _FakeVolumeLevel = 31768; - bool _IsMuted; - - public MockDisplay(string key, string name) - : base(key, name) - { - HdmiIn1 = new RoutingInputPort(RoutingPortNames.HdmiIn1, eRoutingSignalType.Audio | eRoutingSignalType.Video, - eRoutingPortConnectionType.Hdmi, null, this); - HdmiIn2 = new RoutingInputPort(RoutingPortNames.HdmiIn2, eRoutingSignalType.Audio | eRoutingSignalType.Video, - eRoutingPortConnectionType.Hdmi, null, this); - HdmiIn3 = new RoutingInputPort(RoutingPortNames.HdmiIn3, eRoutingSignalType.Audio | eRoutingSignalType.Video, - eRoutingPortConnectionType.Hdmi, null, this); - ComponentIn1 = new RoutingInputPort(RoutingPortNames.ComponentIn, eRoutingSignalType.Video, - eRoutingPortConnectionType.Component, null, this); - VgaIn1 = new RoutingInputPort(RoutingPortNames.VgaIn, eRoutingSignalType.Video, - eRoutingPortConnectionType.Composite, null, this); - InputPorts.AddRange(new[] { HdmiIn1, HdmiIn2, HdmiIn3, ComponentIn1, VgaIn1 }); - - VolumeLevelFeedback = new IntFeedback(() => { return _FakeVolumeLevel; }); - MuteFeedback = new BoolFeedback("MuteOn", () => _IsMuted); - - WarmupTime = 10000; - CooldownTime = 10000; - } - - public override void PowerOn() - { - if (!PowerIsOnFeedback.BoolValue && !_IsWarmingUp && !_IsCoolingDown) - { - _IsWarmingUp = true; - IsWarmingUpFeedback.InvokeFireUpdate(); - // Fake power-up cycle - WarmupTimer = new CTimer(o => - { - _IsWarmingUp = false; - _PowerIsOn = true; - IsWarmingUpFeedback.InvokeFireUpdate(); - PowerIsOnFeedback.InvokeFireUpdate(); - }, WarmupTime); - } - } - - public override void PowerOff() - { - // If a display has unreliable-power off feedback, just override this and - // remove this check. - if (PowerIsOnFeedback.BoolValue && !_IsWarmingUp && !_IsCoolingDown) - { - _IsCoolingDown = true; - IsCoolingDownFeedback.InvokeFireUpdate(); - // Fake cool-down cycle - CooldownTimer = new CTimer(o => - { - Debug.Console(2, this, "Cooldown timer ending"); - _IsCoolingDown = false; - IsCoolingDownFeedback.InvokeFireUpdate(); - _PowerIsOn = false; - PowerIsOnFeedback.InvokeFireUpdate(); - }, CooldownTime); - } - } - - public override void PowerToggle() - { - if (PowerIsOnFeedback.BoolValue && !IsWarmingUpFeedback.BoolValue) - PowerOff(); - else if (!PowerIsOnFeedback.BoolValue && !IsCoolingDownFeedback.BoolValue) - PowerOn(); - } - - public override void ExecuteSwitch(object selector) - { - Debug.Console(2, this, "ExecuteSwitch: {0}", selector); - - if (!_PowerIsOn) - { - PowerOn(); - } - } - - - - #region IBasicVolumeWithFeedback Members - - public IntFeedback VolumeLevelFeedback { get; private set; } - - public void SetVolume(ushort level) - { - _FakeVolumeLevel = level; - VolumeLevelFeedback.InvokeFireUpdate(); - } - - public void MuteOn() - { - _IsMuted = true; - MuteFeedback.InvokeFireUpdate(); - } - - public void MuteOff() - { - _IsMuted = false; - MuteFeedback.InvokeFireUpdate(); - } - - public BoolFeedback MuteFeedback { get; private set; } - - #endregion - - #region IBasicVolumeControls Members - - public void VolumeUp(bool pressRelease) - { - //while (pressRelease) - //{ - Debug.Console(2, this, "Volume Down {0}", pressRelease); - if (pressRelease) - { - var newLevel = _FakeVolumeLevel + VolumeInterval; - SetVolume((ushort)newLevel); - CrestronEnvironment.Sleep(VolumeHeldRepeatInterval); - } - //} - } - - public void VolumeDown(bool pressRelease) - { - //while (pressRelease) - //{ - Debug.Console(2, this, "Volume Up {0}", pressRelease); - if (pressRelease) - { - var newLevel = _FakeVolumeLevel - VolumeInterval; - SetVolume((ushort)newLevel); - CrestronEnvironment.Sleep(VolumeHeldRepeatInterval); - } - //} - } - - public void MuteToggle() - { - _IsMuted = !_IsMuted; - MuteFeedback.InvokeFireUpdate(); - } - - #endregion - - public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) - { - LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge); - } - } - - public class MockDisplayFactory : EssentialsDeviceFactory - { - public MockDisplayFactory() - { - TypeNames = new List() { "mockdisplay" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new Mock Display Device"); - return new MockDisplay(dc.Key, dc.Name); - } - } - -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/CenCn2Controller.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/CenCn2Controller.cs deleted file mode 100644 index bdd53bde..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/CenCn2Controller.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -namespace PepperDash_Essentials_Core.Gateways -{ - public class CenCn2Controller - { - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/CenRfgwController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/CenRfgwController.cs deleted file mode 100644 index 03e8f51d..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/CenRfgwController.cs +++ /dev/null @@ -1,195 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.Gateways; -using Newtonsoft.Json; -using Crestron.SimplSharpPro.DeviceSupport; - - -using PepperDash.Core; -using PepperDash.Essentials.Core.Config; - - -namespace PepperDash.Essentials.Core -{ - [Description("Wrapper class for Crestron Infinet-EX Gateways")] - public class CenRfgwController : CrestronGenericBaseDevice, IHasReady - { - public event EventHandler IsReadyEvent; - - public bool IsReady { get; private set; } - - private GatewayBase _gateway; - - public GatewayBase GateWay - { - get { return _gateway; } - } - - /// - /// Constructor for the on-board gateway - /// - /// - /// - /// - public CenRfgwController(string key, string name, GatewayBase gateway) : - base(key, name, gateway) - { - _gateway = gateway; - IsReady = true; - FireIsReadyEvent(IsReady); - } - - public CenRfgwController(string key, Func preActivationFunc, DeviceConfig config) : - base(key, config.Name) - { - IsReady = false; - FireIsReadyEvent(IsReady); - AddPreActivationAction(() => - { - _gateway = preActivationFunc(config); - - IsReady = true; - RegisterCrestronGenericBase(_gateway); - FireIsReadyEvent(IsReady); - - }); - } - - public static GatewayBase GetNewIpRfGateway(DeviceConfig dc) - { - var control = CommFactory.GetControlPropertiesConfig(dc); - var type = dc.Type; - var ipId = control.IpIdInt; - - if (type.Equals("cenrfgwex", StringComparison.InvariantCultureIgnoreCase)) - { - return new CenRfgwEx(ipId, Global.ControlSystem); - } - if (type.Equals("cenerfgwpoe", StringComparison.InvariantCultureIgnoreCase)) - { - return new CenErfgwPoe(ipId, Global.ControlSystem); - } - return null; - } - - private void FireIsReadyEvent(bool data) - { - var handler = IsReadyEvent; - if (handler == null) return; - - handler(this, new IsReadyEventArgs(data)); - - } - - public static GatewayBase GetNewSharedIpRfGateway(DeviceConfig dc) - { - var control = CommFactory.GetControlPropertiesConfig(dc); - var ipId = control.IpIdInt; - - if (dc.Type.Equals("cenrfgwex", StringComparison.InvariantCultureIgnoreCase)) - { - return new CenRfgwExEthernetSharable(ipId, Global.ControlSystem); - } - if (dc.Type.Equals("cenerfgwpoe", StringComparison.InvariantCultureIgnoreCase)) - { - return new CenErfgwPoeEthernetSharable(ipId, Global.ControlSystem); - } - return null; - } - - public static GatewayBase GetCenRfgwCresnetController(DeviceConfig dc) - { - var control = CommFactory.GetControlPropertiesConfig(dc); - var type = dc.Type; - var cresnetId = control.CresnetIdInt; - var branchId = control.ControlPortNumber; - var parentKey = string.IsNullOrEmpty(control.ControlPortDevKey) ? "processor" : control.ControlPortDevKey; - - if (parentKey.Equals("processor", StringComparison.CurrentCultureIgnoreCase)) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new CenRfgw", parentKey); - if (type.Equals("cenerfgwpoe", StringComparison.InvariantCultureIgnoreCase)) - { - return new CenErfgwPoeCresnet(cresnetId, Global.ControlSystem); - } - if (type.Equals("cenrfgwex", StringComparison.InvariantCultureIgnoreCase)) - { - return new CenRfgwExCresnet(cresnetId, Global.ControlSystem); - } - } - var cresnetBridge = DeviceManager.GetDeviceForKey(parentKey) as ICresnetBridge; - - if (cresnetBridge != null) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new CenRfgw", parentKey); - - if (type.Equals("cenerfgwpoe", StringComparison.InvariantCultureIgnoreCase)) - { - return new CenErfgwPoeCresnet(cresnetId, cresnetBridge.Branches[branchId]); - } - if (type.Equals("cenrfgwex", StringComparison.InvariantCultureIgnoreCase)) - { - return new CenRfgwExCresnet(cresnetId, cresnetBridge.Branches[branchId]); - } - } - Debug.Console(0, "Device {0} is not a valid cresnet master", parentKey); - return null; - } - - - - - - - - public enum EExGatewayType - { - Ethernet, - EthernetShared, - Cresnet - } - - - #region Factory - - public class CenRfgwControllerFactory : EssentialsDeviceFactory - { - public CenRfgwControllerFactory() - { - TypeNames = new List {"cenrfgwex", "cenerfgwpoe"}; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - - Debug.Console(1, "Factory Attempting to create new CEN-GWEXER Device"); - - var props = JsonConvert.DeserializeObject(dc.Properties.ToString()); - - EExGatewayType gatewayType = - (EExGatewayType) Enum.Parse(typeof (EExGatewayType), props.GatewayType, true); - - switch (gatewayType) - { - case (EExGatewayType.Ethernet): - return new CenRfgwController(dc.Key, dc.Name, GetNewIpRfGateway(dc)); - case (EExGatewayType.EthernetShared): - return new CenRfgwController(dc.Key, dc.Name, GetNewSharedIpRfGateway(dc)); - case (EExGatewayType.Cresnet): - return new CenRfgwController(dc.Key, GetCenRfgwCresnetController, dc); - } - return null; - } - } - - #endregion - } - - -} - - diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/EssentialsRfGatewayConfig.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/EssentialsRfGatewayConfig.cs deleted file mode 100644 index e1ae8c11..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/EssentialsRfGatewayConfig.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using PepperDash.Core; -using PepperDash.Essentials.Core.Config; - - -namespace PepperDash.Essentials.Core -{ - public class EssentialsRfGatewayConfig - { - [JsonProperty("control")] - public EssentialsControlPropertiesConfig Control { get; set; } - - [JsonProperty("gatewayType")] - public string GatewayType { get; set; } - - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/CenOdtOccupancySensorBaseController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/CenOdtOccupancySensorBaseController.cs deleted file mode 100644 index eae2f993..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/CenOdtOccupancySensorBaseController.cs +++ /dev/null @@ -1,775 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Resources; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.GeneralIO; -using Newtonsoft.Json; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.Bridges; - -namespace PepperDash.Essentials.Core -{ - [Description("Wrapper class for CEN-ODT-C-POE")] - [ConfigSnippet("\"properties\": {\"control\": {\"method\": \"cresnet\",\"cresnetId\": \"97\"},\"enablePir\": true,\"enableLedFlash\": true,\"enableRawStates\":true,\"remoteTimeout\": 30,\"internalPhotoSensorMinChange\": 0,\"externalPhotoSensorMinChange\": 0,\"enableUsA\": true,\"enableUsB\": true,\"orWhenVacatedState\": true}")] - public class CenOdtOccupancySensorBaseController : CrestronGenericBridgeableBaseDevice, IOccupancyStatusProvider - { - public CenOdtCPoe OccSensor { get; private set; } - - public GlsOccupancySensorPropertiesConfig PropertiesConfig { get; private set; } - - public BoolFeedback RoomIsOccupiedFeedback { get; private set; } - - public BoolFeedback GraceOccupancyDetectedFeedback { get; private set; } - - public BoolFeedback RawOccupancyFeedback { get; private set; } - - public BoolFeedback PirSensorEnabledFeedback { get; private set; } - - public BoolFeedback LedFlashEnabledFeedback { get; private set; } - - public BoolFeedback ShortTimeoutEnabledFeedback { get; private set; } - - public IntFeedback PirSensitivityInVacantStateFeedback { get; private set; } - - public IntFeedback PirSensitivityInOccupiedStateFeedback { get; private set; } - - public IntFeedback CurrentTimeoutFeedback { get; private set; } - - public IntFeedback RemoteTimeoutFeedback { get; private set; } - - public IntFeedback InternalPhotoSensorValue { get; set; } - - public IntFeedback ExternalPhotoSensorValue { get; set; } - - public BoolFeedback OrWhenVacatedFeedback { get; private set; } - - public BoolFeedback AndWhenVacatedFeedback { get; private set; } - - public BoolFeedback UltrasonicAEnabledFeedback { get; private set; } - - public BoolFeedback UltrasonicBEnabledFeedback { get; private set; } - - public IntFeedback UltrasonicSensitivityInVacantStateFeedback { get; private set; } - - public IntFeedback UltrasonicSensitivityInOccupiedStateFeedback { get; private set; } - - public BoolFeedback RawOccupancyPirFeedback { get; private set; } - - public BoolFeedback RawOccupancyUsFeedback { get; private set; } - - public BoolFeedback IdentityModeFeedback { get; private set; } - - // Debug properties - public bool InTestMode { get; private set; } - - public bool TestRoomIsOccupiedFeedback { get; private set; } - - public Func RoomIsOccupiedFeedbackFunc - { - get - { - return () => InTestMode ? TestRoomIsOccupiedFeedback : OccSensor.OccupancyDetectedFeedback.BoolValue; - } - } - - public CenOdtOccupancySensorBaseController(string key, string name, CenOdtCPoe sensor, GlsOccupancySensorPropertiesConfig config) - : base(key, name, sensor) - { - PropertiesConfig = config; - - OccSensor = sensor; - - RoomIsOccupiedFeedback = new BoolFeedback(RoomIsOccupiedFeedbackFunc); - - PirSensorEnabledFeedback = new BoolFeedback(() => OccSensor.PassiveInfraredSensorEnabledFeedback.BoolValue); - - LedFlashEnabledFeedback = new BoolFeedback(() => OccSensor.LedFlashEnabledFeedback.BoolValue); - - ShortTimeoutEnabledFeedback = new BoolFeedback(() => OccSensor.ShortTimeoutEnabledFeedback.BoolValue); - - PirSensitivityInVacantStateFeedback = new IntFeedback(() => (int)OccSensor.PassiveInfraredSensorSensitivityInVacantStateFeedback); - - PirSensitivityInOccupiedStateFeedback = new IntFeedback(() => (int)OccSensor.PassiveInfraredSensorSensitivityInOccupiedStateFeedback); - - CurrentTimeoutFeedback = new IntFeedback(() => OccSensor.CurrentTimeoutFeedback.UShortValue); - - RemoteTimeoutFeedback = new IntFeedback(() => OccSensor.RemoteTimeout.UShortValue); - - GraceOccupancyDetectedFeedback = new BoolFeedback(() => OccSensor.GraceOccupancyDetectedFeedback.BoolValue); - - RawOccupancyFeedback = new BoolFeedback(() => OccSensor.RawOccupancyDetectedFeedback.BoolValue); - - InternalPhotoSensorValue = new IntFeedback(() => OccSensor.InternalPhotoSensorValueFeedback.UShortValue); - - //ExternalPhotoSensorValue = new IntFeedback(() => OccSensor.ex.UShortValue); - - AndWhenVacatedFeedback = new BoolFeedback(() => OccSensor.AndWhenVacatedFeedback.BoolValue); - - OrWhenVacatedFeedback = new BoolFeedback(() => OccSensor.OrWhenVacatedFeedback.BoolValue); - - UltrasonicAEnabledFeedback = new BoolFeedback(() => OccSensor.UltrasonicSensorSideAEnabledFeedback.BoolValue); - - UltrasonicBEnabledFeedback = new BoolFeedback(() => OccSensor.UltrasonicSensorSideBEnabledFeedback.BoolValue); - - RawOccupancyPirFeedback = new BoolFeedback(() => OccSensor.RawOccupancyDetectedByPassiveInfraredSensorFeedback.BoolValue); - - RawOccupancyUsFeedback = new BoolFeedback(() => OccSensor.RawOccupancyDetectedByUltrasonicSensorFeedback.BoolValue); - - IdentityModeFeedback = new BoolFeedback(()=>OccSensor.IdentityModeOnFeedback.BoolValue); - - UltrasonicSensitivityInVacantStateFeedback = new IntFeedback(() => (int)OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback); - - UltrasonicSensitivityInOccupiedStateFeedback = new IntFeedback(() => (int)OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback); - - OccSensor.BaseEvent += new Crestron.SimplSharpPro.BaseEventHandler(OccSensor_BaseEvent); - - OccSensor.CenOccupancySensorChange += new GenericEventHandler(OccSensor_CenOccupancySensorChange); - - AddPostActivationAction(() => - { - OccSensor.OnlineStatusChange += (o, a) => - { - if (a.DeviceOnLine) - { - ApplySettingsToSensorFromConfig(); - } - }; - - if (OccSensor.IsOnline) - { - ApplySettingsToSensorFromConfig(); - - } - }); - } - - /// - /// Applies any sensor settings defined in config - /// - protected virtual void ApplySettingsToSensorFromConfig() - { - Debug.Console(1, this, "Checking config for settings to apply"); - - if (PropertiesConfig.EnablePir != null) - { - SetPirEnable((bool)PropertiesConfig.EnablePir); - } - - if (PropertiesConfig.EnableLedFlash != null) - { - SetLedFlashEnable((bool)PropertiesConfig.EnableLedFlash); - } - - if (PropertiesConfig.RemoteTimeout != null) - { - SetRemoteTimeout((ushort)PropertiesConfig.RemoteTimeout); - } - - if (PropertiesConfig.ShortTimeoutState != null) - { - SetShortTimeoutState((bool)PropertiesConfig.ShortTimeoutState); - } - - if (PropertiesConfig.EnableRawStates != null) - { - EnableRawStates((bool)PropertiesConfig.EnableRawStates); - } - - if (PropertiesConfig.InternalPhotoSensorMinChange != null) - { - SetInternalPhotoSensorMinChange((ushort)PropertiesConfig.InternalPhotoSensorMinChange); - } - - if (PropertiesConfig.EnableUsA != null) - { - SetUsAEnable((bool)PropertiesConfig.EnableUsA); - } - - if (PropertiesConfig.EnableUsB != null) - { - SetUsBEnable((bool)PropertiesConfig.EnableUsB); - } - - if (PropertiesConfig.OrWhenVacatedState != null) - { - SetOrWhenVacatedState((bool)PropertiesConfig.OrWhenVacatedState); - } - - if (PropertiesConfig.AndWhenVacatedState != null) - { - SetAndWhenVacatedState((bool)PropertiesConfig.AndWhenVacatedState); - } - - // TODO [ ] feature/cenoodtcpoe-sensor-sensitivity-configuration - if (PropertiesConfig.UsSensitivityOccupied != null) - { - SetUsSensitivityOccupied((ushort)PropertiesConfig.UsSensitivityOccupied); - } - - if (PropertiesConfig.UsSensitivityVacant != null) - { - SetUsSensitivityVacant((ushort)PropertiesConfig.UsSensitivityVacant); - } - - if (PropertiesConfig.PirSensitivityOccupied != null) - { - SetPirSensitivityOccupied((ushort)PropertiesConfig.PirSensitivityOccupied); - } - - if (PropertiesConfig.PirSensitivityVacant != null) - { - SetPirSensitivityVacant((ushort)PropertiesConfig.PirSensitivityVacant); - } - } - - /// - /// Catches events for feedbacks on the base class. Any extending wrapper class should call this delegate after it checks for it's own event IDs. - /// - /// - /// - protected virtual void OccSensor_CenOccupancySensorChange(object device, GenericEventArgs args) - { - if (args.EventId == GlsOccupancySensorBase.PirEnabledFeedbackEventId) - PirSensorEnabledFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.LedFlashEnabledFeedbackEventId) - LedFlashEnabledFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.ShortTimeoutEnabledFeedbackEventId) - ShortTimeoutEnabledFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.PirSensitivityInOccupiedStateFeedbackEventId) - PirSensitivityInOccupiedStateFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.PirSensitivityInVacantStateFeedbackEventId) - PirSensitivityInVacantStateFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.RawOccupancyPirFeedbackEventId) - RawOccupancyPirFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.RawOccupancyUsFeedbackEventId) - RawOccupancyUsFeedback.FireUpdate(); - } - - protected virtual void OccSensor_BaseEvent(Crestron.SimplSharpPro.GenericBase device, Crestron.SimplSharpPro.BaseEventArgs args) - { - Debug.Console(2, this, "PoEOccupancySensorChange EventId: {0}", args.EventId); - - if (args.EventId == Crestron.SimplSharpPro.GeneralIO.GlsOccupancySensorBase.RoomOccupiedFeedbackEventId - || args.EventId == Crestron.SimplSharpPro.GeneralIO.GlsOccupancySensorBase.RoomVacantFeedbackEventId) - { - Debug.Console(1, this, "Occupancy State: {0}", OccSensor.OccupancyDetectedFeedback.BoolValue); - RoomIsOccupiedFeedback.FireUpdate(); - } - else if (args.EventId == GlsOccupancySensorBase.TimeoutFeedbackEventId) - CurrentTimeoutFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.TimeoutLocalFeedbackEventId) - RemoteTimeoutFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.GraceOccupancyDetectedFeedbackEventId) - GraceOccupancyDetectedFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.RawOccupancyFeedbackEventId) - RawOccupancyFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.InternalPhotoSensorValueFeedbackEventId) - InternalPhotoSensorValue.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.ExternalPhotoSensorValueFeedbackEventId) - ExternalPhotoSensorValue.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.AndWhenVacatedFeedbackEventId) - AndWhenVacatedFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.OrWhenVacatedFeedbackEventId) - OrWhenVacatedFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.UsAEnabledFeedbackEventId) - UltrasonicAEnabledFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.UsBEnabledFeedbackEventId) - UltrasonicBEnabledFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.UsSensitivityInOccupiedStateFeedbackEventId) - UltrasonicSensitivityInOccupiedStateFeedback.FireUpdate(); - else if (args.EventId == GlsOccupancySensorBase.UsSensitivityInVacantStateFeedbackEventId) - UltrasonicSensitivityInVacantStateFeedback.FireUpdate(); - } - - public void SetTestMode(bool mode) - { - InTestMode = mode; - - Debug.Console(1, this, "In Mock Mode: '{0}'", InTestMode); - } - - public void SetTestOccupiedState(bool state) - { - if (!InTestMode) - Debug.Console(1, "Mock mode not enabled"); - else - { - TestRoomIsOccupiedFeedback = state; - - RoomIsOccupiedFeedback.FireUpdate(); - } - } - - /// - /// Sets the identity mode on or off - /// - /// - public void SetIdentityMode(bool state) - { - if (state) - OccSensor.IdentityModeOn(); - else - OccSensor.IdentityModeOff(); - - Debug.Console(1, this, "Identity Mode: {0}", OccSensor.IdentityModeOnFeedback.BoolValue ? "On" : "Off"); - } - - /// - /// Enables or disables the PIR sensor - /// - /// - public void SetPirEnable(bool state) - { - if (state) - { - OccSensor.EnablePassiveInfraredSensor(); - } - else - { - OccSensor.DisablePassiveInfraredSensor(); - } - } - - /// - /// Enables or disables the LED Flash - /// - /// - public void SetLedFlashEnable(bool state) - { - if (state) - { - OccSensor.EnableLedFlash(); - } - else - { - OccSensor.DisableLedFlash(); - } - } - - /// - /// Enables or disables short timeout based on state - /// - /// - public void SetShortTimeoutState(bool state) - { - if (state) - { - OccSensor.EnableShortTimeout(); - } - else - { - OccSensor.DisableShortTimeout(); - } - } - - public void IncrementPirSensitivityInOccupiedState(bool pressRelease) - { - if ((int)OccSensor.PassiveInfraredSensorSensitivityInOccupiedStateFeedback != 3) - { - OccSensor.PassiveInfraredSensorSensitivityInOccupiedState = OccSensor.PassiveInfraredSensorSensitivityInOccupiedStateFeedback + 1; - } - } - - public void DecrementPirSensitivityInOccupiedState(bool pressRelease) - { - if ((int)OccSensor.PassiveInfraredSensorSensitivityInOccupiedStateFeedback != 0) - { - OccSensor.PassiveInfraredSensorSensitivityInOccupiedState = OccSensor.PassiveInfraredSensorSensitivityInOccupiedStateFeedback - 1; - } - } - - public void IncrementPirSensitivityInVacantState(bool pressRelease) - { - if ((int)OccSensor.PassiveInfraredSensorSensitivityInVacantStateFeedback != 3) - { - OccSensor.PassiveInfraredSensorSensitivityInVacantState = OccSensor.PassiveInfraredSensorSensitivityInVacantStateFeedback + 1; - } - } - - public void DecrementPirSensitivityInVacantState(bool pressRelease) - { - if ((int)OccSensor.PassiveInfraredSensorSensitivityInVacantStateFeedback != 0) - { - OccSensor.PassiveInfraredSensorSensitivityInVacantState = OccSensor.PassiveInfraredSensorSensitivityInVacantStateFeedback - 1; - } - } - - public void IncrementUsSensitivityInOccupiedState(bool pressRelease) - { - if ((int)OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback < 3) - { - OccSensor.UltrasonicSensorSensitivityInOccupiedState = OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback + 1; - } - else if ((int)OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback > 4) - { - OccSensor.UltrasonicSensorSensitivityInOccupiedState = OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback - 1; - } - else if ((int)OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback == 4) - { - OccSensor.UltrasonicSensorSensitivityInOccupiedState = 0; - } - } - - public void DecrementUsSensitivityInOccupiedState(bool pressRelease) - { - if ((int)OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback > 0 - && (int)OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback < 4) - { - OccSensor.UltrasonicSensorSensitivityInOccupiedState = OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback - 1; - } - else if ((int)OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback > 3 - && (int)OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback < 7) - { - OccSensor.UltrasonicSensorSensitivityInOccupiedState = OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback + 1; - } - } - - public void IncrementUsSensitivityInVacantState(bool pressRelease) - { - if ((int)OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback < 3) - { - OccSensor.UltrasonicSensorSensitivityInVacantState = OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback + 1; - } - else if ((int)OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback > 4) - { - OccSensor.UltrasonicSensorSensitivityInVacantState = OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback - 1; - } - else if ((int)OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback == 4) - { - OccSensor.UltrasonicSensorSensitivityInVacantState = 0; - } - } - - public void DecrementUsSensitivityInVacantState(bool pressRelease) - { - if ((int)OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback > 0 - && (int)OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback < 4) - { - OccSensor.UltrasonicSensorSensitivityInVacantState = OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback - 1; - } - else if ((int)OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback > 3 - && (int)OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback < 7) - { - OccSensor.UltrasonicSensorSensitivityInVacantState = OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback + 1; - } - } - - public void ForceOccupied() - { - OccSensor.ForceOccupied(); - } - - public void ForceVacant() - { - OccSensor.ForceVacant(); - } - - public void EnableRawStates(bool state) - { - if (state) - { - OccSensor.EnableRawStates(); - } - else - OccSensor.DisableRawStates(); - } - - public void SetRemoteTimeout(ushort time) - { - OccSensor.RemoteTimeout.UShortValue = time; - } - - public void SetInternalPhotoSensorMinChange(ushort value) - { - OccSensor.InternalPhotoSensorMinimumChange.UShortValue = value; - } - - /// - /// Sets the OrWhenVacated state - /// - /// - public void SetOrWhenVacatedState(bool state) - { - if (state) - { - OccSensor.OrWhenVacated(); - } - } - - /// - /// Sets the AndWhenVacated state - /// - /// - public void SetAndWhenVacatedState(bool state) - { - if (state) - { - OccSensor.AndWhenVacated(); - } - } - - /// - /// Enables or disables the Ultrasonic A sensor - /// - /// - public void SetUsAEnable(bool state) - { - if (state) - { - OccSensor.EnableUltrasonicSensorSideA(); - } - else - { - OccSensor.DisableUltrasonicSensorSideA(); - } - } - - - /// - /// Enables or disables the Ultrasonic B sensor - /// - /// - public void SetUsBEnable(bool state) - { - if (state) - { - OccSensor.EnableUltrasonicSensorSideB(); - } - else - { - OccSensor.DisableUltrasonicSensorSideB(); - } - } - - /// - /// Sets the US sensor sensitivity for occupied state - /// - /// - public void SetUsSensitivityOccupied(ushort sensitivity) - { - var level = (eSensitivityLevel) sensitivity; - if (level == 0) return; - - OccSensor.UltrasonicSensorSensitivityInOccupiedState = level; - } - - /// - /// Sets the US sensor sensitivity for vacant state - /// - /// - public void SetUsSensitivityVacant(ushort sensitivity) - { - var level = (eSensitivityLevel)sensitivity; - if (level == 0) return; - - OccSensor.UltrasonicSensorSensitivityInVacantState = level; - } - - /// - /// Sets the PIR sensor sensitivity for occupied state - /// - /// - public void SetPirSensitivityOccupied(ushort sensitivity) - { - var level = (eSensitivityLevel)sensitivity; - if (level == 0) return; - - OccSensor.PassiveInfraredSensorSensitivityInOccupiedState = level; - } - - /// - /// Sets the PIR sensor sensitivity for vacant state - /// - /// - public void SetPirSensitivityVacant(ushort sensitivity) - { - var level = (eSensitivityLevel)sensitivity; - if (level == 0) return; - - OccSensor.PassiveInfraredSensorSensitivityInVacantState = level; - } - - /// - /// Method to print current settings to console - /// - public void GetSettings() - { - var dash = new string('*', 50); - CrestronConsole.PrintLine(string.Format("{0}\n", dash)); - - Debug.Console(0, this, "Vacancy Detected: {0}", - OccSensor.VacancyDetectedFeedback.BoolValue); - - Debug.Console(0, Key, "Timeout Current: {0} | Remote: {1}", - OccSensor.CurrentTimeoutFeedback.UShortValue, - OccSensor.RemoteTimeout.UShortValue); - - Debug.Console(0, Key, "Short Timeout Enabled: {0}", - OccSensor.ShortTimeoutEnabledFeedback.BoolValue); - - Debug.Console(0, Key, "PIR Sensor Enabled: {0} | Sensitivity Occupied: {1} | Sensitivity Vacant: {2}", - OccSensor.PassiveInfraredSensorEnabledFeedback.BoolValue, - OccSensor.PassiveInfraredSensorSensitivityInOccupiedStateFeedback, - OccSensor.PassiveInfraredSensorSensitivityInVacantStateFeedback); - - Debug.Console(0, Key, "Ultrasonic Enabled A: {0} | B: {1}", - OccSensor.UltrasonicSensorSideAEnabledFeedback.BoolValue, - OccSensor.UltrasonicSensorSideBEnabledFeedback.BoolValue); - - Debug.Console(0, Key, "Ultrasonic Sensitivity Occupied: {0} | Vacant: {1}", - OccSensor.UltrasonicSensorSensitivityInOccupiedStateFeedback, - OccSensor.UltrasonicSensorSensitivityInVacantStateFeedback); - - CrestronConsole.PrintLine(string.Format("{0}\n", dash)); - } - - - public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) - { - LinkOccSensorToApi(this, trilist, joinStart, joinMapKey, bridge); - } - - protected void LinkOccSensorToApi(CenOdtOccupancySensorBaseController occController, - BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) - { - CenOdtOccupancySensorBaseJoinMap joinMap = new CenOdtOccupancySensorBaseJoinMap(joinStart); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - if (bridge != null) - { - bridge.AddJoinMap(Key, joinMap); - } - else - { - Debug.Console(0, this, "Please update config to use 'eiscapiadvanced' to get all join map features for this device."); - } - - Debug.Console(1, occController, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - occController.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.Online.JoinNumber]); - trilist.StringInput[joinMap.Name.JoinNumber].StringValue = occController.Name; - - trilist.OnlineStatusChange += new Crestron.SimplSharpPro.OnlineStatusChangeEventHandler((d, args) => - { - if (args.DeviceOnLine) - { - trilist.StringInput[joinMap.Name.JoinNumber].StringValue = occController.Name; - } - } - ); - - // Occupied status - trilist.SetSigTrueAction(joinMap.ForceOccupied.JoinNumber, new Action(() => occController.ForceOccupied())); - trilist.SetSigTrueAction(joinMap.ForceVacant.JoinNumber, new Action(() => occController.ForceVacant())); - occController.RoomIsOccupiedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RoomOccupiedFeedback.JoinNumber]); - occController.RoomIsOccupiedFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.RoomVacantFeedback.JoinNumber]); - occController.RawOccupancyFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RawOccupancyFeedback.JoinNumber]); - trilist.SetBoolSigAction(joinMap.EnableRawStates.JoinNumber, new Action((b) => occController.EnableRawStates(b))); - - // Timouts - trilist.SetUShortSigAction(joinMap.Timeout.JoinNumber, new Action((u) => occController.SetRemoteTimeout(u))); - occController.CurrentTimeoutFeedback.LinkInputSig(trilist.UShortInput[joinMap.Timeout.JoinNumber]); - occController.RemoteTimeoutFeedback.LinkInputSig(trilist.UShortInput[joinMap.TimeoutLocalFeedback.JoinNumber]); - - // LED Flash - trilist.SetSigTrueAction(joinMap.EnableLedFlash.JoinNumber, new Action(() => occController.SetLedFlashEnable(true))); - trilist.SetSigTrueAction(joinMap.DisableLedFlash.JoinNumber, new Action(() => occController.SetLedFlashEnable(false))); - occController.LedFlashEnabledFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.EnableLedFlash.JoinNumber]); - - // Short Timeout - trilist.SetSigTrueAction(joinMap.EnableShortTimeout.JoinNumber, new Action(() => occController.SetShortTimeoutState(true))); - trilist.SetSigTrueAction(joinMap.DisableShortTimeout.JoinNumber, new Action(() => occController.SetShortTimeoutState(false))); - occController.ShortTimeoutEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnableShortTimeout.JoinNumber]); - - // PIR Sensor - trilist.SetSigTrueAction(joinMap.EnablePir.JoinNumber, new Action(() => occController.SetPirEnable(true))); - trilist.SetSigTrueAction(joinMap.DisablePir.JoinNumber, new Action(() => occController.SetPirEnable(false))); - occController.PirSensorEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnablePir.JoinNumber]); - - // PIR Sensitivity in Occupied State - trilist.SetBoolSigAction(joinMap.IncrementPirInOccupiedState.JoinNumber, new Action((b) => occController.IncrementPirSensitivityInOccupiedState(b))); - trilist.SetBoolSigAction(joinMap.DecrementPirInOccupiedState.JoinNumber, new Action((b) => occController.DecrementPirSensitivityInOccupiedState(b))); - occController.PirSensitivityInOccupiedStateFeedback.LinkInputSig(trilist.UShortInput[joinMap.PirSensitivityInOccupiedState.JoinNumber]); - - // PIR Sensitivity in Vacant State - trilist.SetBoolSigAction(joinMap.IncrementPirInVacantState.JoinNumber, new Action((b) => occController.IncrementPirSensitivityInVacantState(b))); - trilist.SetBoolSigAction(joinMap.DecrementPirInVacantState.JoinNumber, new Action((b) => occController.DecrementPirSensitivityInVacantState(b))); - occController.PirSensitivityInVacantStateFeedback.LinkInputSig(trilist.UShortInput[joinMap.PirSensitivityInVacantState.JoinNumber]); - - // OR When Vacated - trilist.SetBoolSigAction(joinMap.OrWhenVacated.JoinNumber, new Action((b) => occController.SetOrWhenVacatedState(b))); - occController.OrWhenVacatedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.OrWhenVacated.JoinNumber]); - - // AND When Vacated - trilist.SetBoolSigAction(joinMap.AndWhenVacated.JoinNumber, new Action((b) => occController.SetAndWhenVacatedState(b))); - occController.AndWhenVacatedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.AndWhenVacated.JoinNumber]); - - // Ultrasonic A Sensor - trilist.SetSigTrueAction(joinMap.EnableUsA.JoinNumber, new Action(() => occController.SetUsAEnable(true))); - trilist.SetSigTrueAction(joinMap.DisableUsA.JoinNumber, new Action(() => occController.SetUsAEnable(false))); - occController.UltrasonicAEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnableUsA.JoinNumber]); - - // Ultrasonic B Sensor - trilist.SetSigTrueAction(joinMap.EnableUsB.JoinNumber, new Action(() => occController.SetUsBEnable(true))); - trilist.SetSigTrueAction(joinMap.DisableUsB.JoinNumber, new Action(() => occController.SetUsBEnable(false))); - occController.UltrasonicAEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnableUsB.JoinNumber]); - - // US Sensitivity in Occupied State - trilist.SetBoolSigAction(joinMap.IncrementUsInOccupiedState.JoinNumber, new Action((b) => occController.IncrementUsSensitivityInOccupiedState(b))); - trilist.SetBoolSigAction(joinMap.DecrementUsInOccupiedState.JoinNumber, new Action((b) => occController.DecrementUsSensitivityInOccupiedState(b))); - occController.UltrasonicSensitivityInOccupiedStateFeedback.LinkInputSig(trilist.UShortInput[joinMap.UsSensitivityInOccupiedState.JoinNumber]); - - // US Sensitivity in Vacant State - trilist.SetBoolSigAction(joinMap.IncrementUsInVacantState.JoinNumber, new Action((b) => occController.IncrementUsSensitivityInVacantState(b))); - trilist.SetBoolSigAction(joinMap.DecrementUsInVacantState.JoinNumber, new Action((b) => occController.DecrementUsSensitivityInVacantState(b))); - occController.UltrasonicSensitivityInVacantStateFeedback.LinkInputSig(trilist.UShortInput[joinMap.UsSensitivityInVacantState.JoinNumber]); - - //Sensor Raw States - occController.RawOccupancyPirFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RawOccupancyPirFeedback.JoinNumber]); - occController.RawOccupancyUsFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RawOccupancyUsFeedback.JoinNumber]); - - // Identity mode - trilist.SetBoolSigAction(joinMap.IdentityMode.JoinNumber, occController.SetIdentityMode); - occController.IdentityModeFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IdentityModeFeedback.JoinNumber]); - } - - public class CenOdtOccupancySensorBaseControllerFactory : EssentialsDeviceFactory - { - public CenOdtOccupancySensorBaseControllerFactory() - { - TypeNames = new List() { "cenodtcpoe", "cenodtocc" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new GlsOccupancySensorBaseController Device"); - - var typeName = dc.Type.ToLower(); - var key = dc.Key; - var name = dc.Name; - var comm = CommFactory.GetControlPropertiesConfig(dc); - - var props = dc.Properties.ToObject(); - - var occSensor = new CenOdtCPoe(comm.IpIdInt, Global.ControlSystem); - - if (occSensor == null) - { - Debug.Console(0, "ERROR: Unable to create Occupancy Sensor Device. Key: '{0}'", key); - return null; - } - - return new CenOdtOccupancySensorBaseController(key, name, occSensor, props); - } - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/EssentialsGlsOccupancySensorBaseController.cs.orig b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/EssentialsGlsOccupancySensorBaseController.cs.orig deleted file mode 100644 index f65e1b37..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/EssentialsGlsOccupancySensorBaseController.cs.orig +++ /dev/null @@ -1,87 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.GeneralIO; - -using PepperDash.Core; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Devices.Common.Occupancy -{ - public class EssentialsGlsOccupancySensorBaseController : CrestronGenericBaseDevice, IOccupancyStatusProvider - { - public GlsOccupancySensorBase OccSensor { get; private set; } - - public BoolFeedback RoomIsOccupiedFeedback { get; private set; } - -<<<<<<< HEAD - /// - /// Set by debugging functions - /// - public bool InMockMode { get; private set; } - - public bool MockRoomIsOccupiedFeedback { get; private set; } -======= - // Debug properties - public bool InTestMode { get; private set; } - - public bool TestRoomIsOccupiedFeedback { get; private set; } ->>>>>>> origin/feature/ecs-342-neil - - public Func RoomIsOccupiedFeedbackFunc - { - get - { -<<<<<<< HEAD - return () => InMockMode ? MockRoomIsOccupiedFeedback : OccSensor.OccupancyDetectedFeedback.BoolValue; -======= - return () => InTestMode ? TestRoomIsOccupiedFeedback : OccSensor.OccupancyDetectedFeedback.BoolValue; ->>>>>>> origin/feature/ecs-342-neil - } - } - - public EssentialsGlsOccupancySensorBaseController(string key, string name, GlsOccupancySensorBase sensor, GlsOccupancySensorConfigurationProperties props) - : base(key, name, sensor) - { - OccSensor = sensor; - RoomIsOccupiedFeedback = new BoolFeedback(RoomIsOccupiedFeedbackFunc); - - OccSensor.GlsOccupancySensorChange += new GlsOccupancySensorChangeEventHandler(sensor_GlsOccupancySensorChange); - } - - void sensor_GlsOccupancySensorChange(GlsOccupancySensorBase device, GlsOccupancySensorChangeEventArgs args) - { - RoomIsOccupiedFeedback.FireUpdate(); - } - - public void SetTestMode(bool mode) - { - InTestMode = mode; - - Debug.Console(1, this, "In Mock Mode: '{0}'", InTestMode); - } - - public void SetTestOccupiedState(bool state) - { - if (!InTestMode) - Debug.Console(1, "Mock mode not enabled"); - else - { - TestRoomIsOccupiedFeedback = state; - - RoomIsOccupiedFeedback.FireUpdate(); - } - } - } - - /// - /// - /// - public class GlsOccupancySensorConfigurationProperties - { - public string CresnetId { get; set; } - public string Model { get; set; } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOccupancySensorBaseController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOccupancySensorBaseController.cs deleted file mode 100644 index 53db1716..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOccupancySensorBaseController.cs +++ /dev/null @@ -1,539 +0,0 @@ -using System; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.GeneralIO; -using Newtonsoft.Json; -using PepperDash.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.Bridges; - -namespace PepperDash.Essentials.Core -{ - [Description("Wrapper class for Single Technology GLS Occupancy Sensors")] - [ConfigSnippet("\"properties\": {\"control\": {\"method\": \"cresnet\",\"cresnetId\": \"97\"},\"enablePir\": true,\"enableLedFlash\": true,\"enableRawStates\":true,\"remoteTimeout\": 30,\"internalPhotoSensorMinChange\": 0,\"externalPhotoSensorMinChange\": 0}")] - public abstract class GlsOccupancySensorBaseController : CrestronGenericBridgeableBaseDevice, IOccupancyStatusProvider - { - public GlsOccupancySensorPropertiesConfig PropertiesConfig { get; private set; } - - protected GlsOccupancySensorBase OccSensor; - - public BoolFeedback RoomIsOccupiedFeedback { get; private set; } - - public BoolFeedback GraceOccupancyDetectedFeedback { get; private set; } - - public BoolFeedback RawOccupancyFeedback { get; private set; } - - public BoolFeedback PirSensorEnabledFeedback { get; private set; } - - public BoolFeedback LedFlashEnabledFeedback { get; private set; } - - public BoolFeedback ShortTimeoutEnabledFeedback { get; private set; } - - public IntFeedback PirSensitivityInVacantStateFeedback { get; private set; } - - public IntFeedback PirSensitivityInOccupiedStateFeedback { get; private set; } - - public IntFeedback CurrentTimeoutFeedback { get; private set; } - - public IntFeedback LocalTimoutFeedback { get; private set; } - - public IntFeedback InternalPhotoSensorValue { get; set; } - - public IntFeedback ExternalPhotoSensorValue { get; set; } - - // Debug properties - public bool InTestMode { get; private set; } - - public bool TestRoomIsOccupiedFeedback { get; private set; } - - public Func RoomIsOccupiedFeedbackFunc - { - get - { - return () => InTestMode ? TestRoomIsOccupiedFeedback : OccSensor.OccupancyDetectedFeedback.BoolValue; - } - } - - protected GlsOccupancySensorBaseController(string key, DeviceConfig config) - : this(key, config.Name, config) - { - } - - protected GlsOccupancySensorBaseController(string key, string name, DeviceConfig config) - : base(key, name) - { - - var props = config.Properties.ToObject(); - - if (props != null) - { - PropertiesConfig = props; - } - else - { - Debug.Console(1, this, "props are null. Unable to deserialize into GlsOccupancySensorPropertiesConfig"); - } - - AddPostActivationAction(() => - { - OccSensor.OnlineStatusChange += (o, a) => - { - if (a.DeviceOnLine) - { - ApplySettingsToSensorFromConfig(); - } - }; - - if (OccSensor.IsOnline) - { - ApplySettingsToSensorFromConfig(); - - } - }); - } - - - /// - /// Applies any sensor settings defined in config - /// - protected virtual void ApplySettingsToSensorFromConfig() - { - Debug.Console(1, this, "Attempting to apply settings to sensor from config"); - - if (PropertiesConfig.EnablePir != null) - { - Debug.Console(1, this, "EnablePir found, attempting to set value from config"); - SetPirEnable((bool)PropertiesConfig.EnablePir); - } - else - { - Debug.Console(1, this, "EnablePir null, no value specified in config"); - } - - if (PropertiesConfig.EnableLedFlash != null) - { - Debug.Console(1, this, "EnableLedFlash found, attempting to set value from config"); - SetLedFlashEnable((bool)PropertiesConfig.EnableLedFlash); - } - - if (PropertiesConfig.RemoteTimeout != null) - { - Debug.Console(1, this, "RemoteTimeout found, attempting to set value from config"); - SetRemoteTimeout((ushort)PropertiesConfig.RemoteTimeout); - } - else - { - Debug.Console(1, this, "RemoteTimeout null, no value specified in config"); - } - - if (PropertiesConfig.ShortTimeoutState != null) - { - SetShortTimeoutState((bool)PropertiesConfig.ShortTimeoutState); - } - - if (PropertiesConfig.EnableRawStates != null) - { - EnableRawStates((bool)PropertiesConfig.EnableRawStates); - } - - if (PropertiesConfig.InternalPhotoSensorMinChange != null) - { - SetInternalPhotoSensorMinChange((ushort)PropertiesConfig.InternalPhotoSensorMinChange); - } - - if (PropertiesConfig.ExternalPhotoSensorMinChange != null) - { - SetExternalPhotoSensorMinChange((ushort)PropertiesConfig.ExternalPhotoSensorMinChange); - } - } - - protected void RegisterGlsOccupancySensorBaseController(GlsOccupancySensorBase occSensor) - { - OccSensor = occSensor; - - RoomIsOccupiedFeedback = new BoolFeedback(RoomIsOccupiedFeedbackFunc); - - PirSensorEnabledFeedback = new BoolFeedback(() => OccSensor.PirEnabledFeedback.BoolValue); - - LedFlashEnabledFeedback = new BoolFeedback(() => OccSensor.LedFlashEnabledFeedback.BoolValue); - - ShortTimeoutEnabledFeedback = new BoolFeedback(() => OccSensor.ShortTimeoutEnabledFeedback.BoolValue); - - PirSensitivityInVacantStateFeedback = - new IntFeedback(() => OccSensor.PirSensitivityInVacantStateFeedback.UShortValue); - - PirSensitivityInOccupiedStateFeedback = - new IntFeedback(() => OccSensor.PirSensitivityInOccupiedStateFeedback.UShortValue); - - CurrentTimeoutFeedback = new IntFeedback(() => OccSensor.CurrentTimeoutFeedback.UShortValue); - - LocalTimoutFeedback = new IntFeedback(() => OccSensor.LocalTimeoutFeedback.UShortValue); - - GraceOccupancyDetectedFeedback = - new BoolFeedback(() => OccSensor.GraceOccupancyDetectedFeedback.BoolValue); - - RawOccupancyFeedback = new BoolFeedback(() => OccSensor.RawOccupancyFeedback.BoolValue); - - InternalPhotoSensorValue = new IntFeedback(() => OccSensor.InternalPhotoSensorValueFeedback.UShortValue); - - ExternalPhotoSensorValue = new IntFeedback(() => OccSensor.ExternalPhotoSensorValueFeedback.UShortValue); - - OccSensor.BaseEvent += OccSensor_BaseEvent; - - OccSensor.GlsOccupancySensorChange += OccSensor_GlsOccupancySensorChange; - } - - - /// - /// Catches events for feedbacks on the base class. Any extending wrapper class should call this delegate after it checks for it's own event IDs. - /// - /// - /// - protected virtual void OccSensor_GlsOccupancySensorChange(GlsOccupancySensorBase device, GlsOccupancySensorChangeEventArgs args) - { - switch (args.EventId) - { - case GlsOccupancySensorBase.PirEnabledFeedbackEventId: - PirSensorEnabledFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.LedFlashEnabledFeedbackEventId: - LedFlashEnabledFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.ShortTimeoutEnabledFeedbackEventId: - ShortTimeoutEnabledFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.PirSensitivityInOccupiedStateFeedbackEventId: - PirSensitivityInOccupiedStateFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.PirSensitivityInVacantStateFeedbackEventId: - PirSensitivityInVacantStateFeedback.FireUpdate(); - break; - } - } - - protected virtual void OccSensor_BaseEvent(Crestron.SimplSharpPro.GenericBase device, Crestron.SimplSharpPro.BaseEventArgs args) - { - Debug.Console(2, this, "GlsOccupancySensorChange EventId: {0}", args.EventId); - - switch (args.EventId) - { - case GlsOccupancySensorBase.RoomVacantFeedbackEventId: - case GlsOccupancySensorBase.RoomOccupiedFeedbackEventId: - Debug.Console(1, this, "Occupancy State: {0}", OccSensor.OccupancyDetectedFeedback.BoolValue); - RoomIsOccupiedFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.TimeoutFeedbackEventId: - CurrentTimeoutFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.TimeoutLocalFeedbackEventId: - LocalTimoutFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.GraceOccupancyDetectedFeedbackEventId: - GraceOccupancyDetectedFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.RawOccupancyFeedbackEventId: - RawOccupancyFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.InternalPhotoSensorValueFeedbackEventId: - InternalPhotoSensorValue.FireUpdate(); - break; - case GlsOccupancySensorBase.ExternalPhotoSensorValueFeedbackEventId: - ExternalPhotoSensorValue.FireUpdate(); - break; - } - } - - public void SetTestMode(bool mode) - { - InTestMode = mode; - - Debug.Console(1, this, "In Mock Mode: '{0}'", InTestMode); - } - - public void SetTestOccupiedState(bool state) - { - if (!InTestMode) - Debug.Console(1, "Mock mode not enabled"); - else - { - TestRoomIsOccupiedFeedback = state; - - RoomIsOccupiedFeedback.FireUpdate(); - } - } - - /// - /// Enables or disables the PIR sensor - /// - /// - public void SetPirEnable(bool state) - { - Debug.Console(1, this, "Setting EnablePir to: {0}", state); - - OccSensor.EnablePir.BoolValue = state; - OccSensor.DisablePir.BoolValue = !state; - } - - /// - /// Enables or disables the LED Flash - /// - /// - public void SetLedFlashEnable(bool state) - { - OccSensor.EnableLedFlash.BoolValue = state; - OccSensor.DisableLedFlash.BoolValue = !state; - } - - /// - /// Enables or disables short timeout based on state - /// - /// - public void SetShortTimeoutState(bool state) - { - OccSensor.EnableShortTimeout.BoolValue = state; - OccSensor.DisableShortTimeout.BoolValue = !state; - } - - public void IncrementPirSensitivityInOccupiedState(bool pressRelease) - { - OccSensor.IncrementPirSensitivityInOccupiedState.BoolValue = pressRelease; - } - - public void DecrementPirSensitivityInOccupiedState(bool pressRelease) - { - OccSensor.DecrementPirSensitivityInOccupiedState.BoolValue = pressRelease; - } - - public void IncrementPirSensitivityInVacantState(bool pressRelease) - { - OccSensor.IncrementPirSensitivityInVacantState.BoolValue = pressRelease; - } - - public void DecrementPirSensitivityInVacantState(bool pressRelease) - { - OccSensor.DecrementPirSensitivityInVacantState.BoolValue = pressRelease; - } - - /// - /// Pulse ForceOccupied on the sensor for .5 seconds - /// - public void ForceOccupied() - { - CrestronInvoke.BeginInvoke((o) => - { - ForceOccupied(true); - CrestronEnvironment.Sleep(500); - ForceOccupied(false); - }); - } - - public void ForceOccupied(bool value) - { - OccSensor.ForceOccupied.BoolValue = value; - } - - /// - /// Pulse ForceVacant on the sensor for .5 seconds - /// - public void ForceVacant() - { - CrestronInvoke.BeginInvoke((o) => - { - ForceVacant(true); - CrestronEnvironment.Sleep(500); - ForceVacant(false); - }); - } - - public void ForceVacant(bool value) - { - OccSensor.ForceVacant.BoolValue = value; - } - - public void EnableRawStates(bool state) - { - OccSensor.EnableRawStates.BoolValue = state; - } - - public void SetRemoteTimeout(ushort time) - { - Debug.Console(1, this, "Setting RemoteTimout to: {0}", time); - - OccSensor.RemoteTimeout.UShortValue = time; - } - - public void SetInternalPhotoSensorMinChange(ushort value) - { - OccSensor.InternalPhotoSensorMinimumChange.UShortValue = value; - } - - public void SetExternalPhotoSensorMinChange(ushort value) - { - OccSensor.ExternalPhotoSensorMinimumChange.UShortValue = value; - } - - /// - /// Method to print current occ settings to console. - /// - public virtual void GetSettings() - { - var dash = new string('*', 50); - CrestronConsole.PrintLine(string.Format("{0}\n", dash)); - - Debug.Console(0, this, "Vacancy Detected: {0}", - OccSensor.VacancyDetectedFeedback.BoolValue); - - Debug.Console(0, this, "Timeout Current: {0} | Local: {1}", - OccSensor.CurrentTimeoutFeedback.UShortValue, - OccSensor.LocalTimeoutFeedback.UShortValue); - - Debug.Console(0, this, "Short Timeout Enabled: {0}", - OccSensor.ShortTimeoutEnabledFeedback.BoolValue); - - Debug.Console(0, this, "PIR Sensor Enabled: {0} | Sensitivity Occupied: {1} | Sensitivity Vacant: {2}", - OccSensor.PirEnabledFeedback.BoolValue, - OccSensor.PirSensitivityInOccupiedStateFeedback.UShortValue, - OccSensor.PirSensitivityInVacantStateFeedback.UShortValue); - - CrestronConsole.PrintLine(string.Format("{0}\n", dash)); - } - - protected void LinkOccSensorToApi(GlsOccupancySensorBaseController occController, BasicTriList trilist, - uint joinStart, string joinMapKey, EiscApiAdvanced bridge) - { - var joinMap = new GlsOccupancySensorBaseJoinMap(joinStart); - - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - if (bridge != null) - { - bridge.AddJoinMap(Key, joinMap); - } - else - { - Debug.Console(0, this, "Please update config to use 'eiscapiadvanced' to get all join map features for this device."); - } - - Debug.Console(1, occController, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - - occController.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]); - trilist.StringInput[joinMap.Name.JoinNumber].StringValue = occController.Name; - - trilist.OnlineStatusChange += (d, args) => - { - if (args.DeviceOnLine) - { - trilist.StringInput[joinMap.Name.JoinNumber].StringValue = occController.Name; - } - }; - - LinkSingleTechSensorToApi(occController, trilist, joinMap); - - LinkDualTechSensorToApi(occController, trilist, joinMap); - } - - private static void LinkDualTechSensorToApi(GlsOccupancySensorBaseController occController, BasicTriList trilist, - GlsOccupancySensorBaseJoinMap joinMap) - { - var odtOccController = occController as GlsOdtOccupancySensorController; - - if (odtOccController == null) - { - return; - } - // OR When Vacated - trilist.SetBoolSigAction(joinMap.OrWhenVacated.JoinNumber, odtOccController.SetOrWhenVacatedState); - odtOccController.OrWhenVacatedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.OrWhenVacated.JoinNumber]); - - // AND When Vacated - trilist.SetBoolSigAction(joinMap.AndWhenVacated.JoinNumber, odtOccController.SetAndWhenVacatedState); - odtOccController.AndWhenVacatedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.AndWhenVacated.JoinNumber]); - - // Ultrasonic A Sensor - trilist.SetSigTrueAction(joinMap.EnableUsA.JoinNumber, () => odtOccController.SetUsAEnable(true)); - trilist.SetSigTrueAction(joinMap.DisableUsA.JoinNumber, () => odtOccController.SetUsAEnable(false)); - odtOccController.UltrasonicAEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnableUsA.JoinNumber]); - - // Ultrasonic B Sensor - trilist.SetSigTrueAction(joinMap.EnableUsB.JoinNumber, () => odtOccController.SetUsBEnable(true)); - trilist.SetSigTrueAction(joinMap.DisableUsB.JoinNumber, () => odtOccController.SetUsBEnable(false)); - odtOccController.UltrasonicBEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnableUsB.JoinNumber]); - - // US Sensitivity in Occupied State - trilist.SetBoolSigAction(joinMap.IncrementUsInOccupiedState.JoinNumber, - odtOccController.IncrementUsSensitivityInOccupiedState); - trilist.SetBoolSigAction(joinMap.DecrementUsInOccupiedState.JoinNumber, - odtOccController.DecrementUsSensitivityInOccupiedState); - odtOccController.UltrasonicSensitivityInOccupiedStateFeedback.LinkInputSig( - trilist.UShortInput[joinMap.UsSensitivityInOccupiedState.JoinNumber]); - - // US Sensitivity in Vacant State - trilist.SetBoolSigAction(joinMap.IncrementUsInVacantState.JoinNumber, - odtOccController.IncrementUsSensitivityInVacantState); - trilist.SetBoolSigAction(joinMap.DecrementUsInVacantState.JoinNumber, - odtOccController.DecrementUsSensitivityInVacantState); - odtOccController.UltrasonicSensitivityInVacantStateFeedback.LinkInputSig( - trilist.UShortInput[joinMap.UsSensitivityInVacantState.JoinNumber]); - - //Sensor Raw States - odtOccController.RawOccupancyPirFeedback.LinkInputSig( - trilist.BooleanInput[joinMap.RawOccupancyPirFeedback.JoinNumber]); - odtOccController.RawOccupancyUsFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RawOccupancyUsFeedback.JoinNumber]); - } - - private static void LinkSingleTechSensorToApi(GlsOccupancySensorBaseController occController, BasicTriList trilist, - GlsOccupancySensorBaseJoinMap joinMap) - { -// Occupied status - trilist.SetBoolSigAction(joinMap.ForceOccupied.JoinNumber, occController.ForceOccupied); - trilist.SetBoolSigAction(joinMap.ForceVacant.JoinNumber, occController.ForceVacant); - occController.RoomIsOccupiedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RoomOccupiedFeedback.JoinNumber]); - occController.RoomIsOccupiedFeedback.LinkComplementInputSig( - trilist.BooleanInput[joinMap.RoomVacantFeedback.JoinNumber]); - occController.RawOccupancyFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RawOccupancyFeedback.JoinNumber]); - trilist.SetBoolSigAction(joinMap.EnableRawStates.JoinNumber, occController.EnableRawStates); - - // Timouts - trilist.SetUShortSigAction(joinMap.Timeout.JoinNumber, occController.SetRemoteTimeout); - occController.CurrentTimeoutFeedback.LinkInputSig(trilist.UShortInput[joinMap.Timeout.JoinNumber]); - occController.LocalTimoutFeedback.LinkInputSig(trilist.UShortInput[joinMap.TimeoutLocalFeedback.JoinNumber]); - - // LED Flash - trilist.SetSigTrueAction(joinMap.EnableLedFlash.JoinNumber, () => occController.SetLedFlashEnable(true)); - trilist.SetSigTrueAction(joinMap.DisableLedFlash.JoinNumber, () => occController.SetLedFlashEnable(false)); - occController.LedFlashEnabledFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.EnableLedFlash.JoinNumber]); - - // Short Timeout - trilist.SetSigTrueAction(joinMap.EnableShortTimeout.JoinNumber, () => occController.SetShortTimeoutState(true)); - trilist.SetSigTrueAction(joinMap.DisableShortTimeout.JoinNumber, () => occController.SetShortTimeoutState(false)); - occController.ShortTimeoutEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnableShortTimeout.JoinNumber]); - - // PIR Sensor - trilist.SetSigTrueAction(joinMap.EnablePir.JoinNumber, () => occController.SetPirEnable(true)); - trilist.SetSigTrueAction(joinMap.DisablePir.JoinNumber, () => occController.SetPirEnable(false)); - occController.PirSensorEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.EnablePir.JoinNumber]); - - // PIR Sensitivity in Occupied State - trilist.SetBoolSigAction(joinMap.IncrementPirInOccupiedState.JoinNumber, - occController.IncrementPirSensitivityInOccupiedState); - trilist.SetBoolSigAction(joinMap.DecrementPirInOccupiedState.JoinNumber, - occController.DecrementPirSensitivityInOccupiedState); - occController.PirSensitivityInOccupiedStateFeedback.LinkInputSig( - trilist.UShortInput[joinMap.PirSensitivityInOccupiedState.JoinNumber]); - - // PIR Sensitivity in Vacant State - trilist.SetBoolSigAction(joinMap.IncrementPirInVacantState.JoinNumber, - occController.IncrementPirSensitivityInVacantState); - trilist.SetBoolSigAction(joinMap.DecrementPirInVacantState.JoinNumber, - occController.DecrementPirSensitivityInVacantState); - occController.PirSensitivityInVacantStateFeedback.LinkInputSig( - trilist.UShortInput[joinMap.PirSensitivityInVacantState.JoinNumber]); - } - } - - - -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOccupancySensorPropertiesConfig.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOccupancySensorPropertiesConfig.cs deleted file mode 100644 index 392c05b0..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOccupancySensorPropertiesConfig.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core -{ - /// - /// Defines configuration properties for Crestron GLS series occupancy sensors - /// - public class GlsOccupancySensorPropertiesConfig - { - // Single Technology Sensors (PIR): GlsOccupancySensorBase - [JsonProperty("enablePir")] - public bool? EnablePir { get; set; } - - [JsonProperty("enableLedFlash")] - public bool? EnableLedFlash { get; set; } - - [JsonProperty("shortTimeoutState")] - public bool? ShortTimeoutState { get; set; } - - [JsonProperty("enableRawStates")] - public bool? EnableRawStates { get; set; } - - [JsonProperty("remoteTimeout")] - public ushort? RemoteTimeout { get; set; } - - [JsonProperty("internalPhotoSensorMinChange")] - public ushort? InternalPhotoSensorMinChange { get; set; } - - [JsonProperty("externalPhotoSensorMinChange")] - public ushort? ExternalPhotoSensorMinChange { get; set; } - - // Dual Technology Sensors: GlsOdtCCn - [JsonProperty("enableUsA")] - public bool? EnableUsA { get; set; } - - [JsonProperty("enableUsB")] - public bool? EnableUsB { get; set; } - - [JsonProperty("orWhenVacatedState")] - public bool? OrWhenVacatedState { get; set; } - - [JsonProperty("andWhenVacatedState")] - public bool? AndWhenVacatedState { get; set; } - - // PoE Sensors: CenOdtCPoe - - /// - /// Sets the sensitivity level for US while sensor is in occupied state - /// 1 = low; 2 = medium; 3 = high; 4 = xlow; 5 = 2xlow; 6 = 3xlow - /// - [JsonProperty("usSensitivityOccupied")] - public ushort? UsSensitivityOccupied { get; set; } - - /// - /// Sets the sensitivity level for US while sensor is in vacant state - /// 1 = low; 2 = medium; 3 = high; 4 = xlow; 5 = 2xlow; 6 = 3xlow - /// - [JsonProperty("usSensitivityVacant")] - public ushort? UsSensitivityVacant { get; set; } - - /// - /// Sets the sensitivity level for PIR while sensor is in occupied state - /// 1 = low; 2 = medium; 3 = high - /// - [JsonProperty("pirSensitivityOccupied")] - public ushort? PirSensitivityOccupied { get; set; } - - /// - /// Sets the sensitivity level for PIR while sensor is in vacant state - /// 1 = low; 2 = medium; 3 = high - /// - [JsonProperty("pirSensitivityVacant")] - public ushort? PirSensitivityVacant { get; set; } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOdtOccupancySensorController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOdtOccupancySensorController.cs deleted file mode 100644 index d5e18280..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOdtOccupancySensorController.cs +++ /dev/null @@ -1,284 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.GeneralIO; - -using PepperDash.Core; -using PepperDash.Essentials.Core.Config; -using PepperDash.Essentials.Core.Bridges; - -namespace PepperDash.Essentials.Core -{ - [Description("Wrapper class for Dual Technology GLS Occupancy Sensors")] - [ConfigSnippet("\"properties\": {\"control\": {\"method\": \"cresnet\",\"cresnetId\": \"97\"},\"enablePir\": true,\"enableLedFlash\": true,\"enableRawStates\":true,\"remoteTimeout\": 30,\"internalPhotoSensorMinChange\": 0,\"externalPhotoSensorMinChange\": 0,\"enableUsA\": true,\"enableUsB\": true,\"orWhenVacatedState\": true}")] - public class GlsOdtOccupancySensorController : GlsOccupancySensorBaseController - { - private GlsOdtCCn _occSensor; - - public BoolFeedback OrWhenVacatedFeedback { get; private set; } - - public BoolFeedback AndWhenVacatedFeedback { get; private set; } - - public BoolFeedback UltrasonicAEnabledFeedback { get; private set; } - - public BoolFeedback UltrasonicBEnabledFeedback { get; private set; } - - public IntFeedback UltrasonicSensitivityInVacantStateFeedback { get; private set; } - - public IntFeedback UltrasonicSensitivityInOccupiedStateFeedback { get; private set; } - - public BoolFeedback RawOccupancyPirFeedback { get; private set; } - - public BoolFeedback RawOccupancyUsFeedback { get; private set; } - - - public GlsOdtOccupancySensorController(string key, Func preActivationFunc, - DeviceConfig config) - : base(key, config.Name, config) - { - AddPreActivationAction(() => - { - _occSensor = preActivationFunc(config); - - RegisterCrestronGenericBase(_occSensor); - - RegisterGlsOccupancySensorBaseController(_occSensor); - - AndWhenVacatedFeedback = new BoolFeedback(() => _occSensor.AndWhenVacatedFeedback.BoolValue); - - OrWhenVacatedFeedback = new BoolFeedback(() => _occSensor.OrWhenVacatedFeedback.BoolValue); - - UltrasonicAEnabledFeedback = new BoolFeedback(() => _occSensor.UsAEnabledFeedback.BoolValue); - - UltrasonicBEnabledFeedback = new BoolFeedback(() => _occSensor.UsBEnabledFeedback.BoolValue); - - RawOccupancyPirFeedback = new BoolFeedback(() => _occSensor.RawOccupancyPirFeedback.BoolValue); - - RawOccupancyUsFeedback = new BoolFeedback(() => _occSensor.RawOccupancyUsFeedback.BoolValue); - - UltrasonicSensitivityInVacantStateFeedback = new IntFeedback(() => _occSensor.UsSensitivityInVacantStateFeedback.UShortValue); - - UltrasonicSensitivityInOccupiedStateFeedback = new IntFeedback(() => _occSensor.UsSensitivityInOccupiedStateFeedback.UShortValue); - - }); - } - - protected override void ApplySettingsToSensorFromConfig() - { - base.ApplySettingsToSensorFromConfig(); - - if (PropertiesConfig.EnableUsA != null) - { - Debug.Console(1, this, "EnableUsA found, attempting to set value from config"); - SetUsAEnable((bool)PropertiesConfig.EnableUsA); - } - else - { - Debug.Console(1, this, "EnableUsA null, no value specified in config"); - } - - - if (PropertiesConfig.EnableUsB != null) - { - Debug.Console(1, this, "EnableUsB found, attempting to set value from config"); - SetUsBEnable((bool)PropertiesConfig.EnableUsB); - } - else - { - Debug.Console(1, this, "EnablePir null, no value specified in config"); - } - - - if (PropertiesConfig.OrWhenVacatedState != null) - { - SetOrWhenVacatedState((bool)PropertiesConfig.OrWhenVacatedState); - } - - if (PropertiesConfig.AndWhenVacatedState != null) - { - SetAndWhenVacatedState((bool)PropertiesConfig.AndWhenVacatedState); - } - } - - /// - /// Overrides the base class event delegate to fire feedbacks for event IDs that pertain to this extended class. - /// Then calls the base delegate method to ensure any common event IDs are captured. - /// - /// - /// - protected override void OccSensor_GlsOccupancySensorChange(GlsOccupancySensorBase device, GlsOccupancySensorChangeEventArgs args) - { - switch (args.EventId) - { - case GlsOccupancySensorBase.AndWhenVacatedFeedbackEventId: - AndWhenVacatedFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.OrWhenVacatedFeedbackEventId: - OrWhenVacatedFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.UsAEnabledFeedbackEventId: - UltrasonicAEnabledFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.UsBEnabledFeedbackEventId: - UltrasonicBEnabledFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.UsSensitivityInOccupiedStateFeedbackEventId: - UltrasonicSensitivityInOccupiedStateFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.UsSensitivityInVacantStateFeedbackEventId: - UltrasonicSensitivityInVacantStateFeedback.FireUpdate(); - break; - } - - base.OccSensor_GlsOccupancySensorChange(device, args); - } - - /// - /// Overrides the base class event delegate to fire feedbacks for event IDs that pertain to this extended class. - /// Then calls the base delegate method to ensure any common event IDs are captured. - /// - /// - /// - protected override void OccSensor_BaseEvent(Crestron.SimplSharpPro.GenericBase device, Crestron.SimplSharpPro.BaseEventArgs args) - { - switch (args.EventId) - { - case GlsOccupancySensorBase.RawOccupancyPirFeedbackEventId: - RawOccupancyPirFeedback.FireUpdate(); - break; - case GlsOccupancySensorBase.RawOccupancyUsFeedbackEventId: - RawOccupancyUsFeedback.FireUpdate(); - break; - } - - base.OccSensor_BaseEvent(device, args); - } - - /// - /// Sets the OrWhenVacated state - /// - /// - public void SetOrWhenVacatedState(bool state) - { - _occSensor.OrWhenVacated.BoolValue = state; - } - - /// - /// Sets the AndWhenVacated state - /// - /// - public void SetAndWhenVacatedState(bool state) - { - _occSensor.AndWhenVacated.BoolValue = state; - } - - /// - /// Enables or disables the Ultrasonic A sensor - /// - /// - public void SetUsAEnable(bool state) - { - _occSensor.EnableUsA.BoolValue = state; - _occSensor.DisableUsA.BoolValue = !state; - } - - - /// - /// Enables or disables the Ultrasonic B sensor - /// - /// - public void SetUsBEnable(bool state) - { - _occSensor.EnableUsB.BoolValue = state; - _occSensor.DisableUsB.BoolValue = !state; - } - - public void IncrementUsSensitivityInOccupiedState(bool pressRelease) - { - _occSensor.IncrementUsSensitivityInOccupiedState.BoolValue = pressRelease; - } - - public void DecrementUsSensitivityInOccupiedState(bool pressRelease) - { - _occSensor.DecrementUsSensitivityInOccupiedState.BoolValue = pressRelease; - } - - public void IncrementUsSensitivityInVacantState(bool pressRelease) - { - _occSensor.IncrementUsSensitivityInVacantState.BoolValue = pressRelease; - } - - public void DecrementUsSensitivityInVacantState(bool pressRelease) - { - _occSensor.DecrementUsSensitivityInVacantState.BoolValue = pressRelease; - } - - public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) - { - LinkOccSensorToApi(this, trilist, joinStart, joinMapKey, bridge); - } - - /// - /// Method to print occ sensor settings to console. - /// - public override void GetSettings() - { - base.GetSettings(); - - Debug.Console(0, this, "Ultrasonic Enabled A: {0} | B: {1}", - _occSensor.UsAEnabledFeedback.BoolValue, - _occSensor.UsBEnabledFeedback.BoolValue); - - Debug.Console(0, this, "Ultrasonic Sensitivity Occupied: {0} | Vacant: {1}", - _occSensor.UsSensitivityInOccupiedStateFeedback.UShortValue, - _occSensor.UsSensitivityInVacantStateFeedback.UShortValue); - - var dash = new string('*', 50); - CrestronConsole.PrintLine(string.Format("{0}\n", dash)); - } - - } - - public class GlsOdtOccupancySensorControllerFactory : EssentialsDeviceFactory - { - public GlsOdtOccupancySensorControllerFactory() - { - TypeNames = new List { "glsodtccn" }; - } - - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new GlsOccupancySensorBaseController Device"); - - return new GlsOdtOccupancySensorController(dc.Key, GetGlsOdtCCn, dc); - } - - private static GlsOdtCCn GetGlsOdtCCn(DeviceConfig dc) - { - var control = CommFactory.GetControlPropertiesConfig(dc); - var cresnetId = control.CresnetIdInt; - var branchId = control.ControlPortNumber; - var parentKey = String.IsNullOrEmpty(control.ControlPortDevKey) ? "processor" : control.ControlPortDevKey; - - if (parentKey.Equals("processor", StringComparison.CurrentCultureIgnoreCase)) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new GlsOdtCCn", parentKey); - return new GlsOdtCCn(cresnetId, Global.ControlSystem); - } - var cresnetBridge = DeviceManager.GetDeviceForKey(parentKey) as IHasCresnetBranches; - - if (cresnetBridge != null) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new GlsOdtCCn", parentKey); - return new GlsOdtCCn(cresnetId, cresnetBridge.CresnetBranches[branchId]); - } - Debug.Console(0, "Device {0} is not a valid cresnet master", parentKey); - return null; - } - } - - - -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOirOccupancySensorController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOirOccupancySensorController.cs deleted file mode 100644 index 573d94ac..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOirOccupancySensorController.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; -using System.Collections.Generic; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.GeneralIO; -using PepperDash.Core; -using PepperDash.Essentials.Core.Bridges; -using PepperDash.Essentials.Core.Config; - -namespace PepperDash.Essentials.Core -{ - public class GlsOirOccupancySensorController:GlsOccupancySensorBaseController - { - private GlsOirCCn _occSensor; - - public GlsOirOccupancySensorController(string key, Func preActivationFunc,DeviceConfig config) : this(key,config.Name, preActivationFunc, config) - { - } - - public GlsOirOccupancySensorController(string key, string name, Func preActivationFunc, DeviceConfig config) : base(key, name, config) - { - AddPreActivationAction(() => - { - _occSensor = preActivationFunc(config); - - RegisterCrestronGenericBase(_occSensor); - - RegisterGlsOccupancySensorBaseController(_occSensor); - }); - } - - #region Overrides of CrestronGenericBridgeableBaseDevice - - public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) - { - LinkOccSensorToApi(this, trilist, joinStart, joinMapKey, bridge); - } - - #endregion - } - - public class GlsOccupancySensorBaseControllerFactory : EssentialsDeviceFactory - { - public GlsOccupancySensorBaseControllerFactory() - { - TypeNames = new List { "glsoirccn" }; - } - - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new GlsOirOccupancySensorController Device"); - - return new GlsOirOccupancySensorController(dc.Key, GetGlsOirCCn, dc); - } - - private static GlsOirCCn GetGlsOirCCn(DeviceConfig dc) - { - var control = CommFactory.GetControlPropertiesConfig(dc); - var cresnetId = control.CresnetIdInt; - var branchId = control.ControlPortNumber; - var parentKey = string.IsNullOrEmpty(control.ControlPortDevKey) ? "processor" : control.ControlPortDevKey; - - if (parentKey.Equals("processor", StringComparison.CurrentCultureIgnoreCase)) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new GlsOirCCn", parentKey); - return new GlsOirCCn(cresnetId, Global.ControlSystem); - } - var cresnetBridge = DeviceManager.GetDeviceForKey(parentKey) as IHasCresnetBranches; - - if (cresnetBridge != null) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new GlsOirCCn", parentKey); - return new GlsOirCCn(cresnetId, cresnetBridge.CresnetBranches[branchId]); - } - Debug.Console(0, "Device {0} is not a valid cresnet master", parentKey); - return null; - } - - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/IOccupancyStatusProviderAggregator.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/IOccupancyStatusProviderAggregator.cs deleted file mode 100644 index 3da9c0dc..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/IOccupancyStatusProviderAggregator.cs +++ /dev/null @@ -1,109 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.GeneralIO; -using PepperDash.Core; -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.Config; - -namespace PepperDash.Essentials.Core -{ - /// - /// Aggregates the RoomIsOccupied feedbacks of one or more IOccupancyStatusProvider objects - /// - public class IOccupancyStatusProviderAggregator : EssentialsDevice, IOccupancyStatusProvider - { - /// - /// Aggregated feedback of all linked IOccupancyStatusProvider devices - /// - public BoolFeedback RoomIsOccupiedFeedback - { - get - { - return _aggregatedOccupancyStatus.Output; - } - } - - private readonly BoolFeedbackOr _aggregatedOccupancyStatus; - - public IOccupancyStatusProviderAggregator(string key, string name) - : base(key, name) - { - _aggregatedOccupancyStatus = new BoolFeedbackOr(); - } - - public IOccupancyStatusProviderAggregator(string key, string name, OccupancyAggregatorConfig config) - : this(key, name) - { - AddPostActivationAction(() => - { - if (config.DeviceKeys.Count == 0) - { - return; - } - - foreach (var deviceKey in config.DeviceKeys) - { - var device = DeviceManager.GetDeviceForKey(deviceKey); - - if (device == null) - { - Debug.Console(0, this, Debug.ErrorLogLevel.Notice, - "Unable to retrieve Occupancy provider with key {0}", deviceKey); - continue; - } - - var provider = device as IOccupancyStatusProvider; - - if (provider == null) - { - Debug.Console(0, this, Debug.ErrorLogLevel.Notice, - "Device with key {0} does NOT implement IOccupancyStatusProvider. Please check configuration."); - continue; - } - - AddOccupancyStatusProvider(provider); - } - }); - } - - /// - /// Adds an IOccupancyStatusProvider device - /// - /// - public void AddOccupancyStatusProvider(IOccupancyStatusProvider statusProvider) - { - _aggregatedOccupancyStatus.AddOutputIn(statusProvider.RoomIsOccupiedFeedback); - } - - public void RemoveOccupancyStatusProvider(IOccupancyStatusProvider statusProvider) - { - _aggregatedOccupancyStatus.RemoveOutputIn(statusProvider.RoomIsOccupiedFeedback); - } - - public void ClearOccupancyStatusProviders() - { - _aggregatedOccupancyStatus.ClearOutputs(); - } - } - - public class OccupancyAggregatorFactory : EssentialsDeviceFactory - { - public OccupancyAggregatorFactory() - { - TypeNames = new List { "occupancyAggregator", "occAggregate" }; - } - - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new GlsOccupancySensorBaseController Device"); - - var config = dc.Properties.ToObject(); - - return new IOccupancyStatusProviderAggregator(dc.Key, dc.Name, config); - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/OccupancyAggregatorConfig.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/OccupancyAggregatorConfig.cs deleted file mode 100644 index ef237e72..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/OccupancyAggregatorConfig.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace PepperDash.Essentials.Core -{ - public class OccupancyAggregatorConfig - { - [JsonProperty("deviceKeys")] public List DeviceKeys { get; set; } - - public OccupancyAggregatorConfig() - { - DeviceKeys = new List(); - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PartitionSensor/GlsPartitionSensorController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/PartitionSensor/GlsPartitionSensorController.cs deleted file mode 100644 index 73f15cf2..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PartitionSensor/GlsPartitionSensorController.cs +++ /dev/null @@ -1,364 +0,0 @@ -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; -using Crestron.SimplSharpPro.GeneralIO; -using Newtonsoft.Json; -using PepperDash.Core; -using PepperDash.Essentials.Core.Bridges; -using PepperDash.Essentials.Core.Bridges.JoinMaps; - -using System; -using System.Collections.Generic; -using PepperDash.Essentials.Core.Config; -using PepperDash_Essentials_Core.PartitionSensor; - -namespace PepperDash.Essentials.Core -{ - [Description("Wrapper class for GLS Cresnet Partition Sensor")] - public class GlsPartitionSensorController : CrestronGenericBridgeableBaseDevice, IPartitionStateProvider - { - - public GlsPartitionSensorPropertiesConfig PropertiesConfig { get; private set; } - - private GlsPartCn _partitionSensor; - - public BoolFeedback EnableFeedback { get; private set; } - public BoolFeedback PartitionPresentFeedback { get; private set; } - public BoolFeedback PartitionNotSensedFeedback { get; private set; } - public IntFeedback SensitivityFeedback { get; private set; } - - public bool InTestMode { get; private set; } - public bool TestEnableFeedback { get; private set; } - public bool TestPartitionSensedFeedback { get; private set; } - public int TestSensitivityFeedback { get; private set; } - - - public GlsPartitionSensorController(string key, Func preActivationFunc, DeviceConfig config) - : base(key, config.Name) - { - - var props = config.Properties.ToObject(); - if (props != null) - { - PropertiesConfig = props; - } - else - { - Debug.Console(1, this, "props are null. Unable to deserialize into GlsPartSensorPropertiesConfig"); - } - - AddPreActivationAction(() => - { - _partitionSensor = preActivationFunc(config); - - RegisterCrestronGenericBase(_partitionSensor); - - EnableFeedback = new BoolFeedback(() => InTestMode ? TestEnableFeedback : _partitionSensor.EnableFeedback.BoolValue); - PartitionPresentFeedback = new BoolFeedback(() => InTestMode ? TestPartitionSensedFeedback : _partitionSensor.PartitionSensedFeedback.BoolValue); - PartitionNotSensedFeedback = new BoolFeedback(() => InTestMode ? !TestPartitionSensedFeedback : _partitionSensor.PartitionNotSensedFeedback.BoolValue); - SensitivityFeedback = new IntFeedback(() => InTestMode ? TestSensitivityFeedback : _partitionSensor.SensitivityFeedback.UShortValue); - - if (_partitionSensor != null) - { - _partitionSensor.BaseEvent += PartitionSensor_BaseEvent; - } - }); - - AddPostActivationAction(() => - { - _partitionSensor.OnlineStatusChange += (o, a) => - { - if (a.DeviceOnLine) - { - ApplySettingsToSensorFromConfig(); - } - }; - - if (_partitionSensor.IsOnline) - { - ApplySettingsToSensorFromConfig(); - } - }); - } - - private void ApplySettingsToSensorFromConfig() - { - if (_partitionSensor.IsOnline == false) return; - - // Default to enable - _partitionSensor.Enable.BoolValue = true; - - Debug.Console(1, this, "Attempting to apply settings to sensor from config"); - - if (PropertiesConfig.Sensitivity != null) - { - Debug.Console(1, this, "Sensitivity found, attempting to set value '{0}' from config", - PropertiesConfig.Sensitivity); - _partitionSensor.Sensitivity.UShortValue = (ushort)PropertiesConfig.Sensitivity; - } - else - { - Debug.Console(1, this, "Sensitivity null, no value specified in config"); - } - - if (PropertiesConfig.Enable != null) - { - Debug.Console(1, this, "Enable found, attempting to set value '{0}' from config", - PropertiesConfig.Enable); - _partitionSensor.Enable.BoolValue = (bool)PropertiesConfig.Enable; - } - else - { - Debug.Console(1, this, "Enable null, no value specified in config"); - } - - } - - private void PartitionSensor_BaseEvent(GenericBase device, BaseEventArgs args) - { - Debug.Console(2, this, "EventId: {0}, Index: {1}", args.EventId, args.Index); - - switch (args.EventId) - { - case (GlsPartCn.EnableFeedbackEventId): - { - EnableFeedback.FireUpdate(); - break; - } - case (GlsPartCn.PartitionSensedFeedbackEventId): - { - Debug.Console(1, this, "Partition Sensed State: {0}", _partitionSensor.PartitionSensedFeedback.BoolValue); - PartitionPresentFeedback.FireUpdate(); - break; - } - case (GlsPartCn.PartitionNotSensedFeedbackEventId): - { - Debug.Console(1, this, "Partition Not Sensed State: {0}", _partitionSensor.PartitionNotSensedFeedback.BoolValue); - PartitionNotSensedFeedback.FireUpdate(); - break; - } - case (GlsPartCn.SensitivityFeedbackEventId): - { - SensitivityFeedback.FireUpdate(); - break; - } - default: - { - Debug.Console(2, this, "Unhandled args.EventId: {0}", args.EventId); - break; - } - } - } - - public void SetTestMode(bool mode) - { - InTestMode = mode; - Debug.Console(1, this, "InTestMode: {0}", InTestMode.ToString()); - } - - public void SetTestEnableState(bool state) - { - if (InTestMode) - { - TestEnableFeedback = state; - - EnableFeedback.FireUpdate(); - - Debug.Console(1, this, "TestEnableFeedback: {0}", TestEnableFeedback.ToString()); - return; - } - - Debug.Console(1, this, "InTestMode: {0}, unable to set enable state: {1}", InTestMode.ToString(), state.ToString()); - } - - public void SetTestPartitionSensedState(bool state) - { - if (InTestMode) - { - TestPartitionSensedFeedback = state; - - PartitionPresentFeedback.FireUpdate(); - PartitionNotSensedFeedback.FireUpdate(); - - Debug.Console(1, this, "TestPartitionSensedFeedback: {0}", TestPartitionSensedFeedback.ToString()); - return; - } - - Debug.Console(1, this, "InTestMode: {0}, unable to set partition state: {1}", InTestMode.ToString(), state.ToString()); - } - - public void SetTestSensitivityValue(int value) - { - if (InTestMode) - { - TestSensitivityFeedback = value; - - SensitivityFeedback.FireUpdate(); - Debug.Console(1, this, "TestSensitivityFeedback: {0}", TestSensitivityFeedback); - return; - } - - Debug.Console(1, this, "InTestMode: {0}, unable to set sensitivity value: {1}", InTestMode.ToString(), value); - } - - public void GetSettings() - { - var dash = new string('*', 50); - CrestronConsole.PrintLine(string.Format("{0}\n", dash)); - - Debug.Console(0, this, "Enabled State: {0}", _partitionSensor.EnableFeedback.BoolValue); - - Debug.Console(0, this, "Partition Sensed State: {0}", _partitionSensor.PartitionSensedFeedback.BoolValue); - Debug.Console(0, this, "Partition Not Sensed State: {0}", _partitionSensor.PartitionNotSensedFeedback.BoolValue); - - Debug.Console(0, this, "Sensitivity Value: {0}", _partitionSensor.SensitivityFeedback.UShortValue); - - CrestronConsole.PrintLine(string.Format("{0}\n", dash)); - } - - public void SetEnableState(bool state) - { - Debug.Console(2, this, "Sensor is {0}, SetEnableState: {1}", _partitionSensor == null ? "null" : "not null", state); - if (_partitionSensor == null) - return; - - _partitionSensor.Enable.BoolValue = state; - } - - public void IncreaseSensitivity() - { - Debug.Console(2, this, "Sensor is {0}, IncreaseSensitivity", _partitionSensor == null ? "null" : "not null"); - if (_partitionSensor == null) - return; - - _partitionSensor.IncreaseSensitivity(); - } - - public void DecreaseSensitivity() - { - Debug.Console(2, this, "Sensor is {0}, DecreaseSensitivity", _partitionSensor == null ? "null" : "not null"); - if (_partitionSensor == null) - return; - - _partitionSensor.DecreaseSensitivity(); - } - - public void SetSensitivity(ushort value) - { - Debug.Console(2, this, "Sensor is {0}, SetSensitivity: {1}", _partitionSensor == null ? "null" : "not null", value); - if (_partitionSensor == null) - return; - - _partitionSensor.Sensitivity.UShortValue = value; - } - - public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) - { - var joinMap = new GlsPartitionSensorJoinMap(joinStart); - var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); - - if (!string.IsNullOrEmpty(joinMapSerialized)) - joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - - if (bridge != null) - { - bridge.AddJoinMap(Key, joinMap); - } - else - { - Debug.Console(0, this, "Please update config to use 'type': 'EiscApiAdvanced' to get all join map features for this device"); - } - - Debug.Console(1, this, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); - Debug.Console(0, this, "Linking to Bridge Type {0}", GetType().Name); - - IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]); - trilist.StringInput[joinMap.Name.JoinNumber].StringValue = _partitionSensor.Name; - - trilist.SetBoolSigAction(joinMap.Enable.JoinNumber, SetEnableState); - EnableFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Enable.JoinNumber]); - - PartitionPresentFeedback.LinkInputSig(trilist.BooleanInput[joinMap.PartitionSensed.JoinNumber]); - PartitionNotSensedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.PartitionNotSensed.JoinNumber]); - - trilist.SetSigTrueAction(joinMap.IncreaseSensitivity.JoinNumber, IncreaseSensitivity); - trilist.SetSigTrueAction(joinMap.DecreaseSensitivity.JoinNumber, DecreaseSensitivity); - - SensitivityFeedback.LinkInputSig(trilist.UShortInput[joinMap.Sensitivity.JoinNumber]); - trilist.SetUShortSigAction(joinMap.Sensitivity.JoinNumber, SetSensitivity); - - FeedbacksFireUpdates(); - - // update when device is online - _partitionSensor.OnlineStatusChange += (o, a) => - { - if (a.DeviceOnLine) - { - FeedbacksFireUpdates(); - } - }; - - // update when trilist is online - trilist.OnlineStatusChange += (o, a) => - { - if (a.DeviceOnLine) - { - trilist.StringInput[joinMap.Name.JoinNumber].StringValue = _partitionSensor.Name; - FeedbacksFireUpdates(); - } - }; - } - - private void FeedbacksFireUpdates() - { - IsOnline.FireUpdate(); - EnableFeedback.FireUpdate(); - PartitionPresentFeedback.FireUpdate(); - PartitionNotSensedFeedback.FireUpdate(); - SensitivityFeedback.FireUpdate(); - } - - #region PreActivation - - private static GlsPartCn GetGlsPartCnDevice(DeviceConfig dc) - { - var control = CommFactory.GetControlPropertiesConfig(dc); - var cresnetId = control.CresnetIdInt; - var branchId = control.ControlPortNumber; - var parentKey = string.IsNullOrEmpty(control.ControlPortDevKey) ? "processor" : control.ControlPortDevKey; - - if (parentKey.Equals("processor", StringComparison.CurrentCultureIgnoreCase)) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new GlsPartCn", parentKey); - return new GlsPartCn(cresnetId, Global.ControlSystem); - } - var cresnetBridge = DeviceManager.GetDeviceForKey(parentKey) as IHasCresnetBranches; - - if (cresnetBridge != null) - { - Debug.Console(0, "Device {0} is a valid cresnet master - creating new GlsPartCn", parentKey); - return new GlsPartCn(cresnetId, cresnetBridge.CresnetBranches[branchId]); - } - Debug.Console(0, "Device {0} is not a valid cresnet master", parentKey); - return null; - } - #endregion - - - public class GlsPartitionSensorControllerFactory : EssentialsDeviceFactory - { - public GlsPartitionSensorControllerFactory() - { - TypeNames = new List { "glspartcn" }; - } - - public override EssentialsDevice BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new GlsPartitionSensorController Device"); - - return new GlsPartitionSensorController(dc.Key, GetGlsPartCnDevice, dc); - } - } - - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PartitionSensor/GlsPartitionSensorPropertiesConfig.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/PartitionSensor/GlsPartitionSensorPropertiesConfig.cs deleted file mode 100644 index c9f715b5..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PartitionSensor/GlsPartitionSensorPropertiesConfig.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Newtonsoft.Json; - -namespace PepperDash_Essentials_Core.PartitionSensor -{ - public class GlsPartitionSensorPropertiesConfig - { - /// - /// Sets the sensor sensitivity - /// - /// - /// The sensitivity range shall be between 1(lowest) to 10 (highest). - /// - [JsonProperty("sensitivity")] - public ushort? Sensitivity { get; set; } - - [JsonProperty("enable")] - public bool? Enable { get; set; } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj b/essentials-framework/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj deleted file mode 100644 index 6b7a3ad9..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj +++ /dev/null @@ -1,433 +0,0 @@ - - - Release - AnyCPU - 9.0.30729 - 2.0 - {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} - Library - Properties - PepperDash_Essentials_Core - PepperDash_Essentials_Core - {0B4745B0-194B-4BB6-8E21-E9057CA92300};{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - WindowsCE - E2BECB1F-8C8C-41ba-B736-9BE7D946A398 - 5.0 - SmartDeviceProject1 - v3.5 - Windows CE - - - - - .allowedReferenceRelatedFileExtensions - true - full - false - bin\ - DEBUG;TRACE; - prompt - 4 - 512 - true - true - off - - - .allowedReferenceRelatedFileExtensions - none - true - bin\ - prompt - 4 - 512 - true - true - off - - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DeviceSupport.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DM.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.EthernetCommunications.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Fusion.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Gateways.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.GeneralIO.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Remotes.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.ThreeSeriesCards.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll - - - - False - ..\..\..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll - False - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCWSHelperInterface.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpHelperInterface.dll - False - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpNewtonsoft.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpPro.exe - False - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpReflectionInterface.dll - - - False - ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpTimerEventInterface.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - rem S# Pro preparation will execute after these operations - - \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.nuspec b/essentials-framework/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.nuspec deleted file mode 100644 index c2394428..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.nuspec +++ /dev/null @@ -1,24 +0,0 @@ - - - - PepperDashEssentials - 1.5.6 - PepperDash Essentials - PepperDash Technologies - pepperdash - false - MIT - https://github.com/PepperDash/PepperDashCore - Copyright 2020 - PepperDash Essentials is an open source Crestron framework that can be configured as a standalone program capable of running a wide variety of system designs and can also be utilized as a plug-in architecture to augment other Simpl# Pro and Simpl Windows programs. Essentials Framework is a collection of C# / Simpl# Pro libraries that can be utilized in several different manners. It is currently operating as a 100% configuration-driven system, and can be extended to add different workflows and behaviors, either through the addition of further device "types" or via the plug-in mechanism. The framework is a collection of "things" that are all related and interconnected, but in general do not have dependencies on each other. - crestron 3series 4series - - - - - - - - - - \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Properties/AssemblyInfo.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Properties/AssemblyInfo.cs deleted file mode 100644 index c202443c..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using Crestron.SimplSharp.Reflection; - -[assembly: System.Reflection.AssemblyTitle("PepperDashEssentialsBase")] -[assembly: System.Reflection.AssemblyCompany("PepperDash Technology Corp")] -[assembly: System.Reflection.AssemblyProduct("PepperDashEssentials")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © PepperDash Technology Corp 2020")] -[assembly: System.Reflection.AssemblyVersion("0.0.0.*")] -[assembly: System.Reflection.AssemblyInformationalVersion("0.0.0-buildType-buildNumber")] -[assembly: Crestron.SimplSharp.Reflection.AssemblyInformationalVersion("0.0.0-buildType-buildNumber")] -[assembly: InternalsVisibleTo("Essentials Devices Common")] -[assembly: InternalsVisibleTo("PepperDash_Essentials_DM")] diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ComsMessage.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ComsMessage.cs deleted file mode 100644 index 3c01032e..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ComsMessage.cs +++ /dev/null @@ -1,145 +0,0 @@ -using System; -using PepperDash.Core; - -namespace PepperDash.Essentials.Core.Queues -{ - /// - /// IBasicCommunication Message for IQueue - /// - public class ComsMessage : IQueueMessage - { - private readonly byte[] _bytes; - private readonly IBasicCommunication _coms; - private readonly string _string; - private readonly bool _isByteMessage; - - /// - /// Constructor for a string message - /// - /// IBasicCommunication to send the message - /// Message to send - public ComsMessage(IBasicCommunication coms, string message) - { - Validate(coms, message); - _coms = coms; - _string = message; - } - - /// - /// Constructor for a byte message - /// - /// IBasicCommunication to send the message - /// Message to send - public ComsMessage(IBasicCommunication coms, byte[] message) - { - Validate(coms, message); - _coms = coms; - _bytes = message; - _isByteMessage = true; - } - - private void Validate(IBasicCommunication coms, object message) - { - if (coms == null) - throw new ArgumentNullException("coms"); - - if (message == null) - throw new ArgumentNullException("message"); - } - - /// - /// Dispatchs the string/byte[] to the IBasicCommunication specified - /// - public void Dispatch() - { - if (_isByteMessage) - { - _coms.SendBytes(_bytes); - } - else - { - _coms.SendText(_string); - } - } - - /// - /// Shows either the byte[] or string to be sent - /// - public override string ToString() - { - return _bytes != null ? _bytes.ToString() : _string; - } - } -} - -namespace PepperDash_Essentials_Core.Queues -{ - /// - /// IBasicCommunication Message for IQueue - /// - [Obsolete("Use PepperDash.Essentials.Core.Queues")] - public class ComsMessage : IQueueMessage - { - private readonly byte[] _bytes; - private readonly IBasicCommunication _coms; - private readonly string _string; - private readonly bool _isByteMessage; - - /// - /// Constructor for a string message - /// - /// IBasicCommunication to send the message - /// Message to send - public ComsMessage(IBasicCommunication coms, string message) - { - Validate(coms, message); - _coms = coms; - _string = message; - } - - /// - /// Constructor for a byte message - /// - /// IBasicCommunication to send the message - /// Message to send - public ComsMessage(IBasicCommunication coms, byte[] message) - { - Validate(coms, message); - _coms = coms; - _bytes = message; - _isByteMessage = true; - } - - private void Validate(IBasicCommunication coms, object message) - { - if (coms == null) - throw new ArgumentNullException("coms"); - - if (message == null) - throw new ArgumentNullException("message"); - } - - /// - /// Dispatchs the string/byte[] to the IBasicCommunication specified - /// - public void Dispatch() - { - if (_isByteMessage) - { - _coms.SendBytes(_bytes); - } - else - { - _coms.SendText(_string); - } - } - - /// - /// Shows either the byte[] or string to be sent - /// - public override string ToString() - { - return _bytes != null ? _bytes.ToString() : _string; - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs deleted file mode 100644 index d4fe1af3..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs +++ /dev/null @@ -1,531 +0,0 @@ -using System; -using Crestron.SimplSharp; -using Crestron.SimplSharp.Reflection; -using Crestron.SimplSharpPro.CrestronThread; -using PepperDash.Core; - -namespace PepperDash.Essentials.Core.Queues -{ - /// - /// Threadsafe processing of queued items with pacing if required - /// - public class GenericQueue : IQueue - { - private readonly string _key; - protected readonly CrestronQueue _queue; - protected readonly Thread _worker; - protected readonly CEvent _waitHandle = new CEvent(); - - private bool _delayEnabled; - private int _delayTime; - - private const Thread.eThreadPriority _defaultPriority = Thread.eThreadPriority.MediumPriority; - - /// - /// If the instance has been disposed. - /// - public bool Disposed { get; private set; } - - /// - /// Returns the capacity of the CrestronQueue (fixed Size property) - /// - public int QueueCapacity - { - get - { - return _queue.Size; - } - } - - /// - /// Returns the number of elements currently in the CrestronQueue - /// - public int QueueCount - { - get - { - return _queue.Count; - } - } - - /// - /// Constructor with no thread priority - /// - /// - public GenericQueue(string key) - : this(key, _defaultPriority, 0, 0) - { - } - - /// - /// Constructor with queue size - /// - /// - /// Fixed size for the queue to hold - public GenericQueue(string key, int capacity) - : this(key, _defaultPriority, capacity, 0) - { - } - - /// - /// Constructor for generic queue with no pacing - /// - /// Key - /// Pacing in ms between actions - public GenericQueue(int pacing, string key) - : this(key, _defaultPriority, 0, pacing) - { - } - - /// - /// Constructor with pacing and capacity - /// - /// - /// - /// - public GenericQueue(string key, int pacing, int capacity) - : this(key, _defaultPriority, capacity, pacing) - { - } - - /// - /// Constructor with pacing and priority - /// - /// - /// - /// - public GenericQueue(string key, int pacing, Thread.eThreadPriority priority) - : this(key, priority, 0, pacing) - { - } - - /// - /// Constructor with pacing, priority and capacity - /// - /// - /// - /// - public GenericQueue(string key, Thread.eThreadPriority priority, int capacity) - : this(key, priority, capacity, 0) - { - } - - /// - /// Constructor with pacing, priority and capacity - /// - /// - /// - /// - /// - public GenericQueue(string key, int pacing, Thread.eThreadPriority priority, int capacity) - : this(key, priority, capacity, pacing) - { - } - - /// - /// Constructor for generic queue with no pacing - /// - /// Key - /// - /// - /// - protected GenericQueue(string key, Thread.eThreadPriority priority, int capacity, int pacing) - { - _key = key; - int cap = 25; // sets default - if (capacity > 0) - { - cap = capacity; // overrides default - } - _queue = new CrestronQueue(cap); - _worker = new Thread(ProcessQueue, null, Thread.eThreadStartOptions.Running) - { - Priority = priority, - Name = _key - }; - - SetDelayValues(pacing); - } - - private void SetDelayValues(int pacing) - { - _delayEnabled = pacing > 0; - _delayTime = pacing; - - CrestronEnvironment.ProgramStatusEventHandler += programEvent => - { - if (programEvent != eProgramStatusEventType.Stopping) - return; - - Dispose(true); - }; - } - - /// - /// Thread callback - /// - /// The action used to process dequeued items - /// Null when the thread is exited - private object ProcessQueue(object obj) - { - while (true) - { - IQueueMessage item = null; - - if (_queue.Count > 0) - { - item = _queue.Dequeue(); - if (item == null) - break; - } - if (item != null) - { - try - { - //Debug.Console(2, this, "Processing queue item: '{0}'", item.ToString()); - item.Dispatch(); - - if (_delayEnabled) - Thread.Sleep(_delayTime); - } - catch (System.Threading.ThreadAbortException) - { - //swallowing this exception, as it should only happen on shut down - } - catch (Exception ex) - { - Debug.Console(0, this, Debug.ErrorLogLevel.Error, "Caught an exception in the Queue: {1}:{0}", ex.Message, ex); - Debug.Console(2, this, Debug.ErrorLogLevel.Error, "Stack Trace: {0}", ex.StackTrace); - - if (ex.InnerException != null) - { - Debug.Console(0, this, Debug.ErrorLogLevel.Error, "---\r\n{0}", ex.InnerException.Message); - Debug.Console(2, this, Debug.ErrorLogLevel.Error, "Stack Trace: {0}", ex.InnerException.StackTrace); - } - } - } - else _waitHandle.Wait(); - } - - return null; - } - - public void Enqueue(IQueueMessage item) - { - if (Disposed) - { - Debug.Console(1, this, "Queue has been disposed. Enqueuing messages not allowed while program is stopping."); - return; - } - - _queue.Enqueue(item); - _waitHandle.Set(); - } - - /// - /// Disposes the thread and cleans up resources. Thread cannot be restarted once - /// disposed. - /// - public void Dispose() - { - Dispose(true); - CrestronEnvironment.GC.SuppressFinalize(this); - } - - /// - /// Actually does the disposing. If you override this method, be sure to either call the base implementation - /// or clean up all the resources yourself. - /// - /// set to true unless called from finalizer - protected void Dispose(bool disposing) - { - if (Disposed) - return; - - if (disposing) - { - Debug.Console(2, this, "Disposing..."); - if (_queue != null && !_queue.Disposed) - { - _queue.Clear(); - Enqueue(null); - } - _worker.Abort(); - _waitHandle.Close(); - } - - Disposed = true; - } - - ~GenericQueue() - { - Dispose(true); - } - - /// - /// Key - /// - public string Key - { - get { return _key; } - } - } -} - -namespace PepperDash_Essentials_Core.Queues -{ - /// - /// Threadsafe processing of queued items with pacing if required - /// - [Obsolete("Use PepperDash.Essentials.Core.Queues")] - public class GenericQueue : IQueue - { - private readonly string _key; - protected readonly CrestronQueue _queue; - protected readonly Thread _worker; - protected readonly CEvent _waitHandle = new CEvent(); - - private bool _delayEnabled; - private int _delayTime; - - private const Thread.eThreadPriority _defaultPriority = Thread.eThreadPriority.MediumPriority; - - /// - /// If the instance has been disposed. - /// - public bool Disposed { get; private set; } - - /// - /// Returns the capacity of the CrestronQueue (fixed Size property) - /// - public int QueueCapacity - { - get - { - return _queue.Size; - } - } - - /// - /// Returns the number of elements currently in the CrestronQueue - /// - public int QueueCount - { - get - { - return _queue.Count; - } - } - - /// - /// Constructor with no thread priority - /// - /// - public GenericQueue(string key) - : this(key, _defaultPriority, 0, 0) - { - } - - /// - /// Constructor with queue size - /// - /// - /// Fixed size for the queue to hold - public GenericQueue(string key, int capacity) - : this(key, _defaultPriority, capacity, 0) - { - } - - /// - /// Constructor for generic queue with no pacing - /// - /// Key - /// Pacing in ms between actions - public GenericQueue(int pacing, string key) - : this(key, _defaultPriority, 0, pacing) - { - } - - /// - /// Constructor with pacing and capacity - /// - /// - /// - /// - public GenericQueue(string key, int pacing, int capacity) - : this(key, _defaultPriority, capacity, pacing) - { - } - - /// - /// Constructor with pacing and priority - /// - /// - /// - /// - public GenericQueue(string key, int pacing, Thread.eThreadPriority priority) - : this(key, priority, 0, pacing) - { - } - - /// - /// Constructor with pacing, priority and capacity - /// - /// - /// - /// - public GenericQueue(string key, Thread.eThreadPriority priority, int capacity) - : this(key, priority, capacity, 0) - { - } - - /// - /// Constructor with pacing, priority and capacity - /// - /// - /// - /// - /// - public GenericQueue(string key, int pacing, Thread.eThreadPriority priority, int capacity) - : this(key, priority, capacity, pacing) - { - } - - /// - /// Constructor for generic queue with no pacing - /// - /// Key - /// - /// - /// - protected GenericQueue(string key, Thread.eThreadPriority priority, int capacity, int pacing) - { - _key = key; - int cap = 25; // sets default - if (capacity > 0) - { - cap = capacity; // overrides default - } - _queue = new CrestronQueue(cap); - _worker = new Thread(ProcessQueue, null, Thread.eThreadStartOptions.Running) - { - Priority = priority - }; - - SetDelayValues(pacing); - } - - private void SetDelayValues(int pacing) - { - _delayEnabled = pacing > 0; - _delayTime = pacing; - - CrestronEnvironment.ProgramStatusEventHandler += programEvent => - { - if (programEvent != eProgramStatusEventType.Stopping) - return; - - Dispose(true); - }; - } - - /// - /// Thread callback - /// - /// The action used to process dequeued items - /// Null when the thread is exited - private object ProcessQueue(object obj) - { - while (true) - { - IQueueMessage item = null; - - if (_queue.Count > 0) - { - item = _queue.Dequeue(); - if (item == null) - break; - } - if (item != null) - { - try - { - Debug.Console(2, this, "Processing queue item: '{0}'", item.ToString()); - item.Dispatch(); - - if (_delayEnabled) - Thread.Sleep(_delayTime); - } - catch (Exception ex) - { - Debug.Console(0, this, Debug.ErrorLogLevel.Error, "Caught an exception in the Queue {0}", ex.Message); - Debug.Console(2, this, Debug.ErrorLogLevel.Error, "Stack Trace: {0}", ex.StackTrace); - - if (ex.InnerException != null) - { - Debug.Console(0, this, Debug.ErrorLogLevel.Error, "Caught an exception in the Queue {0}", ex.InnerException.Message); - Debug.Console(2, this, Debug.ErrorLogLevel.Error, "Stack Trace: {0}", ex.InnerException.StackTrace); - } - } - } - else _waitHandle.Wait(); - } - - return null; - } - - public void Enqueue(IQueueMessage item) - { - _queue.Enqueue(item); - _waitHandle.Set(); - } - - /// - /// Disposes the thread and cleans up resources. Thread cannot be restarted once - /// disposed. - /// - public void Dispose() - { - Dispose(true); - CrestronEnvironment.GC.SuppressFinalize(this); - } - - /// - /// Actually does the disposing. If you override this method, be sure to either call the base implementation - /// or clean up all the resources yourself. - /// - /// set to true unless called from finalizer - protected void Dispose(bool disposing) - { - if (Disposed) - return; - - if (disposing) - { - Debug.Console(2, this, "Disposing..."); - if (_queue != null && !_queue.Disposed) - { - _queue.Clear(); - Enqueue(null); - } - _worker.Abort(); - _waitHandle.Close(); - } - - Disposed = true; - } - - ~GenericQueue() - { - Dispose(true); - } - - /// - /// Key - /// - public string Key - { - get { return _key; } - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueue.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueue.cs deleted file mode 100644 index 15803330..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueue.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Core; - -namespace PepperDash.Essentials.Core.Queues -{ - public interface IQueue : IKeyed, IDisposable where T : class - { - void Enqueue(T item); - bool Disposed { get; } - } -} - -namespace PepperDash_Essentials_Core.Queues -{ - [Obsolete("Use PepperDash.Essentials.Core.Queues")] - public interface IQueue : IKeyed, IDisposable where T : class - { - void Enqueue(T item); - bool Disposed { get; } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueueMessage.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueueMessage.cs deleted file mode 100644 index 8ffd4d96..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueueMessage.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; - -namespace PepperDash.Essentials.Core.Queues -{ - public interface IQueueMessage - { - void Dispatch(); - } -} - -namespace PepperDash_Essentials_Core.Queues -{ - [Obsolete("Use PepperDash.Essentials.Core.Queues")] - public interface IQueueMessage - { - void Dispatch(); - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ProcessStringMessage.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ProcessStringMessage.cs deleted file mode 100644 index d8ea4ada..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ProcessStringMessage.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; - -namespace PepperDash.Essentials.Core.Queues -{ - /// - /// Message class for processing strings via an IQueue - /// - public class ProcessStringMessage : IQueueMessage - { - private readonly Action _action; - private readonly string _message; - - /// - /// Constructor - /// - /// Message to be processed - /// Action to invoke on the message - public ProcessStringMessage(string message, Action action) - { - _message = message; - _action = action; - } - - /// - /// Processes the string with the given action - /// - public void Dispatch() - { - if (_action == null || String.IsNullOrEmpty(_message)) - return; - - _action(_message); - } - - /// - /// To string - /// - /// The current message - public override string ToString() - { - return _message ?? String.Empty; - } - } -} - -namespace PepperDash_Essentials_Core.Queues -{ - /// - /// Message class for processing strings via an IQueue - /// - [Obsolete("Use PepperDash.Essentials.Core.Queues")] - public class ProcessStringMessage : IQueueMessage - { - private readonly Action _action; - private readonly string _message; - - /// - /// Constructor - /// - /// Message to be processed - /// Action to invoke on the message - public ProcessStringMessage(string message, Action action) - { - _message = message; - _action = action; - } - - /// - /// Processes the string with the given action - /// - public void Dispatch() - { - if (_action == null || String.IsNullOrEmpty(_message)) - return; - - _action(_message); - } - - /// - /// To string - /// - /// The current message - public override string ToString() - { - return _message ?? String.Empty; - } - } -} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Remotes/ButtonExtensions.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Remotes/ButtonExtensions.cs deleted file mode 100644 index 43941260..00000000 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Remotes/ButtonExtensions.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -using Crestron.SimplSharp; -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Core; - -namespace PepperDash.Essentials.Core -{ - public static class ButtonExtensions - { - public static Button SetButtonAction(this Button button, Action a) - { - button.UserObject = a; - return button; - } - - public static Button SetButtonAction(this CrestronCollection