diff --git a/.gitmodules b/.gitmodules index 07e762c..726935e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "EssentialsBuilds"] path = EssentialsBuilds - url = https://bitbucket.org/Pepperdash_Products/essentials-builds.git +url=https://github.com/PepperDash/Essentials-Builds.git \ No newline at end of file diff --git a/EssentialsBuilds b/EssentialsBuilds index 2a6c167..855dccd 160000 --- a/EssentialsBuilds +++ b/EssentialsBuilds @@ -1 +1 @@ -Subproject commit 2a6c167efbd9b3770821d11effd846fabae4f8be +Subproject commit 855dccd0d41aac272512f58d6bcd4764307bbb14 diff --git a/PDT.EssentialsPluginTemplate.EPI/EssentailsPluginTemplate.cs b/PDT.EssentialsPluginTemplate.EPI/EssentailsPluginTemplate.cs index 07f6aa6..b80b595 100644 --- a/PDT.EssentialsPluginTemplate.EPI/EssentailsPluginTemplate.cs +++ b/PDT.EssentialsPluginTemplate.EPI/EssentailsPluginTemplate.cs @@ -12,29 +12,35 @@ using PepperDash.Core; namespace EssentialsPluginTemplateEPI { - public class EssentialsPluginTemplate : Device - + public class EssentialsPluginTemplate { + /// + /// This string is used to define the minimum version of the + /// Essentials Framework required for this plugin + /// + public static string MinimumEssentialsFrameworkVersion = "1.4.23"; + + /// + /// 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 + /// public static void LoadPlugin() { PepperDash.Essentials.Core.DeviceFactory.AddFactoryForType("EssentialsPluginTemplate", EssentialsPluginTemplate.BuildDevice); } - public static EssentialsPluginTemplate BuildDevice(DeviceConfig dc) + /// + /// Builds an instance of the device type + /// + /// The device configuration + /// The device + public static EssentialsPluginTemplateDevice BuildDevice(DeviceConfig dc) { - var config = JsonConvert.DeserializeObject(dc.Properties.ToString()); - var newMe = new EssentialsPluginTemplate(dc.Key, dc.Name, config); - return newMe; + var config = JsonConvert.DeserializeObject(dc.Properties.ToString()); + var newDevice = new EssentialsPluginTemplateDevice(dc.Key, dc.Name, config); + return newDevice; } - - GenericSecureTcpIpClient_ForServer Client; - - public EssentialsPluginTemplate(string key, string name, EssentialsPluginTemplateConfigObject config) - : base(key, name) - { - - } } } diff --git a/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateConfigObject.cs b/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateConfigObject.cs index 715707c..22f9a10 100644 --- a/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateConfigObject.cs +++ b/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateConfigObject.cs @@ -4,9 +4,23 @@ using System.Linq; using System.Text; using Crestron.SimplSharp; +using PepperDash.Core; + +using Newtonsoft.Json; + namespace EssentialsPluginTemplateEPI { - public class EssentialsPluginTemplateConfigObject + /// + /// Example of a config class that represents the structure of the Properties object of a DeviceConfig + /// + public class EssentialsPluginTemplatePropertiesConfig { + /// + /// Control properties if needed to communicate with device + /// + [JsonProperty("control")] + ControlPropertiesConfig Control { get; set; } + + } } \ No newline at end of file diff --git a/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateDevice.cs b/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateDevice.cs new file mode 100644 index 0000000..434dde4 --- /dev/null +++ b/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateDevice.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; +using Crestron.SimplSharpPro.DeviceSupport; + +using PepperDash.Essentials; +using PepperDash.Essentials.Core; +using PepperDash.Essentials.Core.Config; +using PepperDash.Core; + +namespace EssentialsPluginTemplateEPI +{ + /// + /// Example of a plugin device + /// + public class EssentialsPluginTemplateDevice : Device, IBridge + { + /// + /// Device Constructor. Called by + /// + /// + /// + /// + public EssentialsPluginTemplateDevice(string key, string name, EssentialsPluginTemplatePropertiesConfig config) + : base(key, name) + { + + } + + public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey) + { + + + } + } +} \ No newline at end of file diff --git a/PDT.EssentialsPluginTemplate.EPI/PDT.EssentialsPluginTemplate.EPI.csproj b/PDT.EssentialsPluginTemplate.EPI/PDT.EssentialsPluginTemplate.EPI.csproj index 4413a7d..5a9ae47 100644 --- a/PDT.EssentialsPluginTemplate.EPI/PDT.EssentialsPluginTemplate.EPI.csproj +++ b/PDT.EssentialsPluginTemplate.EPI/PDT.EssentialsPluginTemplate.EPI.csproj @@ -95,6 +95,7 @@ + diff --git a/PDT.EssentialsPluginTemplate.EPI/PDT.EssentialsPluginTemplate.EPI.suo b/PDT.EssentialsPluginTemplate.EPI/PDT.EssentialsPluginTemplate.EPI.suo index 8754faa..3b9a273 100644 Binary files a/PDT.EssentialsPluginTemplate.EPI/PDT.EssentialsPluginTemplate.EPI.suo and b/PDT.EssentialsPluginTemplate.EPI/PDT.EssentialsPluginTemplate.EPI.suo differ diff --git a/PDT.EssentialsPluginTemplate.EPI/PDT.EssentialsPluginTemplate.projectinfo b/PDT.EssentialsPluginTemplate.EPI/PDT.EssentialsPluginTemplate.projectinfo new file mode 100644 index 0000000..a449593 Binary files /dev/null and b/PDT.EssentialsPluginTemplate.EPI/PDT.EssentialsPluginTemplate.projectinfo differ