diff --git a/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateDevice.cs b/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateDevice.cs
index 837eb2c..20c99da 100644
--- a/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateDevice.cs
+++ b/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateDevice.cs
@@ -5,6 +5,8 @@
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash_Essentials_Core.Queues;
+
namespace EssentialsPluginTemplate
{
@@ -24,6 +26,11 @@ public class EssentialsPluginTemplateDevice : EssentialsBridgeableDevice
///
private EssentialsPluginConfigObjectTemplate _config;
+ ///
+ /// Provides a queue and dedicated worker thread for processing feedback messages from a device.
+ ///
+ private GenericQueue ReceiveQueue;
+
#region IBasicCommunication Properties and Constructor. Remove if not needed.
// TODO [ ] Add, modify, remove properties and fields as needed for the plugin being developed
@@ -100,6 +107,8 @@ public EssentialsPluginTemplateDevice(string key, string name, EssentialsPluginC
_config = config;
+ ReceiveQueue = new GenericQueue(key + "-rxqueue"); // If you need to set the thread priority, use one of the available overloaded constructors.
+
ConnectFeedback = new BoolFeedback(() => Connect);
OnlineFeedback = new BoolFeedback(() => _commsMonitor.IsOnline);
StatusFeedback = new IntFeedback(() => (int)_commsMonitor.Status);
@@ -149,7 +158,9 @@ private void socket_ConnectionChange(object sender, GenericSocketStatusChageEven
private void Handle_LineRecieved(object sender, GenericCommMethodReceiveTextArgs args)
{
// TODO [ ] Implement method
- throw new System.NotImplementedException();
+
+ // Enqueues the message to be processed in a dedicated thread, but the specified method
+ ReceiveQueue.Enqueue(new ProcessStringMessage(args.Text, ProcessFeedbackMessage));
}
// TODO [ ] If not using an HEX/byte based API with no delimeter, delete the method below
@@ -166,6 +177,15 @@ void Handle_TextReceived(object sender, GenericCommMethodReceiveTextArgs e)
throw new System.NotImplementedException();
}
+ ///
+ /// This method should perform any necessary parsing of feedback messages from the device
+ ///
+ ///
+ void ProcessFeedbackMessage(string message)
+ {
+
+ }
+
// TODO [ ] If not using an ACII based API, delete the properties below
///
diff --git a/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateFactory.cs b/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateFactory.cs
index 8cfa212..1798d19 100644
--- a/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateFactory.cs
+++ b/PDT.EssentialsPluginTemplate.EPI/EssentialsPluginTemplateFactory.cs
@@ -188,7 +188,7 @@ public EssentialsPluginFactoryCrestronDeviceTemplate()
{
// Set the minimum Essentials Framework Version
// TODO [ ] Update the Essentials minimum framework version which this plugin has been tested against
- MinimumEssentialsFrameworkVersion = "1.6.4";
+ MinimumEssentialsFrameworkVersion = "1.7.5";
// In the constructor we initialize the list with the typenames that will build an instance of this device
// TODO [ ] Update the TypeNames for the plugin being developed
diff --git a/packages.config b/packages.config
index fa05b32..c66e4a9 100644
--- a/packages.config
+++ b/packages.config
@@ -1,3 +1,3 @@
-
+
\ No newline at end of file