mirror of
https://github.com/PepperDash/EssentialsPluginTemplate.git
synced 2026-01-26 02:44:39 +00:00
Compare commits
10 Commits
0.0.1--13
...
1.0.1-alph
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
33c7922a9b | ||
|
|
f80ccde910 | ||
|
|
d09c5c5f00 | ||
|
|
8041db8b51 | ||
|
|
98bc7b0e5e | ||
|
|
aeb43e6c52 | ||
|
|
b7d9a21d0e | ||
|
|
fd709ba2e1 | ||
|
|
54115a0907 | ||
|
|
a13cfa6d51 |
2
.github/workflows/docker.yml
vendored
2
.github/workflows/docker.yml
vendored
@@ -59,6 +59,8 @@ jobs:
|
||||
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:
|
||||
|
||||
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 e29501be5d
@@ -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 EssentialsPluginBridgeJoinMapTemplate : 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 EssentialsPluginBridgeJoinMapTemplate(uint joinStart)
|
||||
: base(joinStart, typeof(EssentialsPluginBridgeJoinMapTemplate))
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,37 +1,195 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
|
||||
using PepperDash.Core;
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using PepperDash.Essentials.Core;
|
||||
|
||||
namespace EssentialsPluginTemplateEPI
|
||||
namespace EssentialsPluginTemplate
|
||||
{
|
||||
/// <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
|
||||
/// <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 EssentialsPluginConfigObjectTemplate
|
||||
{
|
||||
// Below are some example properties
|
||||
/// <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>
|
||||
/// 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>
|
||||
/// 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>
|
||||
/// Add custom properties here
|
||||
/// </summary>
|
||||
[JsonProperty("myDeviceProperty")]
|
||||
string MyDeviceProperty { 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, EssentialsPluginConfigObjectDictionaryTemplate> 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 EssentialsPluginConfigObjectTemplate()
|
||||
{
|
||||
DeviceDictionary = new Dictionary<string, EssentialsPluginConfigObjectDictionaryTemplate>();
|
||||
}
|
||||
}
|
||||
|
||||
/// <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 EssentialsPluginConfigObjectDictionaryTemplate
|
||||
{
|
||||
/// <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; }
|
||||
}
|
||||
}
|
||||
@@ -1,67 +1,246 @@
|
||||
using Crestron.SimplSharpPro.DeviceSupport;
|
||||
using Newtonsoft.Json;
|
||||
using PDT.EssentialsPluginTemplate.EPI;
|
||||
// For Basic SIMPL# Classes
|
||||
// For Basic SIMPL#Pro classes
|
||||
|
||||
using Crestron.SimplSharpPro.DeviceSupport;
|
||||
using PepperDash.Core;
|
||||
using PepperDash.Essentials.Core;
|
||||
using PepperDash.Essentials.Core.Bridges;
|
||||
using PepperDash.Core;
|
||||
|
||||
namespace EssentialsPluginTemplateEPI
|
||||
namespace EssentialsPluginTemplate
|
||||
{
|
||||
/// <summary>
|
||||
/// Example of a plugin device
|
||||
/// </summary>
|
||||
public class EssentialsPluginTemplateDevice : EssentialsDevice, IBridgeAdvanced
|
||||
{
|
||||
/// <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>
|
||||
/// Plugin device
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Rename the class to match the device plugin being developed.
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// "EssentialsPluginDeviceTemplate" renamed to "SamsungMdcDevice"
|
||||
/// </example>
|
||||
public class EssentialsPluginDeviceTemplate : EssentialsBridgeableDevice
|
||||
{
|
||||
// TODO [ ] Add, modify, remove properties and fields as needed for the plugin being developed
|
||||
private readonly IBasicCommunication _comms;
|
||||
private readonly GenericCommunicationMonitor _commsMonitor;
|
||||
|
||||
}
|
||||
// _comms gather for ASCII based API's
|
||||
// TODO [ ] If not using an ASCII based API, delete the properties below
|
||||
private readonly CommunicationGather _commsGather;
|
||||
private const string CommsDelimiter = "\r";
|
||||
|
||||
/// <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, EiscApiAdvanced bridge)
|
||||
{
|
||||
// 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
|
||||
// _comms byte buffer for HEX/byte based API's
|
||||
// TODO [ ] If not using an HEX/byte based API, delete the properties below
|
||||
private byte[] _commsByteBuffer = { };
|
||||
|
||||
|
||||
// Link all your feedbacks to joins here
|
||||
}
|
||||
}
|
||||
}
|
||||
private EssentialsPluginConfigObjectTemplate _config;
|
||||
|
||||
/// <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
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="config"></param>
|
||||
/// <param name="comms"></param>
|
||||
public EssentialsPluginDeviceTemplate(string key, string name, EssentialsPluginConfigObjectTemplate config, IBasicCommunication comms)
|
||||
: base(key, name)
|
||||
{
|
||||
Debug.Console(0, this, "Constructing new {0} instance", name);
|
||||
|
||||
// TODO [ ] Update the constructor as needed for the plugin device being developed
|
||||
|
||||
_config = config;
|
||||
|
||||
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)
|
||||
{
|
||||
// device comms is IP **ELSE** device comms is RS232
|
||||
socket.ConnectionChange += socket_ConnectionChange;
|
||||
Connect = true;
|
||||
}
|
||||
|
||||
// _comms gather for ASCII based API's
|
||||
// TODO [ ] If not using an ASCII based API, delete the properties below
|
||||
_commsGather = new CommunicationGather(_comms, CommsDelimiter);
|
||||
AddPostActivationAction(() => _commsGather.LineReceived += Handle_LineRecieved);
|
||||
|
||||
// _comms byte buffer for HEX/byte based API's
|
||||
// TODO [ ] If not using an HEX/byte based API, delete the properties below
|
||||
_comms.BytesReceived += Handle_BytesReceived;
|
||||
AddPostActivationAction(() => _comms.BytesReceived += Handle_BytesReceived);
|
||||
}
|
||||
|
||||
#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 EssentialsPluginBridgeJoinMapTemplate(joinStart);
|
||||
|
||||
// This adds the join map to the collection on the bridge
|
||||
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);
|
||||
|
||||
// TODO [ ] Implement bridge links as needed
|
||||
|
||||
// links to bridge
|
||||
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()
|
||||
{
|
||||
// TODO [ ] Update as needed for the plugin being developed
|
||||
ConnectFeedback.FireUpdate();
|
||||
OnlineFeedback.FireUpdate();
|
||||
StatusFeedback.FireUpdate();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private void socket_ConnectionChange(object sender, GenericSocketStatusChageEventArgs args)
|
||||
{
|
||||
if (ConnectFeedback != null)
|
||||
ConnectFeedback.FireUpdate();
|
||||
|
||||
if (StatusFeedback != null)
|
||||
StatusFeedback.FireUpdate();
|
||||
}
|
||||
|
||||
// TODO [ ] If not using an ASCII based API, delete the properties below
|
||||
private void Handle_LineRecieved(object sender, GenericCommMethodReceiveTextArgs args)
|
||||
{
|
||||
// TODO [ ] Implement method
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
// TODO [ ] If not using an HEX/byte based API, delete the properties below
|
||||
private void Handle_BytesReceived(object sender, GenericCommMethodReceiveBytesArgs args)
|
||||
{
|
||||
// TODO [ ] Implement method
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
// TODO [ ] If not using an ACII based API, delete the properties below
|
||||
/// <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(string.Format("{0}{1}", text, CommsDelimiter));
|
||||
}
|
||||
|
||||
// TODO [ ] If not using an HEX/byte based API, delete the properties below
|
||||
/// <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()
|
||||
{
|
||||
// TODO [ ] Update Poll method as needed for the plugin being developed
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,43 +1,92 @@
|
||||
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 System.Collections.Generic;
|
||||
using PepperDash.Core;
|
||||
using PepperDash.Essentials.Core;
|
||||
|
||||
namespace EssentialsPluginTemplateEPI
|
||||
namespace EssentialsPluginTemplate
|
||||
{
|
||||
/// <summary>
|
||||
/// This class contains the necessary properties and methods required to function as an Essentials Plugin
|
||||
/// </summary>
|
||||
public class EssentialsPluginFactory:EssentialsPluginDeviceFactory<EssentialsPluginTemplateDevice>
|
||||
/// <summary>
|
||||
/// Plugin device factory
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Rename the class to match the device plugin being developed
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// "EssentialsPluginFactoryTemplate" renamed to "SamsungMdcFactory"
|
||||
/// </example>
|
||||
public class EssentialsPluginFactoryTemplate : EssentialsPluginDeviceFactory<EssentialsPluginDeviceTemplate>
|
||||
{
|
||||
public EssentialsPluginFactory()
|
||||
/// <summary>
|
||||
/// Plugin device factory constructor
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Update the MinimumEssentialsFrameworkVersion & TypeNames as needed when creating a plugin
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// // Set the minimum Essentials Framework Version
|
||||
/// MinimumEssentialsFrameworkVersion = "1.5.5";
|
||||
/// // In the constructor we initialize the list with the typenames that will build an instance of this device
|
||||
#pragma warning disable 1570
|
||||
/// TypeNames = new List<string>() { "SamsungMdc", "SamsungMdcDisplay" };
|
||||
#pragma warning restore 1570
|
||||
/// </code>
|
||||
/// </example>
|
||||
public EssentialsPluginFactoryTemplate()
|
||||
{
|
||||
// This string is used to define the minimum version of the
|
||||
// Essentials Framework required for this plugin
|
||||
MinimumEssentialsFrameworkVersion = "1.6.1";
|
||||
// Set the minimum Essentials Framework Version
|
||||
// TODO [ ] Update the Essentials minimum framework version which this plugin has been tested against
|
||||
MinimumEssentialsFrameworkVersion = "1.6.4";
|
||||
|
||||
//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"};
|
||||
// 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<EssentialsPluginConfigObjectTemplate>();
|
||||
if (propertiesConfig == null)
|
||||
{
|
||||
Debug.Console(0, "[{0}] Factory: failed to read properties config for {1}", dc.Key, dc.Name);
|
||||
return null;
|
||||
}
|
||||
|
||||
// TODO [ ] Discuss with Andrew/Neil on recommended best practice
|
||||
|
||||
// Method 1
|
||||
//var username = dc.Properties["control"].Value<TcpSshPropertiesConfig>("tcpSshProperties").Username;
|
||||
//var password = dc.Properties["control"].Value<TcpSshPropertiesConfig>("tcpSshProperties").Password;
|
||||
//var method = dc.Properties["control"].Value<string>("method");
|
||||
|
||||
// Method 2 - Returns a JValue, has to be casted to string
|
||||
var username = (string)dc.Properties["control"]["tcpSshProperties"]["username"];
|
||||
var password = (string)dc.Properties["control"]["tcpSshProperties"]["password"];
|
||||
var method = (string)dc.Properties["control"]["method"];
|
||||
|
||||
// build the plugin device comms & 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(0, "[{0}] Factory: failed to create comm for {1}", dc.Key, dc.Name);
|
||||
return null;
|
||||
}
|
||||
|
||||
return new EssentialsPluginDeviceTemplate(dc.Key, dc.Name, propertiesConfig, comms);
|
||||
}
|
||||
|
||||
#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
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
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))
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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="EssentialsPluginTemplateBridgeJoinMap.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" />
|
||||
|
||||
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.
24
README.md
24
README.md
@@ -7,3 +7,27 @@ 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 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 templage. There is extensive inline documentation and examples as well.
|
||||
|
||||
For renaming instructions in particular, see the XML `remarks` tags on class definitions
|
||||
|
||||
3
packages.config
Normal file
3
packages.config
Normal file
@@ -0,0 +1,3 @@
|
||||
<packages>
|
||||
<package id="PepperDashEssentials" version="1.6.4" targetFramework="net35" allowedVersions="[1.0,2.0)"/>
|
||||
</packages>
|
||||
Reference in New Issue
Block a user