Compare commits

..

28 Commits

Author SHA1 Message Date
Andrew Welker
98bc7b0e5e Merge pull request #8 from PepperDash/feature/switch-from-submodule-to-nuget-package
Feature/switch from submodule to nuget package
2020-08-25 20:52:38 -04:00
Neil Dorin
aeb43e6c52 Adds nutget restore step to docker.yml 2020-08-25 17:06:43 -06:00
Neil Dorin
b7d9a21d0e Readme updates 2020-08-25 15:01:38 -06:00
Neil Dorin
fd709ba2e1 Updates Readme.md to include dependency instructions for nuget package management 2020-08-25 15:00:24 -06:00
Neil Dorin
54115a0907 Updates assembly references to nuget package folder 2020-08-25 14:55:53 -06:00
Neil Dorin
a13cfa6d51 Removes submodule reference for Essentialls 2020-08-25 14:53:52 -06:00
Andrew Welker
d78fc1da9d Merge pull request #7 from PepperDash/feature/updates
Update to new JoinMap and plugin loading mechanisms
2020-08-20 13:42:31 -04:00
Andrew Welker
10c23fcd40 fix workflow to change master -> main 2020-08-20 10:56:03 -06:00
Andrew Welker
4b4148af02 fix scripts to change master -> main 2020-08-20 10:54:08 -06:00
Andrew Welker
6b93162592 fix docker hub secrets 2020-08-20 10:52:34 -06:00
Andrew Welker
ff5ad93c6f fix build workflow 2020-08-20 10:50:17 -06:00
Andrew Welker
c67e67b942 fixing some files in the project file 2020-08-20 10:49:04 -06:00
Andrew Welker
dd52a4e613 Fix file name spelling 2020-08-20 10:41:10 -06:00
Andrew Welker
d28108a132 add .suo files to .gitignore 2020-08-20 10:40:43 -06:00
Andrew Welker
07019ad6d8 update to new plugin factory method 2020-08-20 10:40:28 -06:00
Andrew Welker
d590987143 stop tracking .projectinfo files 2020-08-20 10:33:20 -06:00
Andrew Welker
05ba06661c Update Join map and bridging methods 2020-08-20 10:31:33 -06:00
Andrew Welker
f0617f2116 update submodule to 1.6.1 2020-08-20 10:31:17 -06:00
Andrew Welker
03e2e68fea Merge pull request #5 from PepperDash/update-readme
removed message in readme about action
2020-03-24 15:32:53 -06:00
Andrew Welker
057c2cfca9 removed message in readme about action 2020-03-24 10:51:28 -06:00
Neil Dorin
1e4b7be2ff Merge pull request #3 from PepperDash/feature/add-action
Feature/add action
2020-03-23 13:33:40 -06:00
Andrew Welker
b2d7c9d246 updates readme.md to include info about the action 2020-03-23 13:22:11 -06:00
Andrew Welker
498248fcc4 fixes path for solution file to match existing path 2020-03-23 13:20:13 -06:00
Andrew Welker
0a6c163bef adds docker build action 2020-03-23 13:05:30 -06:00
Neil Dorin
279a89149f Merge pull request #1 from PepperDash/bugfix/add-gitignore
Create .gitignore
2020-02-26 14:49:37 -07:00
Andrew Welker
13fad8166a Added .clz & .cplz to .gitignore 2020-02-26 10:45:18 -07:00
Andrew Welker
ddd394e0a5 Create .gitignore 2020-02-26 08:59:25 -07:00
Neil Dorin
8c4b48e1b8 Updates Readme.md
Basic info and link to main docs
2020-02-13 16:05:48 -07:00
52 changed files with 771 additions and 300 deletions

34
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View 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.

View 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.

View File

@@ -0,0 +1,38 @@
$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 + 1)
}
'^refs\/heads\/feature\/*.' {
$phase = 'alpha'
}
'^refs\/heads\/release\/*.' {
$phase = 'rc'
}
'^refs\/heads\/development*.' {
$phase = 'beta'
}
'^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

View 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";
}

41
.github/scripts/ZipBuildOutput.ps1 vendored Normal file
View File

