mirror of
https://github.com/PepperDash/EssentialsPluginTemplate.git
synced 2026-01-12 12:04:40 +00:00
Compare commits
81 Commits
feature/up
...
templateCl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
788bbd2c6d | ||
|
|
45f5bfb8ef | ||
|
|
4fd9dd739e | ||
|
|
46ba57bac5 | ||
|
|
7c3c0bea71 | ||
|
|
a427afaf3c | ||
|
|
2264d90372 | ||
|
|
809fb79bf1 | ||
|
|
507ca486ab | ||
|
|
4ec7550625 | ||
|
|
d327f2def8 | ||
|
|
4244b394e7 | ||
|
|
1b3c28da0c | ||
|
|
2586e9502d | ||
|
|
7ba409d64c | ||
|
|
0746d309df | ||
|
|
259a71c562 | ||
|
|
62f959bb25 | ||
|
|
62912451e8 | ||
|
|
ee057ad361 | ||
|
|
af7e9ae659 | ||
|
|
f08741efd6 | ||
|
|
1add0c193c | ||
|
|
3d57ac3560 | ||
|
|
856178d920 | ||
|
|
87872b78e2 | ||
|
|
266bf187d9 | ||
|
|
592400cc90 | ||
|
|
baaf7c4a28 | ||
|
|
57a265d27f | ||
|
|
0cf654ce2d | ||
|
|
24b02b199d | ||
|
|
91ff0d8c83 | ||
|
|
3b7ddac369 | ||
|
|
fcbf710781 | ||
|
|
2ff646e499 | ||
|
|
c323b982ae | ||
|
|
d46444e424 | ||
|
|
6541856958 | ||
|
|
710642bde5 | ||
|
|
587a647d27 | ||
|
|
6fb86d82c8 | ||
|
|
4143783d2e | ||
|
|
dc0b129277 | ||
|
|
26d0497362 | ||
|
|
114d3af162 | ||
|
|
fdf989c472 | ||
|
|
ca893bf07b | ||
|
|
8ed24e7c61 | ||
|
|
33c7922a9b | ||
|
|
f80ccde910 | ||
|
|
d09c5c5f00 | ||
|
|
8041db8b51 | ||
|
|
98bc7b0e5e | ||
|
|
aeb43e6c52 | ||
|
|
b7d9a21d0e | ||
|
|
fd709ba2e1 | ||
|
|
54115a0907 | ||
|
|
a13cfa6d51 | ||
|
|
d78fc1da9d | ||
|
|
10c23fcd40 | ||
|
|
4b4148af02 | ||
|
|
6b93162592 | ||
|
|
ff5ad93c6f | ||
|
|
c67e67b942 | ||
|
|
dd52a4e613 | ||
|
|
d28108a132 | ||
|
|
07019ad6d8 | ||
|
|
d590987143 | ||
|
|
05ba06661c | ||
|
|
f0617f2116 | ||
|
|
03e2e68fea | ||
|
|
057c2cfca9 | ||
|
|
1e4b7be2ff | ||
|
|
b2d7c9d246 | ||
|
|
498248fcc4 | ||
|
|
0a6c163bef | ||
|
|
279a89149f | ||
|
|
13fad8166a | ||
|
|
ddd394e0a5 | ||
|
|
8c4b48e1b8 |
34
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
34
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: "[BUG]-"
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**Stacktrace**
|
||||
|
||||
Include a stack trace of the exception if possible.
|
||||
```
|
||||
Paste stack trace here
|
||||
```
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
17
.github/ISSUE_TEMPLATE/essentials-plugin-request.md
vendored
Normal file
17
.github/ISSUE_TEMPLATE/essentials-plugin-request.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: Essentials Plugin Request
|
||||
about: Request an Essentials Plugin
|
||||
title: "[REQUEST] - "
|
||||
labels: plugin request
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
** Describe the Plugin **
|
||||
What do you want the plugin to do? Is it for a specific device? If it's for a specific device, include the manufacturer and model, along with links to API documentation if available.
|
||||
|
||||
** Does it need to be available in SIMPL Windows? **
|
||||
If it does, describe the functionality that should be exposed to SIMPL Windows via EISC. This may include an example join map, or other way of documenting the layout of the EISC.
|
||||
|
||||
** Additional Features or functionality **
|
||||
Describe additional features or functionality that this plugin should have.
|
||||
21
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
21
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: "[FEATURE]-"
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
If this is a request for support for a new device or type, be as specific as possible and include any pertinent manufacturer and model information.
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
45
.github/scripts/GenerateVersionNumber.ps1
vendored
Normal file
45
.github/scripts/GenerateVersionNumber.ps1
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
$latestVersions = $(git tag --merged origin/main)
|
||||
$latestVersion = [version]"0.0.0"
|
||||
Foreach ($version in $latestVersions) {
|
||||
Write-Host $version
|
||||
try {
|
||||
if (([version]$version) -ge $latestVersion) {
|
||||
$latestVersion = $version
|
||||
Write-Host "Setting latest version to: $latestVersion"
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Host "Unable to convert $($version). Skipping"
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$newVersion = [version]$latestVersion
|
||||
$phase = ""
|
||||
$newVersionString = ""
|
||||
switch -regex ($Env:GITHUB_REF) {
|
||||
'^refs\/heads\/main*.' {
|
||||
$newVersionString = "{0}.{1}.{2}" -f $newVersion.Major, $newVersion.Minor, $newVersion.Build
|
||||
}
|
||||
'^refs\/heads\/feature\/*.' {
|
||||
$phase = 'alpha'
|
||||
$newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER
|
||||
}
|
||||
'^refs\/heads\/release\/*.' {
|
||||
$splitRef = $Env:GITHUB_REF -split "/"
|
||||
$version = [version]($splitRef[-1] -replace "v", "")
|
||||
$phase = 'rc'
|
||||
$newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $version.Major, $version.Minor, $version.Build, $phase, $Env:GITHUB_RUN_NUMBER
|
||||
}
|
||||
'^refs\/heads\/dev*.' {
|
||||
$phase = 'beta'
|
||||
$newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER
|
||||
}
|
||||
'^refs\/heads\/hotfix\/*.' {
|
||||
$phase = 'hotfix'
|
||||
$newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Write-Output $newVersionString
|
||||
40
.github/scripts/UpdateAssemblyVersion.ps1
vendored
Normal file
40
.github/scripts/UpdateAssemblyVersion.ps1
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
function Update-SourceVersion {
|
||||
Param ([string]$Version)
|
||||
#$fullVersion = $Version
|
||||
$baseVersion = [regex]::Match($Version, "(\d+.\d+.\d+).*").captures.groups[1].value
|
||||
$NewAssemblyVersion = ‘AssemblyVersion("‘ + $baseVersion + ‘.*")’
|
||||
Write-Output "AssemblyVersion = $NewAssemblyVersion"
|
||||
$NewAssemblyInformationalVersion = ‘AssemblyInformationalVersion("‘ + $Version + ‘")’
|
||||
Write-Output "AssemblyInformationalVersion = $NewAssemblyInformationalVersion"
|
||||
|
||||
foreach ($o in $input) {
|
||||
Write-output $o.FullName
|
||||
$TmpFile = $o.FullName + “.tmp”
|
||||
get-content $o.FullName |
|
||||
ForEach-Object {
|
||||
$_ -replace ‘AssemblyVersion\(".*"\)’, $NewAssemblyVersion } |
|
||||
ForEach-Object {
|
||||
$_ -replace ‘AssemblyInformationalVersion\(".*"\)’, $NewAssemblyInformationalVersion
|
||||
} > $TmpFile
|
||||
move-item $TmpFile $o.FullName -force
|
||||
}
|
||||
}
|
||||
|
||||
function Update-AllAssemblyInfoFiles ( $version ) {
|
||||
foreach ($file in “AssemblyInfo.cs”, “AssemblyInfo.vb” ) {
|
||||
get-childitem -Path $Env:GITHUB_WORKSPACE -recurse | Where-Object { $_.Name -eq $file } | Update-SourceVersion $version ;
|
||||
}
|
||||
}
|
||||
|
||||
# validate arguments
|
||||
$r = [System.Text.RegularExpressions.Regex]::Match($args[0], "\d+\.\d+\.\d+.*");
|
||||
if ($r.Success) {
|
||||
Write-Output "Updating Assembly Version to $args ...";
|
||||
Update-AllAssemblyInfoFiles $args[0];
|
||||
}
|
||||
else {
|
||||
Write-Output ” “;
|
||||
Write-Output “Error: Input version does not match x.y.z format!”
|
||||
Write-Output ” “;
|
||||
Write-Output "Unable to apply version to AssemblyInfo.cs files";
|
||||
}
|
||||
42
.github/scripts/ZipBuildOutput.ps1
vendored
Normal file
42
.github/scripts/ZipBuildOutput.ps1
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
# Uncomment these for local testing
|
||||
# $Env:GITHUB_WORKSPACE = "C:\Working Directories\PD\essentials"
|
||||
# $Env:SOLUTION_FILE = "PepperDashEssentials"
|
||||
# $Env:VERSION = "0.0.0-buildType-test"
|
||||
|
||||
# Sets the root directory for the operation
|
||||
$destination = "$($Env:GITHUB_HOME)\output"
|
||||
New-Item -ItemType Directory -Force -Path ($destination)
|
||||
Get-ChildItem ($destination)
|
||||
$exclusions = @(git submodule foreach --quiet 'echo $name')
|
||||
# Trying to get any .json schema files (not currently working)
|
||||
# Gets any files with the listed extensions.
|
||||
Get-ChildItem -recurse -Path "$($Env:GITHUB_WORKSPACE)" -include "*.cplz" | ForEach-Object {
|
||||
$allowed = $true;
|
||||
# Exclude any files in submodules
|
||||
foreach ($exclude in $exclusions) {
|
||||
if ((Split-Path $_.FullName -Parent).contains("$($exclude)")) {
|
||||
$allowed = $false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($allowed) {
|
||||
Write-Host "allowing $($_)"
|
||||
$_;
|
||||
}
|
||||
} | Copy-Item -Destination ($destination) -Force
|
||||
Write-Host "Getting matching files..."
|
||||
# Get any files from the output folder that match the following extensions
|
||||
Get-ChildItem -Path $destination | Where-Object {($_.Extension -eq ".clz") -or ($_.Extension -eq ".cpz" -or ($_.Extension -eq ".cplz"))} | ForEach-Object {
|
||||
# Replace the extensions with dll and xml and create an array
|
||||
$filenames = @($($_ -replace "cpz|clz|cplz", "dll"), $($_ -replace "cpz|clz|cplz", "xml"))
|
||||
Write-Host "Filenames:"
|
||||
Write-Host $filenames
|
||||
if ($filenames.length -gt 0) {
|
||||
# Attempt to get the files and return them to the output directory
|
||||
Get-ChildItem -Recurse -Path "$($Env:GITHUB_WORKSPACE)" -include $filenames | Copy-Item -Destination ($destination) -Force
|
||||
}
|
||||
}
|
||||
Get-ChildItem -Path $destination\*.cplz | Rename-Item -NewName { "$($_.BaseName)-$($Env:VERSION)$($_.Extension)" }
|
||||
Compress-Archive -Path $destination -DestinationPath "$($Env:GITHUB_WORKSPACE)\$($Env:SOLUTION_FILE)-$($Env:VERSION).zip" -Force
|
||||
Write-Host "Output Contents post Zip"
|
||||
Get-ChildItem -Path $destination
|
||||
31
.github/workflows/EssentialsPlugins-builds-caller.yml
vendored
Normal file
31
.github/workflows/EssentialsPlugins-builds-caller.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
name: Build Essentials Plugin
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '**'
|
||||
|
||||
jobs:
|
||||
getVersion:
|
||||
uses: PepperDash/workflow-templates/.github/workflows/essentialsplugins-getversion.yml@main
|
||||
secrets: inherit
|
||||
build-3Series:
|
||||
uses: PepperDash/workflow-templates/.github/workflows/essentialsplugins-3Series-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 }}
|
||||
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 }}
|
||||
359
.gitignore
vendored
Normal file
359
.gitignore
vendored
Normal file
@@ -0,0 +1,359 @@
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
##
|
||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
|
||||
# User-specific files
|
||||
*.rsuser
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Mono auto generated files
|
||||
mono_crash.*
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# Visual Studio 2017 auto generated files
|
||||
Generated\ Files/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUnit
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
nunit-*.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# Benchmark Results
|
||||
BenchmarkDotNet.Artifacts/
|
||||
|
||||
# .NET Core
|
||||
project.lock.json
|
||||
project.fragment.lock.json
|
||||
artifacts/
|
||||
|
||||
# StyleCop
|
||||
StyleCopReport.xml
|
||||
|
||||
# Files built by Visual Studio
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.ipdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*_wpftmp.csproj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# Visual Studio Trace Files
|
||||
*.e2e
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# AxoCover is a Code Coverage Tool
|
||||
.axoCover/*
|
||||
!.axoCover/settings.json
|
||||
|
||||
# Coverlet is a free, cross platform Code Coverage Tool
|
||||
coverage*[.json, .xml, .info]
|
||||
|
||||
# Visual Studio code coverage results
|
||||
*.coverage
|
||||
*.coveragexml
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# NuGet Symbol Packages
|
||||
*.snupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/[Pp]ackages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/[Pp]ackages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/[Pp]ackages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignorable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
*.appx
|
||||
*.appxbundle
|
||||
*.appxupload
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!?*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
orleans.codegen.cs
|
||||
|
||||
# Including strong name files can present a security risk
|
||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||
#*.snk
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
ServiceFabricBackup/
|
||||
*.rptproj.bak
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
*.ndf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
*.rptproj.rsuser
|
||||
*- [Bb]ackup.rdl
|
||||
*- [Bb]ackup ([0-9]).rdl
|
||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
node_modules/
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||
*.vbw
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# CodeRush personal settings
|
||||
.cr/personal
|
||||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Cake - Uncomment if you are using it
|
||||
# tools/**
|
||||
# !tools/packages.config
|
||||
|
||||
# Tabs Studio
|
||||
*.tss
|
||||
|
||||
# Telerik's JustMock configuration file
|
||||
*.jmconfig
|
||||
|
||||
# BizTalk build output
|
||||
*.btp.cs
|
||||
*.btm.cs
|
||||
*.odx.cs
|
||||
*.xsd.cs
|
||||
|
||||
# OpenCover UI analysis results
|
||||
OpenCover/
|
||||
|
||||
# Azure Stream Analytics local run output
|
||||
ASALocalRun/
|
||||
|
||||
# MSBuild Binary and Structured Log
|
||||
*.binlog
|
||||
|
||||
# NVidia Nsight GPU debugger configuration file
|
||||
*.nvuser
|
||||
|
||||
# MFractors (Xamarin productivity tool) working folder
|
||||
.mfractor/
|
||||
|
||||
# Local History for Visual Studio
|
||||
.localhistory/
|
||||
|
||||
# BeatPulse healthcheck temp database
|
||||
healthchecksdb
|
||||
|
||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||
MigrationBackup/
|
||||
|
||||
# Ionide (cross platform F# VS Code tools) working folder
|
||||
.ionide/
|
||||
|
||||
# Crestron Zip Files
|
||||
*.cplz
|
||||
*.clz
|
||||
*.projectinfo
|
||||
*.suo
|
||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
||||
[submodule "EssentialsBuilds"]
|
||||
path = EssentialsBuilds
|
||||
url=https://github.com/PepperDash/Essentials-Builds.git
|
||||
Submodule EssentialsBuilds deleted from 855dccd0d4
2
GetPackages.BAT
Normal file
2
GetPackages.BAT
Normal file
@@ -0,0 +1,2 @@
|
||||
@Echo ON
|
||||
nuget install .\packages.config -OutputDirectory .\packages -excludeVersion
|
||||
25
PDT.EssentialsPluginTemplate.EPI.4Series.sln
Normal file
25
PDT.EssentialsPluginTemplate.EPI.4Series.sln
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.11.35327.3
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PDT.EssentialsPluginTemplate.EPI.4Series.", "src\PDT.EssentialsPluginTemplate.EPI.4Series..csproj", "{52E6E0A0-A710-4B5F-AF52-08816F5C99BB}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{52E6E0A0-A710-4B5F-AF52-08816F5C99BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{52E6E0A0-A710-4B5F-AF52-08816F5C99BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{52E6E0A0-A710-4B5F-AF52-08816F5C99BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{52E6E0A0-A710-4B5F-AF52-08816F5C99BB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {45BE70E2-A4DC-4851-92ED-CE67B99F5D86}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,52 +0,0 @@
|
||||
using System;
|
||||
using Crestron.SimplSharp; // For Basic SIMPL# Classes
|
||||
using Crestron.SimplSharpPro; // For Basic SIMPL#Pro classes
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
using PepperDash.Essentials;
|
||||
using PepperDash.Essentials.Core;
|
||||
using PepperDash.Essentials.Core.Config;
|
||||
using PepperDash.Core;
|
||||
|
||||
namespace EssentialsPluginTemplateEPI
|
||||
{
|
||||
/// <summary>
|
||||
/// This class contains the necessary properties and static methods required to function as an Essentials Plugin
|
||||
/// </summary>
|
||||
public class EssentialsPluginFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// This string is used to define the minimum version of the
|
||||
/// Essentials Framework required for this plugin
|
||||
/// </summary>
|
||||
public static string MinimumEssentialsFrameworkVersion = "1.4.31";
|
||||
|
||||
/// <summary>
|
||||
/// This method will get called by Essentials when this plugin is loaded.
|
||||
/// Use it to add factory methods for all new Device types defined in this plugin
|
||||
/// </summary>
|
||||
public static void LoadPlugin()
|
||||
{
|
||||
PepperDash.Essentials.Core.DeviceFactory.AddFactoryForType("EssentialsPluginTemplate", EssentialsPluginFactory.BuildDevice);
|
||||
|
||||
// Add additional factories for each type here
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Builds an instance of the device type. There should be method like this defined for each device type your plugin needs
|
||||
/// to be able to build
|
||||
/// </summary>
|
||||
/// <param name="dc">The device configuration</param>
|
||||
/// <returns>The device</returns>
|
||||
public static EssentialsPluginTemplateDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
var config = JsonConvert.DeserializeObject<EssentialsPluginTemplatePropertiesConfig>(dc.Properties.ToString());
|
||||
var newDevice = new EssentialsPluginTemplateDevice(dc.Key, dc.Name, config);
|
||||
return newDevice;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,57 +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.Bridges;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace EssentialsPluginTemplateEPI
|
||||
{
|
||||
public static class EssentialsPluginTemplateBridge
|
||||
{
|
||||
public static void LinkToApiExt(this EssentialsPluginFactory DspDevice, BasicTriList trilist, uint joinStart, string joinMapKey)
|
||||
{
|
||||
// Construct the default join map
|
||||
EssentialsPluginTemplateBridgeJoinMap joinMap = new EssentialsPluginTemplateBridgeJoinMap();
|
||||
|
||||
// Attempt to get a custom join map if specified in config
|
||||
var joinMapSerialized = JoinMapHelper.GetJoinMapForDevice(joinMapKey);
|
||||
|
||||
// If we find a custom join map, deserialize it
|
||||
if (!string.IsNullOrEmpty(joinMapSerialized))
|
||||
joinMap = JsonConvert.DeserializeObject<EssentialsPluginTemplateBridgeJoinMap>(joinMapSerialized);
|
||||
|
||||
// Offset the joins based on the join start
|
||||
joinMap.OffsetJoinNumbers(joinStart);
|
||||
|
||||
|
||||
// Set all your join actions here
|
||||
|
||||
|
||||
// Link all your feedbacks to joins here
|
||||
|
||||
}
|
||||
}
|
||||
public class EssentialsPluginTemplateBridgeJoinMap : JoinMapBase
|
||||
{
|
||||
// Specify your joins here
|
||||
|
||||
|
||||
public EssentialsPluginTemplateBridgeJoinMap()
|
||||
{
|
||||
// Set the values of your joins here
|
||||
}
|
||||
|
||||
public override void OffsetJoinNumbers(uint joinStart)
|
||||
{
|
||||
// Offset the joins from joinStart as applicable
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
|
||||
using PepperDash.Core;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace EssentialsPluginTemplateEPI
|
||||
{
|
||||
/// <summary>
|
||||
/// Example of a config class that represents the structure of the Properties object of a DeviceConfig.
|
||||
/// The BuildDevice method will attempt to deserialize the Properties object into this class.
|
||||
/// Populate with any necssary properties for your device
|
||||
/// </summary>
|
||||
public class EssentialsPluginTemplatePropertiesConfig
|
||||
{
|
||||
// Below are some example properties
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Control properties if needed to communicate with device.
|
||||
/// The JsonProperty attribute has been added to specify the name
|
||||
/// of the object and that it is required
|
||||
/// </summary>
|
||||
[JsonProperty("control", Required = Required.Always)]
|
||||
ControlPropertiesConfig Control { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Add custom properties here
|
||||
/// </summary>
|
||||
[JsonProperty("myDeviceProperty")]
|
||||
string MyDeviceProperty { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
using Crestron.SimplSharpPro.DeviceSupport;
|
||||
|
||||
using PepperDash.Essentials;
|
||||
using PepperDash.Essentials.Core;
|
||||
using PepperDash.Essentials.Core.Config;
|
||||
using PepperDash.Core;
|
||||
using PepperDash.Essentials.Bridges;
|
||||
|
||||
namespace EssentialsPluginTemplateEPI
|
||||
{
|
||||
/// <summary>
|
||||
/// Example of a plugin device
|
||||
/// </summary>
|
||||
public class EssentialsPluginTemplateDevice : Device, IBridge
|
||||
{
|
||||
/// <summary>
|
||||
/// Device Constructor. Called by BuildDevice
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="config"></param>
|
||||
public EssentialsPluginTemplateDevice(string key, string name, EssentialsPluginTemplatePropertiesConfig config)
|
||||
: base(key, name)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add items to be executed during the Activaction phase
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public override bool CustomActivate()
|
||||
{
|
||||
|
||||
return base.CustomActivate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method gets called by the EiscApi bridge and calls your bridge extension method
|
||||
/// </summary>
|
||||
/// <param name="trilist"></param>
|
||||
/// <param name="joinStart"></param>
|
||||
/// <param name="joinMapKey"></param>
|
||||
public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey)
|
||||
{
|
||||
this.LinkToApi(trilist, joinStart, joinMapKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -1,5 +0,0 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<DeployDeviceID>E282E6BE-C7C3-4ece-916A-88FB1CF8AF3C</DeployDeviceID>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,20 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||
# Visual Studio 2008
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PDT.EssentialsPluginTemplate.EPI", "PDT.EssentialsPluginTemplate.EPI.csproj", "{9D249E47-8F95-4437-A6BB-563510287AD1}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{9D249E47-8F95-4437-A6BB-563510287AD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9D249E47-8F95-4437-A6BB-563510287AD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9D249E47-8F95-4437-A6BB-563510287AD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9D249E47-8F95-4437-A6BB-563510287AD1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,63 +0,0 @@
|
||||
8/30/2019 3:01:01 PM, Info: Initializing SIMPLSharp Services...
|
||||
8/30/2019 3:01:01 PM, Info: ProjectInfo successfully initialized.
|
||||
8/30/2019 3:01:02 PM, Info: Saving project information...
|
||||
8/30/2019 3:01:02 PM, Info: Saving project information...
|
||||
8/30/2019 3:01:02 PM, Info: Saving project information...
|
||||
8/30/2019 3:01:02 PM, Info: Saving project information...
|
||||
8/30/2019 3:01:02 PM, Info: Saving project information...
|
||||
8/30/2019 3:01:02 PM, Info: Saving project information...
|
||||
8/30/2019 3:04:48 PM, Info: Validating assembly C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\essentials-builds\PepperDashEssentials.dll...
|
||||
8/30/2019 3:05:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:05:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:05:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:05:39 PM, Info: Validating assembly C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\essentials-builds\PepperDash_Core.dll...
|
||||
8/30/2019 3:05:39 PM, Info: Validating assembly C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\essentials-builds\PepperDash_Essentials_Core.dll...
|
||||
8/30/2019 3:05:40 PM, Info: Validating assembly C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\essentials-builds\PepperDash_Essentials_DM.dll...
|
||||
8/30/2019 3:06:24 PM, Info: Saving project information...
|
||||
8/30/2019 3:06:24 PM, Info: Saving project information...
|
||||
8/30/2019 3:06:24 PM, Info: Saving project information...
|
||||
8/30/2019 3:06:24 PM, Info: Saving project information...
|
||||
8/30/2019 3:06:24 PM, Info: Saving project information...
|
||||
8/30/2019 3:06:24 PM, Info: Saving project information...
|
||||
8/30/2019 3:06:36 PM, Info: Saving project information...
|
||||
8/30/2019 3:06:36 PM, Info: Saving project information...
|
||||
8/30/2019 3:06:36 PM, Info: Saving project information...
|
||||
8/30/2019 3:06:36 PM, Info: Saving project information...
|
||||
8/30/2019 3:06:36 PM, Info: Saving project information...
|
||||
8/30/2019 3:06:36 PM, Info: Saving project information...
|
||||
8/30/2019 3:08:54 PM, Info: Saving project information...
|
||||
8/30/2019 3:08:54 PM, Info: Saving project information...
|
||||
8/30/2019 3:08:54 PM, Info: Saving project information...
|
||||
8/30/2019 3:08:54 PM, Info: Saving project information...
|
||||
8/30/2019 3:08:54 PM, Info: Saving project information...
|
||||
8/30/2019 3:08:54 PM, Info: Saving project information...
|
||||
8/30/2019 3:09:39 PM, Info: Validating assembly C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\essentials-builds\PepperDash_Essentials_Core.dll...
|
||||
8/30/2019 3:10:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:10:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:10:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:15:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:15:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:15:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:20:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:20:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:20:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:25:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:25:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:25:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:30:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:30:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:30:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:35:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:35:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:35:10 PM, Info: Saving project information...
|
||||
8/30/2019 3:35:38 PM, Info: Saving project information...
|
||||
8/30/2019 3:35:38 PM, Info: Saving project information...
|
||||
8/30/2019 3:35:38 PM, Info: Saving project information...
|
||||
8/30/2019 3:35:38 PM, Info: Saving project information...
|
||||
8/30/2019 3:35:38 PM, Info: Saving project information...
|
||||
8/30/2019 3:35:38 PM, Info: Saving project information...
|
||||
8/30/2019 3:36:52 PM, Info: Validating assembly C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\NvxUrlRoutingClientEpi.dll...
|
||||
8/30/2019 3:36:52 PM, Info: Verifying assembly C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\NvxUrlRoutingClientEpi.dll
|
||||
8/30/2019 3:36:52 PM, Info: Creating Archive C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\NvxUrlRoutingClientEpi.cplz...
|
||||
8/30/2019 3:36:53 PM, Info: Saving project information...
|
||||
9/2/2019 8:34:46 AM, Info: Terminating SIMPLSharp Services
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,20 +0,0 @@
|
||||
<ProgramInfo>
|
||||
<RequiredInfo>
|
||||
<FriendlyName>PDTEssentialsPluginT</FriendlyName>
|
||||
<SystemName>PDT.EssentialsPluginTemplate.EPI</SystemName>
|
||||
<EntryPoint>PDT.EssentialsPluginTemplate.EPI</EntryPoint>
|
||||
<MinFirmwareVersion>1.009.0029</MinFirmwareVersion>
|
||||
<ProgramTool>SIMPL# Plugin</ProgramTool>
|
||||
<DesignToolId>5</DesignToolId>
|
||||
<ProgramToolId>5</ProgramToolId>
|
||||
<ArchiveName />
|
||||
</RequiredInfo>
|
||||
<OptionalInfo>
|
||||
<CompiledOn>2020-02-13 3:58:57 PM</CompiledOn>
|
||||
<CompilerRev>1.0.0.28767</CompilerRev>
|
||||
</OptionalInfo>
|
||||
<Plugin>
|
||||
<Version>Crestron.SIMPLSharp, Version=2.0.58.0, Culture=neutral, PublicKeyToken=812d080f93e2de10</Version>
|
||||
<Include4.dat>2.11.030</Include4.dat>
|
||||
</Plugin>
|
||||
</ProgramInfo>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,78 +0,0 @@
|
||||
MainAssembly=PDT.EssentialsPluginTemplate.EPI.dll:6808b45c8c5d7c4d3852fe284ea334cf
|
||||
MainAssemblyMinFirmwareVersion=1.009.0029
|
||||
MainAssemblyResource=SimplSharpData.dat:820b61c48c8a2cace82957eed4cc377c
|
||||
MainAssemblyResource=SimplSharpData.dat.der:bf862965c00f3e6ec535e4e00e82d30c
|
||||
MainAssemblyResource=SimplSharpData.dat:820b61c48c8a2cace82957eed4cc377c
|
||||
MainAssemblyResource=SimplSharpData.dat.der:bf862965c00f3e6ec535e4e00e82d30c
|
||||
ü
|
||||
DependencySource=Crestron.SimplSharpPro.DeviceSupport.dll:caae4b4259aaf619059f0ae34473bfd2
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:Crestron.SimplSharpPro.DeviceSupport.dll
|
||||
DependencyMainAssembly=Crestron.SimplSharpPro.DeviceSupport.dll:caae4b4259aaf619059f0ae34473bfd2
|
||||
ü
|
||||
DependencySource=Crestron.SimplSharpPro.DM.dll:bdf5acfa80cc3bb87f21deb891128b1d
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:Crestron.SimplSharpPro.DM.dll
|
||||
DependencyMainAssembly=Crestron.SimplSharpPro.DM.dll:bdf5acfa80cc3bb87f21deb891128b1d
|
||||
ü
|
||||
DependencySource=Crestron.SimplSharpPro.EthernetCommunications.dll:36e663497195140ee6f1b4ebc53f5ea7
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:Crestron.SimplSharpPro.EthernetCommunications.dll
|
||||
DependencyMainAssembly=Crestron.SimplSharpPro.EthernetCommunications.dll:36e663497195140ee6f1b4ebc53f5ea7
|
||||
ü
|
||||
DependencySource=Crestron.SimplSharpPro.Fusion.dll:2ceb645ad5aa098f78c4b6c963af2df2
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:Crestron.SimplSharpPro.Fusion.dll
|
||||
DependencyMainAssembly=Crestron.SimplSharpPro.Fusion.dll:2ceb645ad5aa098f78c4b6c963af2df2
|
||||
ü
|
||||
DependencySource=Crestron.SimplSharpPro.Gateways.dll:7242e212aa3843228a5d91eb66829f8a
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:Crestron.SimplSharpPro.Gateways.dll
|
||||
DependencyMainAssembly=Crestron.SimplSharpPro.Gateways.dll:7242e212aa3843228a5d91eb66829f8a
|
||||
ü
|
||||
DependencySource=Crestron.SimplSharpPro.GeneralIO.dll:8d02fa210764e02ccb11491caf122d53
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:Crestron.SimplSharpPro.GeneralIO.dll
|
||||
DependencyMainAssembly=Crestron.SimplSharpPro.GeneralIO.dll:8d02fa210764e02ccb11491caf122d53
|
||||
ü
|
||||
DependencySource=Crestron.SimplSharpPro.Lighting.dll:5a4a355db03b075b1e731469c0440a86
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:Crestron.SimplSharpPro.Lighting.dll
|
||||
DependencyMainAssembly=Crestron.SimplSharpPro.Lighting.dll:5a4a355db03b075b1e731469c0440a86
|
||||
ü
|
||||
DependencySource=Crestron.SimplSharpPro.Shades.dll:7061e8c8e7e8a57e2bc5a156e037f70b
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:Crestron.SimplSharpPro.Shades.dll
|
||||
DependencyMainAssembly=Crestron.SimplSharpPro.Shades.dll:7061e8c8e7e8a57e2bc5a156e037f70b
|
||||
ü
|
||||
DependencySource=Crestron.SimplSharpPro.UI.dll:089312a0cb0b4537072d4eb234e71e0e
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:Crestron.SimplSharpPro.UI.dll
|
||||
DependencyMainAssembly=Crestron.SimplSharpPro.UI.dll:089312a0cb0b4537072d4eb234e71e0e
|
||||
ü
|
||||
DependencySource=Essentials Devices Common.dll:2a3e604271af752bcc3d44a88c413a04
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:Essentials Devices Common.dll
|
||||
DependencyMainAssembly=Essentials Devices Common.dll:2a3e604271af752bcc3d44a88c413a04
|
||||
ü
|
||||
DependencySource=PepperDashEssentials.dll:5f8619a0a04001da41c15402c0865638
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:PepperDashEssentials.dll
|
||||
DependencyMainAssembly=PepperDashEssentials.dll:5f8619a0a04001da41c15402c0865638
|
||||
ü
|
||||
DependencySource=PepperDash_Core.dll:70f5a232b163f80b5d9f30b499a6eb18
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:PepperDash_Core.dll
|
||||
DependencyMainAssembly=PepperDash_Core.dll:70f5a232b163f80b5d9f30b499a6eb18
|
||||
ü
|
||||
DependencySource=PepperDash_Essentials_Core.dll:96e019f9a7bee024e462a74c0594fc6f
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:PepperDash_Essentials_Core.dll
|
||||
DependencyMainAssembly=PepperDash_Essentials_Core.dll:96e019f9a7bee024e462a74c0594fc6f
|
||||
ü
|
||||
DependencySource=PepperDash_Essentials_DM.dll:80c9770b1f20885ea340683270b90501
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:PepperDash_Essentials_DM.dll
|
||||
DependencyMainAssembly=PepperDash_Essentials_DM.dll:80c9770b1f20885ea340683270b90501
|
||||
ü
|
||||
DependencySource=SimplSharpNewtonsoft.dll:9c09c5d30daedddf895c36acbface0d5
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:SimplSharpNewtonsoft.dll
|
||||
DependencyMainAssembly=SimplSharpNewtonsoft.dll:9c09c5d30daedddf895c36acbface0d5
|
||||
ü
|
||||
DependencySource=SimplSharpReflectionInterface.dll:e3ff8edbba84ccd7155b9984e67488b2
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:SimplSharpReflectionInterface.dll
|
||||
DependencyMainAssembly=SimplSharpReflectionInterface.dll:e3ff8edbba84ccd7155b9984e67488b2
|
||||
ü
|
||||
DependencySource=SimplSharpSQLHelperInterface.dll:f0c505ddecd8a783d4b75217501cbb72
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:SimplSharpSQLHelperInterface.dll
|
||||
DependencyMainAssembly=SimplSharpSQLHelperInterface.dll:f0c505ddecd8a783d4b75217501cbb72
|
||||
ü
|
||||
DependencySource=SimplSharpTimerEventInterface.dll:c08c24694aafb0f575a49c66f8491477
|
||||
DependencyPath=PDT.EssentialsPluginTemplate.EPI.cplz:SimplSharpTimerEventInterface.dll
|
||||
DependencyMainAssembly=SimplSharpTimerEventInterface.dll:c08c24694aafb0f575a49c66f8491477
|
||||
Binary file not shown.
@@ -1,23 +0,0 @@
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\obj\Debug\ResolveAssemblyReference.cache
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\NvxUrlRoutingClientEpi.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\NvxUrlRoutingClientEpi.pdb
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\PepperDash_Core.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\PepperDash_Essentials_Core.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\PepperDash_Essentials_DM.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\PepperDashEssentials.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\SimplSharpNewtonsoft.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\SimplSharpReflectionInterface.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\Crestron.SimplSharpPro.Lighting.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\Crestron.SimplSharpPro.Gateways.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\SimplSharpSQLHelperInterface.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\Crestron.SimplSharpPro.Fusion.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\Crestron.SimplSharpPro.Shades.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\Crestron.SimplSharpPro.EthernetCommunications.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\Crestron.SimplSharpPro.DeviceSupport.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\Crestron.SimplSharpPro.UI.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\SimplSharpTimerEventInterface.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\Essentials Devices Common.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\Crestron.SimplSharpPro.GeneralIO.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\bin\Debug\Crestron.SimplSharpPro.DM.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\obj\Debug\NvxUrlRoutingClientEpi.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\KPMG\SLN103-AVNoc\SLN103-AVNoc.Plugins\NvxUrlRoutingClient.Epi\NvxUrlRoutingClientEpi\obj\Debug\NvxUrlRoutingClientEpi.pdb
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,46 +0,0 @@
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\obj\Debug\ResolveAssemblyReference.cache
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PDT.EssentialsPluginTemplate.EPI.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PDT.EssentialsPluginTemplate.EPI.pdb
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PepperDash_Core.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PepperDash_Essentials_Core.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PepperDash_Essentials_DM.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PepperDashEssentials.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\SimplSharpNewtonsoft.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\SimplSharpReflectionInterface.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.Lighting.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.Gateways.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\SimplSharpSQLHelperInterface.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.Fusion.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.Shades.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.EthernetCommunications.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.DeviceSupport.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.UI.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\SimplSharpTimerEventInterface.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Essentials Devices Common.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.GeneralIO.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.DM.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\obj\Debug\PDT.EssentialsPluginTemplate.EPI.dll
|
||||
C:\Users\JTA\Documents\Stash Folder\Frameworks\PDT.EssentialsPluginTemplate.EPI\PDT.EssentialsPluginTemplate.EPI\obj\Debug\PDT.EssentialsPluginTemplate.EPI.pdb
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\obj\Debug\ResolveAssemblyReference.cache
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\obj\Debug\PDT.EssentialsPluginTemplate.EPI.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\obj\Debug\PDT.EssentialsPluginTemplate.EPI.pdb
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PDT.EssentialsPluginTemplate.EPI.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PDT.EssentialsPluginTemplate.EPI.pdb
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PepperDash_Core.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PepperDash_Essentials_Core.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PepperDash_Essentials_DM.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\PepperDashEssentials.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\SimplSharpNewtonsoft.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\SimplSharpReflectionInterface.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.Lighting.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.Gateways.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\SimplSharpSQLHelperInterface.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.Fusion.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.Shades.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.EthernetCommunications.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.DeviceSupport.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.UI.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\SimplSharpTimerEventInterface.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Essentials Devices Common.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.GeneralIO.dll
|
||||
C:\Working Directories\PD\EssentialsPluginTemplate\PDT.EssentialsPluginTemplate.EPI\bin\Debug\Crestron.SimplSharpPro.DM.dll
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
60
README.md
60
README.md
@@ -1,2 +1,60 @@
|
||||
# PDT.EssentialsPluginTemplate.EPI
|
||||

|
||||
|
||||
# Essentials Plugin Template (c) 2023
|
||||
|
||||
## License
|
||||
|
||||
Provided under MIT license
|
||||
|
||||
## Overview
|
||||
|
||||
Fork this repo when creating a new plugin for Essentials. For more information about plugins, refer to the Essentials Wiki [Plugins](https://github.com/PepperDash/Essentials/wiki/Plugins) article.
|
||||
|
||||
This repo contains example classes for the three main categories of devices:
|
||||
* `EssentialsPluginTemplateDevice`: Used for most third party devices which require communication over a streaming mechanism such as a Com port, TCP/SSh/UDP socket, CEC, etc
|
||||
* `EssentialsPluginTemplateLogicDevice`: Used for devices that contain logic, but don't require any communication with third parties outside the program
|
||||
* `EssentialsPluginTemplateCrestronDevice`: Used for devices that represent a piece of Crestron hardware
|
||||
|
||||
There are matching factory classes for each of the three categories of devices. The `EssentialsPluginTemplateConfigObject` should be used as a template and modified for any of the categories of device. Same goes for the `EssentialsPluginTemplateBridgeJoinMap`.
|
||||
|
||||
This also illustrates how a plugin can contain multiple devices.
|
||||
|
||||
## Cloning Instructions
|
||||
|
||||
After forking this repository into your own GitHub space, you can create a new repository using this one as the template. Then you must install the necessary dependencies as indicated below.
|
||||
|
||||
## Dependencies
|
||||
|
||||
The [Essentials](https://github.com/PepperDash/Essentials) libraries are required. They referenced via nuget. You must have nuget.exe installed and in the `PATH` environment variable to use the following command. Nuget.exe is available at [nuget.org](https://dist.nuget.org/win-x86-commandline/latest/nuget.exe).
|
||||
|
||||
### Installing Dependencies
|
||||
|
||||
To install dependencies once nuget.exe is installed, run the following command from the root directory of your repository:
|
||||
`nuget install .\packages.config -OutputDirectory .\packages -excludeVersion`.
|
||||
Alternatively, you can simply run the `GetPackages.bat` file.
|
||||
To verify that the packages installed correctly, open the plugin solution in your repo and make sure that all references are found, then try and build it.
|
||||
|
||||
### Installing Different versions of PepperDash Core
|
||||
|
||||
If you need a different version of PepperDash Core, use the command `nuget install .\packages.config -OutputDirectory .\packages -excludeVersion -Version {versionToGet}`. Omitting the `-Version` option will pull the version indicated in the packages.config file.
|
||||
|
||||
### Instructions for Renaming Solution and Files
|
||||
|
||||
See the Task List in Visual Studio for a guide on how to start using the template. There is extensive inline documentation and examples as well.
|
||||
|
||||
For renaming instructions in particular, see the XML `remarks` tags on class definitions
|
||||
|
||||
## Build Instructions (PepperDash Internal)
|
||||
|
||||
## Generating Nuget Package
|
||||
|
||||
In the solution folder is a file named "PDT.EssentialsPluginTemplate.nuspec"
|
||||
|
||||
1. Rename the file to match your plugin solution name
|
||||
2. Edit the file to include your project specifics including
|
||||
1. <id>PepperDash.Essentials.Plugin.MakeModel</id> Convention is to use the prefix "PepperDash.Essentials.Plugin" and include the MakeModel of the device.
|
||||
2. <projectUrl>https://github.com/PepperDash/EssentialsPluginTemplate</projectUrl> Change to your url to the project repo
|
||||
|
||||
There is no longer a requirement to adjust workflow files for nuget generation for private and public repositories. This is now handled automatically in the workflow.
|
||||
|
||||
__If you do not make these changes to the nuspec file, the project will not generate a nuget package__
|
||||
BIN
images/essentials-plugin-blue.png
Normal file
BIN
images/essentials-plugin-blue.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
BIN
images/essentials-plugin-white.png
Normal file
BIN
images/essentials-plugin-white.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
3
packages.config
Normal file
3
packages.config
Normal file
@@ -0,0 +1,3 @@
|
||||
<packages>
|
||||
<package id="PepperDashEssentials" version="1.10.2" targetFramework="net35" allowedVersions="[1.0,2.0)"/>
|
||||
</packages>
|
||||
34
releaserc.json
Normal file
34
releaserc.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"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": "replace-me-feature-branch",
|
||||
"prerelease": "replace-me-prerelease",
|
||||
"channel": "replace-me-prerelease"
|
||||
}
|
||||
]
|
||||
}
|
||||
21
src/Directory.Build.props
Normal file
21
src/Directory.Build.props
Normal file
@@ -0,0 +1,21 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Version>1.0.0-local</Version>
|
||||
<InformationalVersion>$(Version)</InformationalVersion>
|
||||
<Authors>PepperDash Technologies</Authors>
|
||||
<Company>PepperDash Technologies</Company>
|
||||
<Product>PepperDash Essentials Plugin Template</Product>
|
||||
<Copyright>Copyright © 2024</Copyright>
|
||||
<RepositoryUrl>https://github.com/PepperDash/EssentialsPluginTemplate.git</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<PackageTags>Crestron; 4series</PackageTags>
|
||||
<PackageOutputPath>../output</PackageOutputPath>
|
||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
|
||||
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\LICENSE.md" Pack="true" PackagePath=""/>
|
||||
<None Include="..\README.md" Pack="true" PackagePath=""/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
20
src/Directory.Build.targets
Normal file
20
src/Directory.Build.targets
Normal file
@@ -0,0 +1,20 @@
|
||||
<Project>
|
||||
<ItemGroup>
|
||||
<None Include="$(TargetDir)\$(TargetName).$(Version).cpz" Condition="$(ProjectType) == 'Program'">
|
||||
<Pack>true</Pack>
|
||||
<PackagePath>content;</PackagePath>
|
||||
</None>
|
||||
<None Include="$(PackageOutputPath)\$(TargetName).$(Version).cplz" Condition="$(ProjectType) == 'ProgramLibrary'">
|
||||
<Pack>true</Pack>
|
||||
<PackagePath>content;</PackagePath>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<Target Name="Create CPLZ" AfterTargets="Build; Rebuild" Condition="$(ProjectType) == 'ProgramLibrary'">
|
||||
<Message Text="Creating CPLZ"></Message>
|
||||
<MakeDir Directories="$(PackageOutputPath)" Condition="!Exists($(PackageOutputPath))"></MakeDir>
|
||||
<ZipDirectory SourceDirectory="$(TargetDir)" DestinationFile="$(PackageOutputPath)\$(TargetName).$(Version).cplz" Overwrite="true"/>
|
||||
</Target>
|
||||
<Target Name="Clean CPLZ" AfterTargets="AfterClean" Condition="$(ProjectType) == 'ProgramLibrary'">
|
||||
<Delete Files="$(PackageOutputPath)\$(TargetName).$(Version).cplz"/>
|
||||
</Target>
|
||||
</Project>
|
||||
101
src/EssentialsPluginTemplateBridgeJoinMap.cs
Normal file
101
src/EssentialsPluginTemplateBridgeJoinMap.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
using PepperDash.Essentials.Core;
|
||||
|
||||
namespace EssentialsPluginTemplate
|
||||
{
|
||||
/// <summary>
|
||||
/// Plugin device Bridge Join Map
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Rename the class to match the device plugin being developed. Reference Essentials JoinMaps, if one exists for the device plugin being developed
|
||||
/// </remarks>
|
||||
/// <see cref="PepperDash.Essentials.Core.Bridges"/>
|
||||
/// <example>
|
||||
/// "EssentialsPluginBridgeJoinMapTemplate" renamed to "SamsungMdcBridgeJoinMap"
|
||||
/// </example>
|
||||
public class EssentialsPluginTemplateBridgeJoinMap : JoinMapBaseAdvanced
|
||||
{
|
||||
#region Digital
|
||||
|
||||
// TODO [ ] Add digital joins below plugin being developed
|
||||
|
||||
[JoinName("IsOnline")]
|
||||
public JoinDataComplete IsOnline = new JoinDataComplete(
|
||||
new JoinData
|
||||
{
|
||||
JoinNumber = 1,
|
||||
JoinSpan = 1
|
||||
},
|
||||
new JoinMetadata
|
||||
{
|
||||
Description = "Is Online",
|
||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||
JoinType = eJoinType.Digital
|
||||
});
|
||||
|
||||
[JoinName("Connect")]
|
||||
public JoinDataComplete Connect = new JoinDataComplete(
|
||||
new JoinData
|
||||
{
|
||||
JoinNumber = 2,
|
||||
JoinSpan = 1
|
||||
},
|
||||
new JoinMetadata
|
||||
{
|
||||
Description = "Connect (Held)/Disconnect (Release) & corresponding feedback",
|
||||
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
||||
JoinType = eJoinType.Digital
|
||||
});
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Analog
|
||||
|
||||
// TODO [ ] Add analog joins below plugin being developed
|
||||
|
||||
[JoinName("Status")]
|
||||
public JoinDataComplete Status = new JoinDataComplete(
|
||||
new JoinData
|
||||
{
|
||||
JoinNumber = 1,
|
||||
JoinSpan = 1
|
||||
},
|
||||
new JoinMetadata
|
||||
{
|
||||
Description = "Socket Status",
|
||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||
JoinType = eJoinType.Analog
|
||||
});
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Serial
|
||||
|
||||
// TODO [ ] Add serial joins below plugin being developed
|
||||
|
||||
public JoinDataComplete DeviceName = new JoinDataComplete(
|
||||
new JoinData
|
||||
{
|
||||
JoinNumber = 1,
|
||||
JoinSpan = 1
|
||||
},
|
||||
new JoinMetadata
|
||||
{
|
||||
Description = "Device Name",
|
||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||
JoinType = eJoinType.Serial
|
||||
});
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Plugin device BridgeJoinMap constructor
|
||||
/// </summary>
|
||||
/// <param name="joinStart">This will be the join it starts on the EISC bridge</param>
|
||||
public EssentialsPluginTemplateBridgeJoinMap(uint joinStart)
|
||||
: base(joinStart, typeof(EssentialsPluginTemplateBridgeJoinMap))
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
195
src/EssentialsPluginTemplateConfigObject.cs
Normal file
195
src/EssentialsPluginTemplateConfigObject.cs
Normal file
@@ -0,0 +1,195 @@
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using PepperDash.Essentials.Core;
|
||||
|
||||
namespace EssentialsPluginTemplate
|
||||
{
|
||||
/// <summary>
|
||||
/// Plugin device configuration object
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Rename the class to match the device plugin being created
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// "EssentialsPluginConfigObjectTemplate" renamed to "SamsungMdcConfig"
|
||||
/// </example>
|
||||
[ConfigSnippet("\"properties\":{\"control\":{}")]
|
||||
public class EssentialsPluginTemplateConfigObject
|
||||
{
|
||||
/// <summary>
|
||||
/// JSON control object
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Typically this object is not required, but in some instances it may be needed. For example, when building a
|
||||
/// plugin that is using Telnet (TCP/IP) communications and requires login, the device will need to handle the login.
|
||||
/// In order to do so, you will need the username and password in the "tcpSshProperties" object.
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// "control": {
|
||||
/// "method": "tcpIp",
|
||||
/// "controlPortDevKey": "processor",
|
||||
/// "controlPortNumber": 1,
|
||||
/// "comParams": {
|
||||
/// "baudRate": 9600,
|
||||
/// "dataBits": 8,
|
||||
/// "stopBits": 1,
|
||||
/// "parity": "None",
|
||||
/// "protocol": "RS232",
|
||||
/// "hardwareHandshake": "None",
|
||||
/// "softwareHandshake": "None"
|
||||
/// },
|
||||
/// "tcpSshProperties": {
|
||||
/// "address": "172.22.0.101",
|
||||
/// "port": 23,
|
||||
/// "username": "admin",
|
||||
/// "password": "password",
|
||||
/// "autoReconnect": true,
|
||||
/// "autoReconnectIntervalMs": 10000
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
[JsonProperty("control")]
|
||||
public EssentialsControlPropertiesConfig Control { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Serializes the poll time value
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is an exmaple device plugin property. This should be modified or deleted as needed for the plugin being built.
|
||||
/// </remarks>
|
||||
/// <value>
|
||||
/// PollTimeMs property gets/sets the value as a long
|
||||
/// </value>
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// "properties": {
|
||||
/// "polltimeMs": 30000
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
[JsonProperty("pollTimeMs")]
|
||||
public long PollTimeMs { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Serializes the warning timeout value
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is an exmaple device plugin property. This should be modified or deleted as needed for the plugin being built.
|
||||
/// </remarks>
|
||||
/// <value>
|
||||
/// WarningTimeoutMs property gets/sets the value as a long
|
||||
/// </value>
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// "properties": {
|
||||
/// "warningTimeoutMs": 180000
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
[JsonProperty("warningTimeoutMs")]
|
||||
public long WarningTimeoutMs { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Serializes the error timeout value
|
||||
/// </summary>
|
||||
/// /// <remarks>
|
||||
/// This is an exmaple device plugin property. This should be modified or deleted as needed for the plugin being built.
|
||||
/// </remarks>
|
||||
/// <value>
|
||||
/// ErrorTimeoutMs property gets/sets the value as a long
|
||||
/// </value>
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// "properties": {
|
||||
/// "errorTimeoutMs": 300000
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
[JsonProperty("errorTimeoutMs")]
|
||||
public long ErrorTimeoutMs { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Example dictionary of objects
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is an example collection configuration object. This should be modified or deleted as needed for the plugin being built.
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// "properties": {
|
||||
/// "presets": {
|
||||
/// "preset1": {
|
||||
/// "enabled": true,
|
||||
/// "name": "Preset 1"
|
||||
/// }
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// "properties": {
|
||||
/// "inputNames": {
|
||||
/// "input1": "Input 1",
|
||||
/// "input2": "Input 2"
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
[JsonProperty("DeviceDictionary")]
|
||||
public Dictionary<string, EssentialsPluginTemplateConfigObjectDictionary> DeviceDictionary { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Constuctor
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// If using a collection you must instantiate the collection in the constructor
|
||||
/// to avoid exceptions when reading the configuration file
|
||||
/// </remarks>
|
||||
public EssentialsPluginTemplateConfigObject()
|
||||
{
|
||||
DeviceDictionary = new Dictionary<string, EssentialsPluginTemplateConfigObjectDictionary>();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Example plugin configuration dictionary object
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is an example collection of configuration objects. This can be modified or deleted as needed for the plugin being built.
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// "properties": {
|
||||
/// "dictionary": {
|
||||
/// "item1": {
|
||||
/// "name": "Item 1 Name",
|
||||
/// "value": "Item 1 Value"
|
||||
/// }
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
public class EssentialsPluginTemplateConfigObjectDictionary
|
||||
{
|
||||
/// <summary>
|
||||
/// Serializes collection name property
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is an example collection of configuration objects. This can be modified or deleted as needed for the plugin being built.
|
||||
/// </remarks>
|
||||
[JsonProperty("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Serializes collection value property
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is an example collection of configuration objects. This can be modified or deleted as needed for the plugin being built.
|
||||
/// </remarks>
|
||||
[JsonProperty("value")]
|
||||
public uint Value { get; set; }
|
||||
}
|
||||
}
|
||||
256
src/EssentialsPluginTemplateDevice.cs
Normal file
256
src/EssentialsPluginTemplateDevice.cs
Normal file
@@ -0,0 +1,256 @@
|
||||
using Crestron.SimplSharpPro.DeviceSupport;
|
||||
using PepperDash.Core;
|
||||
using PepperDash.Essentials.Core;
|
||||
using PepperDash.Essentials.Core.Bridges;
|
||||
using PepperDash.Essentials.Core.Queues;
|
||||
|
||||
|
||||
namespace EssentialsPluginTemplate
|
||||
{
|
||||
/// <summary>
|
||||
/// Plugin device template for third party devices that use IBasicCommunication
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Rename the class to match the device plugin being developed.
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// "EssentialsPluginDeviceTemplate" renamed to "SamsungMdcDevice"
|
||||
/// </example>
|
||||
public class EssentialsPluginTemplateDevice : EssentialsBridgeableDevice
|
||||
{
|
||||
private EssentialsPluginTemplateConfigObject _config;
|
||||
|
||||
/// <summary>
|
||||
/// Provides a queue and dedicated worker thread for processing feedback messages from a device.
|
||||
/// </summary>
|
||||
private GenericQueue ReceiveQueue;
|
||||
|
||||
#region IBasicCommunication Properties and Constructor. Remove if not needed.
|
||||
|
||||
private readonly IBasicCommunication _comms;
|
||||
private readonly GenericCommunicationMonitor _commsMonitor;
|
||||
private readonly CommunicationGather _commsGather;
|
||||
|
||||
/// <summary>
|
||||
/// Set this value to that of the delimiter used by the API (if applicable)
|
||||
/// </summary>
|
||||
private const string CommsDelimiter = "\r";
|
||||
private byte[] _commsByteBuffer = { };
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Connects/disconnects the comms of the plugin device
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// triggers the _comms.Connect/Disconnect as well as thee comms monitor start/stop
|
||||
/// </remarks>
|
||||
public bool Connect
|
||||
{
|
||||
get { return _comms.IsConnected; }
|
||||
set
|
||||
{
|
||||
if (value)
|
||||
{
|
||||
_comms.Connect();
|
||||
_commsMonitor.Start();
|
||||
}
|
||||
else
|
||||
{
|
||||
_comms.Disconnect();
|
||||
_commsMonitor.Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Reports connect feedback through the bridge
|
||||
/// </summary>
|
||||
public BoolFeedback ConnectFeedback { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reports online feedback through the bridge
|
||||
/// </summary>
|
||||
public BoolFeedback OnlineFeedback { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reports socket status feedback through the bridge
|
||||
/// </summary>
|
||||
public IntFeedback StatusFeedback { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Plugin device constructor for devices that need IBasicCommunication
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="config"></param>
|
||||
/// <param name="comms"></param>
|
||||
public EssentialsPluginTemplateDevice(string key, string name, EssentialsPluginTemplateConfigObject config, IBasicCommunication comms)
|
||||
: base(key, name)
|
||||
{
|
||||
Debug.Console(0, this, "Constructing new {0} instance", name);
|
||||
|
||||
_config = config;
|
||||
|
||||
ReceiveQueue = new GenericQueue(key + "-rxqueue");
|
||||
|
||||
ConnectFeedback = new BoolFeedback(() => Connect);
|
||||
OnlineFeedback = new BoolFeedback(() => _commsMonitor.IsOnline);
|
||||
StatusFeedback = new IntFeedback(() => (int)_commsMonitor.Status);
|
||||
|
||||
_comms = comms;
|
||||
_commsMonitor = new GenericCommunicationMonitor(this, _comms, _config.PollTimeMs, _config.WarningTimeoutMs, _config.ErrorTimeoutMs, Poll);
|
||||
|
||||
var socket = _comms as ISocketStatus;
|
||||
if (socket != null)
|
||||
{
|
||||
socket.ConnectionChange += socket_ConnectionChange;
|
||||
Connect = true;
|
||||
}
|
||||
|
||||
#region Communication data event handlers. Comment out any that don't apply to the API type
|
||||
|
||||
_commsGather = new CommunicationGather(_comms, CommsDelimiter);
|
||||
_commsGather.LineReceived += Handle_LineRecieved;
|
||||
_comms.BytesReceived += Handle_BytesReceived;
|
||||
_comms.TextReceived += Handle_TextReceived;
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
private void socket_ConnectionChange(object sender, GenericSocketStatusChageEventArgs args)
|
||||
{
|
||||
if (ConnectFeedback != null)
|
||||
ConnectFeedback.FireUpdate();
|
||||
|
||||
if (StatusFeedback != null)
|
||||
StatusFeedback.FireUpdate();
|
||||
}
|
||||
|
||||
private void Handle_LineRecieved(object sender, GenericCommMethodReceiveTextArgs args)
|
||||
{
|
||||
ReceiveQueue.Enqueue(new ProcessStringMessage(args.Text, ProcessFeedbackMessage));
|
||||
}
|
||||
|
||||
private void Handle_BytesReceived(object sender, GenericCommMethodReceiveBytesArgs args)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
void Handle_TextReceived(object sender, GenericCommMethodReceiveTextArgs e)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method should perform any necessary parsing of feedback messages from the device
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
void ProcessFeedbackMessage(string message)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sends text to the device plugin comms
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Can be used to test commands with the device plugin using the DEVPROPS and DEVJSON console commands
|
||||
/// </remarks>
|
||||
/// <param name="text">Command to be sent</param>
|
||||
public void SendText(string text)
|
||||
{
|
||||
if (string.IsNullOrEmpty(text)) return;
|
||||
|
||||
_comms.SendText($"{text}{CommsDelimiter}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sends bytes to the device plugin comms
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Can be used to test commands with the device plugin using the DEVPROPS and DEVJSON console commands
|
||||
/// </remarks>
|
||||
/// <param name="bytes">Bytes to be sent</param>
|
||||
public void SendBytes(byte[] bytes)
|
||||
{
|
||||
if (bytes == null) return;
|
||||
|
||||
_comms.SendBytes(bytes);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Polls the device
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Poll method is used by the communication monitor. Update the poll method as needed for the plugin being developed
|
||||
/// </remarks>
|
||||
public void Poll()
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Overrides of EssentialsBridgeableDevice
|
||||
|
||||
/// <summary>
|
||||
/// Links the plugin device to the EISC bridge
|
||||
/// </summary>
|
||||
/// <param name="trilist"></param>
|
||||
/// <param name="joinStart"></param>
|
||||
/// <param name="joinMapKey"></param>
|
||||
/// <param name="bridge"></param>
|
||||
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||
{
|
||||
var joinMap = new EssentialsPluginTemplateBridgeJoinMap(joinStart);
|
||||
|
||||
if (bridge != null)
|
||||
{
|
||||
bridge.AddJoinMap(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}", GetType().Name);
|
||||
|
||||
|
||||
trilist.SetString(joinMap.DeviceName.JoinNumber, Name);
|
||||
|
||||
trilist.SetBoolSigAction(joinMap.Connect.JoinNumber, sig => Connect = sig);
|
||||
ConnectFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Connect.JoinNumber]);
|
||||
|
||||
StatusFeedback.LinkInputSig(trilist.UShortInput[joinMap.Status.JoinNumber]);
|
||||
OnlineFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]);
|
||||
|
||||
UpdateFeedbacks();
|
||||
|
||||
trilist.OnlineStatusChange += (o, a) =>
|
||||
{
|
||||
if (!a.DeviceOnLine) return;
|
||||
|
||||
trilist.SetString(joinMap.DeviceName.JoinNumber, Name);
|
||||
UpdateFeedbacks();
|
||||
};
|
||||
}
|
||||
|
||||
private void UpdateFeedbacks()
|
||||
{
|
||||
ConnectFeedback.FireUpdate();
|
||||
OnlineFeedback.FireUpdate();
|
||||
StatusFeedback.FireUpdate();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
239
src/EssentialsPluginTemplateFactory.cs
Normal file
239
src/EssentialsPluginTemplateFactory.cs
Normal file
@@ -0,0 +1,239 @@
|
||||
using System.Collections.Generic;
|
||||
using PepperDash.Core;
|
||||
using PepperDash.Essentials.Core;
|
||||
using Crestron.SimplSharpPro.UI;
|
||||
|
||||
namespace EssentialsPluginTemplate
|
||||
{
|
||||
/// <summary>
|
||||
/// Plugin device factory for devices that use IBasicCommunication
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Rename the class to match the device plugin being developed
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// "EssentialsPluginFactoryTemplate" renamed to "MyDeviceFactory"
|
||||
/// </example>
|
||||
public class EssentialsPluginTemplateFactory : EssentialsPluginDeviceFactory<EssentialsPluginTemplateDevice>
|
||||
{
|
||||
/// <summary>
|
||||
/// Plugin device factory constructor
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Update the MinimumEssentialsFrameworkVersion & TypeNames as needed when creating a plugin
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// Set the minimum Essentials Framework Version
|
||||
/// <code>
|
||||
/// MinimumEssentialsFrameworkVersion = "1.6.4;
|
||||
/// </code>
|
||||
/// In the constructor we initialize the list with the typenames that will build an instance of this device
|
||||
/// <code>
|
||||
/// TypeNames = new List<string>() { "SamsungMdc", "SamsungMdcDisplay" };
|
||||
/// </code>
|
||||
/// </example>
|
||||
public EssentialsPluginTemplateFactory()
|
||||
{
|
||||
// Set the minimum Essentials Framework Version
|
||||
// TODO [ ] Update the Essentials minimum framework version which this plugin has been tested against
|
||||
MinimumEssentialsFrameworkVersion = "1.6.4";
|
||||
|
||||
// In the constructor we initialize the list with the typenames that will build an instance of this device
|
||||
// TODO [ ] Update the TypeNames for the plugin being developed
|
||||
TypeNames = new List<string>() { "examplePluginDevice" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Builds and returns an instance of EssentialsPluginDeviceTemplate
|
||||
/// </summary>
|
||||
/// <param name="dc">device configuration</param>
|
||||
/// <returns>plugin device or null</returns>
|
||||
/// <remarks>
|
||||
/// The example provided below takes the device key, name, properties config and the comms device created.
|
||||
/// Modify the EssetnialsPlugingDeviceTemplate constructor as needed to meet the requirements of the plugin device.
|
||||
/// </remarks>
|
||||
/// <seealso cref="PepperDash.Core.eControlMethod"/>
|
||||
public override EssentialsDevice BuildDevice(PepperDash.Essentials.Core.Config.DeviceConfig dc)
|
||||
{
|
||||
Debug.Console(1, "[{0}] Factory Attempting to create new device from type: {1}", dc.Key, dc.Type);
|
||||
|
||||
// get the plugin device properties configuration object & check for null
|
||||
var propertiesConfig = dc.Properties.ToObject<EssentialsPluginTemplateConfigObject>();
|
||||
if (propertiesConfig == null)
|
||||
{
|
||||
Debug.Console(0, "[{0}] Factory: failed to read properties config for {1}", dc.Key, dc.Name);
|
||||
return null;
|
||||
}
|
||||
|
||||
// attempt build the plugin device comms device & check for null
|
||||
// TODO { ] As of PepperDash Core 1.0.41, HTTP and HTTPS are not valid eControlMethods and will throw an exception.
|
||||
var comms = CommFactory.CreateCommForDevice(dc);
|
||||
if (comms == null)
|
||||
{
|
||||
Debug.Console(1, "[{0}] Factory Notice: No control object present for device {1}", dc.Key, dc.Name);
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
return new EssentialsPluginTemplateDevice(dc.Key, dc.Name, propertiesConfig, comms);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Plugin device factory for logic devices that don't communicate
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Rename the class to match the device plugin being developed
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// "EssentialsPluginFactoryTemplate" renamed to "MyLogicDeviceFactory"
|
||||
/// </example>
|
||||
public class EssentialsPluginTemplateFactoryLogicDevice : EssentialsPluginDeviceFactory<EssentialsPluginTemplateLogicDevice>
|
||||
{
|
||||
/// <summary>
|
||||
/// Plugin device factory constructor
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Update the MinimumEssentialsFrameworkVersion & TypeNames as needed when creating a plugin
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// Set the minimum Essentials Framework Version
|
||||
/// <code>
|
||||
/// MinimumEssentialsFrameworkVersion = "1.6.4;
|
||||
/// </code>
|
||||
/// In the constructor we initialize the list with the typenames that will build an instance of this device
|
||||
/// <code>
|
||||
/// TypeNames = new List<string>() { "SamsungMdc", "SamsungMdcDisplay" };
|
||||
/// </code>
|
||||
/// </example>
|
||||
public EssentialsPluginTemplateFactoryLogicDevice()
|
||||
{
|
||||
// Set the minimum Essentials Framework Version
|
||||
// TODO [ ] Update the Essentials minimum framework version which this plugin has been tested against
|
||||
MinimumEssentialsFrameworkVersion = "1.6.4";
|
||||
|
||||
// In the constructor we initialize the list with the typenames that will build an instance of this device
|
||||
// TODO [ ] Update the TypeNames for the plugin being developed
|
||||
TypeNames = new List<string>() { "examplePluginLogicDevice" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Builds and returns an instance of EssentialsPluginTemplateLogicDevice
|
||||
/// </summary>
|
||||
/// <param name="dc">device configuration</param>
|
||||
/// <returns>plugin device or null</returns>
|
||||
/// <remarks>
|
||||
/// The example provided below takes the device key, name, properties config and the comms device created.
|
||||
/// Modify the EssetnialsPlugingDeviceTemplate constructor as needed to meet the requirements of the plugin device.
|
||||
/// </remarks>
|
||||
/// <seealso cref="PepperDash.Core.eControlMethod"/>
|
||||
public override EssentialsDevice BuildDevice(PepperDash.Essentials.Core.Config.DeviceConfig dc)
|
||||
{
|
||||
|
||||
Debug.Console(1, "[{0}] Factory Attempting to create new device from type: {1}", dc.Key, dc.Type);
|
||||
|
||||
// get the plugin device properties configuration object & check for null
|
||||
var propertiesConfig = dc.Properties.ToObject<EssentialsPluginTemplateConfigObject>();
|
||||
if (propertiesConfig == null)
|
||||
{
|
||||
Debug.Console(0, "[{0}] Factory: failed to read properties config for {1}", dc.Key, dc.Name);
|
||||
return null;
|
||||
}
|
||||
|
||||
var controlConfig = CommFactory.GetControlPropertiesConfig(dc);
|
||||
|
||||
if (controlConfig == null)
|
||||
{
|
||||
return new EssentialsPluginTemplateLogicDevice(dc.Key, dc.Name, propertiesConfig);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Console(0, "[{0}] Factory: Unable to get control properties from device config for {1}", dc.Key, dc.Name);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Plugin device factory for Crestron wrapper devices
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Rename the class to match the device plugin being developed
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// "EssentialsPluginFactoryTemplate" renamed to "MyCrestronDeviceFactory"
|
||||
/// </example>
|
||||
public class EssentialsPluginTemplateFactoryCrestronDevice : EssentialsPluginDeviceFactory<EssentialsPluginTemplateCrestronDevice>
|
||||
{
|
||||
/// <summary>
|
||||
/// Plugin device factory constructor
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Update the MinimumEssentialsFrameworkVersion & TypeNames as needed when creating a plugin
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// Set the minimum Essentials Framework Version
|
||||
/// <code>
|
||||
/// MinimumEssentialsFrameworkVersion = "1.6.4;
|
||||
/// </code>
|
||||
/// In the constructor we initialize the list with the typenames that will build an instance of this device
|
||||
/// <code>
|
||||
/// TypeNames = new List<string>() { "SamsungMdc", "SamsungMdcDisplay" };
|
||||
/// </code>
|
||||
/// </example>
|
||||
public EssentialsPluginTemplateFactoryCrestronDevice()
|
||||
{
|
||||
// Set the minimum Essentials Framework Version
|
||||
// TODO [ ] Update the Essentials minimum framework version which this plugin has been tested against
|
||||
MinimumEssentialsFrameworkVersion = "1.7.5";
|
||||
|
||||
// In the constructor we initialize the list with the typenames that will build an instance of this device
|
||||
// TODO [ ] Update the TypeNames for the plugin being developed
|
||||
TypeNames = new List<string>() { "examplePluginCrestronDevice" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Builds and returns an instance of EssentialsPluginTemplateCrestronDevice
|
||||
/// </summary>
|
||||
/// <param name="dc">device configuration</param>
|
||||
/// <returns>plugin device or null</returns>
|
||||
/// <remarks>
|
||||
/// The example provided below takes the device key, name, properties config and the comms device created.
|
||||
/// Modify the EssetnialsPlugingDeviceTemplate constructor as needed to meet the requirements of the plugin device.
|
||||
/// </remarks>
|
||||
/// <seealso cref="PepperDash.Core.eControlMethod"/>
|
||||
public override EssentialsDevice BuildDevice(PepperDash.Essentials.Core.Config.DeviceConfig dc)
|
||||
{
|
||||
|
||||
Debug.Console(1, "[{0}] Factory Attempting to create new device from type: {1}", dc.Key, dc.Type);
|
||||
|
||||
// get the plugin device properties configuration object & check for null
|
||||
var propertiesConfig = dc.Properties.ToObject<EssentialsPluginTemplateConfigObject>();
|
||||
if (propertiesConfig == null)
|
||||
{
|
||||
Debug.Console(0, "[{0}] Factory: failed to read properties config for {1}", dc.Key, dc.Name);
|
||||
return null;
|
||||
}
|
||||
|
||||
var controlConfig = CommFactory.GetControlPropertiesConfig(dc);
|
||||
|
||||
if (controlConfig == null)
|
||||
{
|
||||
var myTouchpanel = new Tsw760(controlConfig.IpIdInt, Global.ControlSystem);
|
||||
|
||||
return new EssentialsPluginTemplateCrestronDevice(dc.Key, dc.Name, propertiesConfig, myTouchpanel);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Console(0, "[{0}] Factory: Unable to get control properties from device config for {1}", dc.Key, dc.Name);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
40
src/PDT.EssentialsPluginTemplate.EPI.4Series..csproj
Normal file
40
src/PDT.EssentialsPluginTemplate.EPI.4Series..csproj
Normal file
@@ -0,0 +1,40 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<ProjectType>ProgramLibrary</ProjectType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<RootNamespace>PDT.EssentialsPluginTemplate.EPI</RootNamespace>
|
||||
<Deterministic>false</Deterministic>
|
||||
<AssemblyTitle>PDT.EssentialsPluginTemplate.EPI</AssemblyTitle>
|
||||
<Company>PepperDash Technologies</Company>
|
||||
<Description>This software is a template for a PepperDash Essentials Plugin.</Description>
|
||||
<Copyright>Copyright 2024</Copyright>
|
||||
<Version>1.0.0-local</Version>
|
||||
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
||||
<InformationalVersion>$(Version)</InformationalVersion>
|
||||
<OutputPath>4Series\bin\$(Configuration)\</OutputPath>
|
||||
<Authors>PepperDash Technologies</Authors>
|
||||
<PackageId>Pepperdash.Essentials.Plugins.Template</PackageId>
|
||||
<PackageProjectUrl>https://github.com/PepperDash/EssentialsPluginTemplate.git</PackageProjectUrl>
|
||||
<PackageTags>crestron 4series essentials plugin template</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DefineConstants>$(DefineConstants);SERIES4</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="Properties\**" />
|
||||
<EmbeddedResource Remove="Properties\**" />
|
||||
<None Remove="Properties\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="PDT.EssentialsPluginTemplate.projectinfo" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="PepperDashEssentials" Version="2.0.0-beta-2559" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,105 +1,115 @@
|
||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{9D249E47-8F95-4437-A6BB-563510287AD1}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>PDT.EssentialsPluginTemplate.EPI</RootNamespace>
|
||||
<AssemblyName>PDT.EssentialsPluginTemplate.EPI</AssemblyName>
|
||||
<ProjectTypeGuids>{0B4745B0-194B-4BB6-8E21-E9057CA92300};{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<PlatformFamilyName>WindowsCE</PlatformFamilyName>
|
||||
<PlatformID>E2BECB1F-8C8C-41ba-B736-9BE7D946A398</PlatformID>
|
||||
<OSVersion>5.0</OSVersion>
|
||||
<DeployDirSuffix>SmartDeviceProject1</DeployDirSuffix>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<NativePlatformName>Windows CE</NativePlatformName>
|
||||
<FormFactorID>
|
||||
</FormFactorID>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<NoStdLib>true</NoStdLib>
|
||||
<NoConfig>true</NoConfig>
|
||||
<GenerateSerializationAssemblies>off</GenerateSerializationAssemblies>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions>
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<NoStdLib>true</NoStdLib>
|
||||
<NoConfig>true</NoConfig>
|
||||
<GenerateSerializationAssemblies>off</GenerateSerializationAssemblies>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="mscorlib" />
|
||||
<Reference Include="PepperDashEssentials, Version=1.4.19.29953, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\EssentialsBuilds\PepperDashEssentials.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PepperDash_Core, Version=1.0.20.28344, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\EssentialsBuilds\PepperDash_Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PepperDash_Essentials_Core, Version=1.4.19.29946, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\EssentialsBuilds\PepperDash_Essentials_Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PepperDash_Essentials_DM, Version=1.3.7177.29951, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\EssentialsBuilds\PepperDash_Essentials_DM.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="SimplSharpHelperInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpHelperInterface.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="SimplSharpNewtonsoft, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpNewtonsoft.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SimplSharpPro, Version=1.5.3.17, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpPro.exe</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="SimplSharpReflectionInterface, Version=1.0.5583.25238, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpReflectionInterface.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="EssentailsPluginTemplate.cs" />
|
||||
<Compile Include="EssentialsPluginTemplateBridge.cs" />
|
||||
<Compile Include="EssentialsPluginTemplateConfigObject.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="EssentialsPluginTemplateDevice.cs" />
|
||||
<None Include="Properties\ControlSystem.cfg" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>rem S# Pro preparation will execute after these operations</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{9D249E47-8F95-4437-A6BB-563510287AD1}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>PDT.EssentialsPluginTemplate.EPI</RootNamespace>
|
||||
<AssemblyName>PDT.EssentialsPluginTemplate.EPI</AssemblyName>
|
||||
<ProjectTypeGuids>{0B4745B0-194B-4BB6-8E21-E9057CA92300};{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<PlatformFamilyName>WindowsCE</PlatformFamilyName>
|
||||
<PlatformID>E2BECB1F-8C8C-41ba-B736-9BE7D946A398</PlatformID>
|
||||
<OSVersion>5.0</OSVersion>
|
||||
<DeployDirSuffix>SmartDeviceProject1</DeployDirSuffix>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<NativePlatformName>Windows CE</NativePlatformName>
|
||||
<FormFactorID>
|
||||
</FormFactorID>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<NoStdLib>true</NoStdLib>
|
||||
<NoConfig>true</NoConfig>
|
||||
<GenerateSerializationAssemblies>off</GenerateSerializationAssemblies>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions>
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<NoStdLib>true</NoStdLib>
|
||||
<NoConfig>true</NoConfig>
|
||||
<GenerateSerializationAssemblies>off</GenerateSerializationAssemblies>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Crestron.SimplSharpPro.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Essentials Devices Common, Version=1.6.2.33892, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\PepperDashEssentials\lib\net35\Essentials Devices Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="mscorlib" />
|
||||
<Reference Include="PepperDashEssentials, Version=1.4.19.29953, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\PepperDashEssentials\lib\net35\PepperDashEssentials.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PepperDash_Core, Version=1.0.20.28344, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\PepperDashEssentials\lib\net35\PepperDash_Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PepperDash_Essentials_Core, Version=1.4.19.29946, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\PepperDashEssentials\lib\net35\PepperDash_Essentials_Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PepperDash_Essentials_DM, Version=1.3.7177.29951, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\PepperDashEssentials\lib\net35\PepperDash_Essentials_DM.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="SimplSharpHelperInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpHelperInterface.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="SimplSharpNewtonsoft, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpNewtonsoft.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SimplSharpPro, Version=1.5.3.17, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpPro.exe</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="SimplSharpReflectionInterface, Version=1.0.5583.25238, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpReflectionInterface.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="EssentialsPluginTemplateLogicDevice.cs" />
|
||||
<Compile Include="EssentialsPluginTemplateCrestronDevice.cs" />
|
||||
<Compile Include="EssentialsPluginTemplateBridgeJoinMap.cs" />
|
||||
<Compile Include="EssentialsPluginTemplateConfigObject.cs" />
|
||||
<Compile Include="EssentialsPluginTemplateFactory.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="EssentialsPluginTemplateDevice.cs" />
|
||||
<None Include="Properties\ControlSystem.cfg" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>rem S# Pro preparation will execute after these operations</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
23
src/PDT.EssentialsPluginTemplate.nuspec
Normal file
23
src/PDT.EssentialsPluginTemplate.nuspec
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package >
|
||||
<metadata>
|
||||
<id>PDT.EssentialsPluginTemplate</id>
|
||||
<readme>docs\README.md</readme>
|
||||
<version>2.0.2</version>
|
||||
<title>Essentials Plugin Template</title>
|
||||
<authors>PepperDash Technologies</authors>
|
||||
<owners>pepperdash</owners>
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<license type="expression">MIT</license>
|
||||
<projectUrl>https://github.com/PepperDash/EssentialsPluginTemplate</projectUrl>
|
||||
<copyright>Copyright 2022</copyright>
|
||||
<description>This software iserves as a template for generating new Essentials-Compliant plugins</description>
|
||||
<tags>crestron 3series 4series essentials pepperdash pepperdashessentials epi essentials plugin</tags>
|
||||
<repository type="git" url="https://github.com/PepperDash/EssentialsPluginTemplate"/>
|
||||
</metadata>
|
||||
<files>
|
||||
<file src="**" target="lib\net35"/>
|
||||
<file src="**" target="lib\net47"/>
|
||||
<file src="README.md" target="docs\"/>
|
||||
</files>
|
||||
</package>
|
||||
@@ -1,8 +1,8 @@
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: AssemblyTitle("EssentialsPluginTemplateEpi")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("EssentialsPluginTemplateEpi")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2019")]
|
||||
[assembly: AssemblyVersion("1.0.0.*")]
|
||||
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: AssemblyTitle("EssentialsPluginTemplateEpi")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("EssentialsPluginTemplateEpi")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyVersion("1.0.0.*")]
|
||||
|
||||
Reference in New Issue
Block a user