@@ -0,0 +1,41 @@
# 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 "*.clz", "*.cpz", "*.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
}
}
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

103
.github/workflows/docker.yml vendored Normal file
View File

@@ -0,0 +1,103 @@
name: Branch Build Using Docker
on:
push:
branches:
- feature/*
- hotfix/*
- release/*
- main
- development
env:
# solution path doesn't need slashes unless there it is multiple folders deep
# solution name does not include extension. .sln is assumed
SOLUTION_PATH: PDT.EssentialsPluginTemplate.EPI
SOLUTION_FILE: PDT.EssentialsPluginTemplate.EPI
# Do not edit this, we're just creating it here
VERSION: 0.0.0-buildtype-buildnumber
# Defaults to debug for build type
BUILD_TYPE: Debug
# Defaults to main as the release branch. Change as necessary
RELEASE_BRANCH: main
jobs:
Build_Project:
runs-on: windows-latest
steps:
# First we checkout the source repo
- name: Checkout repo
uses: actions/checkout@v2
with:
fetch-depth: 0
# And any submodules
- name: Checkout submodules
shell: bash
run: |
git config --global url."https://github.com/".insteadOf "git@github.com:"
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
# Set the BUILD_TYPE environment variable
- name: Set Build to Release if triggered from main
run: |
if("$($Env:GITHUB_REF)".contains("$($Env:RELEASE_BRANCH)")) {
Write-Host "Setting build type to Release"
Write-Output "::set-env name=BUILD_TYPE::Release"
}
# Fetch all tags
- name: Fetch tags
run: git fetch --tags
# Generate the appropriate version number
- name: Set Version Number
shell: powershell
run: |
$version = ./.github/scripts/GenerateVersionNumber.ps1
Write-Output "::set-env name=VERSION::$version"
# Use the version number to set the version of the assemblies
- name: Update AssemblyInfo.cs
shell: powershell
run: |
Write-Output ${{ env.VERSION }}
./.github/scripts/UpdateAssemblyVersion.ps1 ${{ env.VERSION }}
- name: restore Nuget Packages
run: nuget install .\packages.config -OutputDirectory .\packages -ExcludeVersion
- name: Login to Docker
uses: azure/docker-login@v1
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
# Build the solutions in the docker image
- name: Build Solution
shell: powershell
run: |
Invoke-Expression "docker run --rm --mount type=bind,source=""$($Env:GITHUB_WORKSPACE)"",target=""c:/project"" pepperdash/sspbuilder c:\cihelpers\vsidebuild.exe -Solution ""c:\project\$($Env:SOLUTION_PATH)\$($Env:SOLUTION_FILE).sln"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)"
# Zip up the output files as needed
- name: Zip Build Output
shell: powershell
run: ./.github/scripts/ZipBuildOutput.ps1
- name: Upload Build Output
uses: actions/upload-artifact@v1
with:
name: Build
path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
# Create the release on the source repo
- name: Create Release
id: create_release
uses: actions/create-release@v1
with:
tag_name: ${{ env.VERSION }}
release_name: ${{ env.VERSION }}
prerelease: ${{contains('debug', env.BUILD_TYPE)}}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Upload the build package to the release
- name: Upload Release Package
id: upload_release
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
asset_name: ${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
asset_content_type: application/zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

359
.gitignore vendored Normal file
View 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
View File

@@ -1,3 +0,0 @@
[submodule "EssentialsBuilds"]
path = EssentialsBuilds
url=https://github.com/PepperDash/Essentials-Builds.git

Submodule EssentialsBuilds deleted from 855dccd0d4

View File

@@ -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;
}
}
}

View File

@@ -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
}
}
}

View File

@@ -1,22 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Essentials;
using Crestron.SimplSharpPro.DeviceSupport;
using Newtonsoft.Json;
using PDT.EssentialsPluginTemplate.EPI;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.Bridges;
using PepperDash.Core;
using PepperDash.Essentials.Bridges;
namespace EssentialsPluginTemplateEPI
{
/// <summary>
/// Example of a plugin device
/// </summary>
public class EssentialsPluginTemplateDevice : Device, IBridge
public class EssentialsPluginTemplateDevice : EssentialsDevice, IBridgeAdvanced
{
/// <summary>
/// Device Constructor. Called by BuildDevice
@@ -46,9 +40,28 @@ namespace EssentialsPluginTemplateEPI
/// <param name="trilist"></param>
/// <param name="joinStart"></param>
/// <param name="joinMapKey"></param>
public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey)
public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{
this.LinkToApi(trilist, joinStart, joinMapKey);
// Construct the default join map
var joinMap = new EssentialsPluginTemplateBridgeJoinMap(joinStart);
// 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);
//Checking if the bridge is null allows for backwards compatability with configurations that use EiscApi instead of EiscApiAdvanced
if (bridge != null)
{
bridge.AddJoinMap(Key, joinMap);
}
// Set all your join actions here
// Link all your feedbacks to joins here
}
}
}

View File

@@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
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 methods required to function as an Essentials Plugin
/// </summary>
public class EssentialsPluginFactory:EssentialsPluginDeviceFactory<EssentialsPluginTemplateDevice>
{
public EssentialsPluginFactory()
{
// This string is used to define the minimum version of the
// Essentials Framework required for this plugin
MinimumEssentialsFrameworkVersion = "1.6.1";
//The strings defined in this list will be used in the configuration file to build the device in this plugin.
TypeNames = new List<string> {"essentialsPluginTemplateDevice"};
}
#region Overrides of EssentialsDeviceFactory<EssentialsPluginTemplateDevice>
public override EssentialsDevice BuildDevice(DeviceConfig dc)
{
var config = dc.Properties.ToObject<EssentialsPluginTemplatePropertiesConfig>();
var newDevice = new EssentialsPluginTemplateDevice(dc.Key, dc.Name, config);
return newDevice;
}
#endregion
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using PepperDash.Essentials.Core;
namespace PDT.EssentialsPluginTemplate.EPI
{
public class EssentialsPluginTemplateBridgeJoinMap : JoinMapBaseAdvanced
{
[JoinName("IsOnline")]
public JoinDataComplete IsOnline = new JoinDataComplete(new JoinData {JoinNumber = 1, JoinSpan = 1},
new JoinMetadata
{
Description = "Device is Online",
JoinType = eJoinType.Digital,
JoinCapabilities = eJoinCapabilities.ToSIMPL
});
public EssentialsPluginTemplateBridgeJoinMap(uint joinStart):base(joinStart, typeof(EssentialsPluginTemplateBridgeJoinMap))
{
}
}
}

View File

@@ -46,22 +46,26 @@
<GenerateSerializationAssemblies>off</GenerateSerializationAssemblies>
</PropertyGroup>
<ItemGroup>
<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>..\EssentialsBuilds\PepperDashEssentials.dll</HintPath>
<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>..\EssentialsBuilds\PepperDash_Core.dll</HintPath>
<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>..\EssentialsBuilds\PepperDash_Essentials_Core.dll</HintPath>
<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>..\EssentialsBuilds\PepperDash_Essentials_DM.dll</HintPath>
<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>
@@ -91,9 +95,9 @@
<Reference Include="System.Data" />
</ItemGroup>
<ItemGroup>
<Compile Include="EssentailsPluginTemplate.cs" />
<Compile Include="EssentialsPluginTemplateBridge.cs" />
<Compile Include="EssentialsPluginTemplateConfigObject.cs" />
<Compile Include="EssentialsPluginTemplateFactory.cs" />
<Compile Include="EssentialsPluginTemplateJoinMap.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="EssentialsPluginTemplateDevice.cs" />
<None Include="Properties\ControlSystem.cfg" />

View File

@@ -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>

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,2 +1,27 @@
# PDT.EssentialsPluginTemplate.EPI
# Essentials Plugin Template (c) 2020
## 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.
## 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`.
To verify that the packages installed correctly, open Essentials 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.

3
packages.config Normal file
View File

@@ -0,0 +1,3 @@
<packages>
<package id="PepperDashEssentials" version="1.6.2" targetFramework="net35" allowedVersions="[1.0,2.0)"/>
</packages>