From 8dc3cb967bca81eb2389278aaf59a391b726d462 Mon Sep 17 00:00:00 2001 From: Joshua Gutenplan Date: Thu, 13 Jun 2019 19:33:39 -0700 Subject: [PATCH] Added xml doc and some summaries to some of the warnings. There are still 321 warnings for xml doc, but I think its helpful to see what summaries are there in ref'd solutions. --- .../Comm/GenericSecureTcpIpServer.cs | 4 +- .../Comm/GenericTcpIpClient.cs | 1 - .../Comm/TcpClientConfigObject.cs | 26 +++++++++++++ .../Comm/TcpServerConfigObject.cs | 37 +++++++++++++++++++ .../Pepperdash Core/Comm/eControlMethods.cs | 3 ++ .../Pepperdash Core/CoreInterfaces.cs | 12 ++++++ Pepperdash Core/Pepperdash Core/Device.cs | 11 +++++- .../JsonToSimpl/EventArgs and Constants.cs | 3 ++ .../Network/DiscoveryThings.cs | 8 +++- .../Pepperdash Core/PepperDash_Core.csproj | 1 + 10 files changed, 101 insertions(+), 5 deletions(-) diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpServer.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpServer.cs index 13b3cef..cff8361 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpServer.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpServer.cs @@ -167,7 +167,9 @@ namespace PepperDash.Core { get { return (ushort)(IsListening ? 1 : 0); } } - + /// + /// Max number of clients this server will allow for connection. Crestron max is 64. This number should be less than 65 + /// public ushort MaxClients { get; set; } // should be set by parameter in SIMPL+ in the MAIN method, Should not ever need to be configurable /// /// Number of clients currently connected. diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs index 65c428f..a313b95 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs @@ -352,7 +352,6 @@ namespace PepperDash.Core } } - public class TcpSshPropertiesConfig { [JsonProperty(Required = Required.Always)] diff --git a/Pepperdash Core/Pepperdash Core/Comm/TcpClientConfigObject.cs b/Pepperdash Core/Pepperdash Core/Comm/TcpClientConfigObject.cs index c0c7f45..3e34aa6 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/TcpClientConfigObject.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/TcpClientConfigObject.cs @@ -8,14 +8,40 @@ using Newtonsoft.Json; namespace PepperDash_Core.Comm { + /// + /// Client config object for TCP client with server that inherits from TcpSshPropertiesConfig and adds properties for shared key and heartbeat + /// public class TcpClientConfigObject : TcpSshPropertiesConfig { + /// + /// Bool value for secure. Currently not implemented in TCP sockets as they are not dynamic + /// public bool Secure { get; set; } + /// + /// Require a shared key that both server and client negotiate. If negotiation fails server disconnects the client + /// public bool SharedKeyRequired { get; set; } + + /// + /// The shared key that must match on the server and client + /// public string SharedKey { get; set; } + /// + /// Require a heartbeat on the client/server connection that will cause the server/client to disconnect if the heartbeat is not received. + /// heartbeats do not raise received events. + /// public bool HeartbeatRequired { get; set; } + /// + /// The interval in seconds for the heartbeat from the client. If not received client is disconnected + /// public ushort HeartbeatRequiredIntervalInSeconds { get; set; } + /// + /// HeartbeatString that will be checked against the message received. defaults to heartbeat if no string is provided. + /// public string HeartbeatStringToMatch { get; set; } + /// + /// Receive Queue size must be greater than 20 or defaults to 20 + /// public int ReceiveQueueSize { get; set; } } } \ No newline at end of file diff --git a/Pepperdash Core/Pepperdash Core/Comm/TcpServerConfigObject.cs b/Pepperdash Core/Pepperdash Core/Comm/TcpServerConfigObject.cs index af455f4..785851b 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/TcpServerConfigObject.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/TcpServerConfigObject.cs @@ -6,18 +6,55 @@ using Crestron.SimplSharp; namespace PepperDash.Core { + /// + /// Tcp Server Config object with properties for a tcp server with shared key and heartbeat capabilities + /// public class TcpServerConfigObject { + /// + /// Uique key + /// public string Key { get; set; } + /// + /// Max Clients that the server will allow to connect. + /// public ushort MaxClients { get; set; } + /// + /// Bool value for secure. Currently not implemented in TCP sockets as they are not dynamic + /// public bool Secure { get; set; } + /// + /// Port for the server to listen on + /// public int Port { get; set; } + /// + /// Require a shared key that both server and client negotiate. If negotiation fails server disconnects the client + /// public bool SharedKeyRequired { get; set; } + /// + /// The shared key that must match on the server and client + /// public string SharedKey { get; set; } + /// + /// Require a heartbeat on the client/server connection that will cause the server/client to disconnect if the heartbeat is not received. + /// heartbeats do not raise received events. + /// public bool HeartbeatRequired { get; set; } + /// + /// The interval in seconds for the heartbeat from the client. If not received client is disconnected + /// public ushort HeartbeatRequiredIntervalInSeconds { get; set; } + /// + /// HeartbeatString that will be checked against the message received. defaults to heartbeat if no string is provided. + /// public string HeartbeatStringToMatch { get; set; } + /// + /// Client buffer size. See Crestron help. defaults to 2000 if not greater than 2000 + /// public int BufferSize { get; set; } + /// + /// Receive Queue size must be greater than 20 or defaults to 20 + /// public int ReceiveQueueSize { get; set; } } } \ No newline at end of file diff --git a/Pepperdash Core/Pepperdash Core/Comm/eControlMethods.cs b/Pepperdash Core/Pepperdash Core/Comm/eControlMethods.cs index d4a2028..5a7a6ea 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/eControlMethods.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/eControlMethods.cs @@ -6,6 +6,9 @@ using Crestron.SimplSharp; namespace PepperDash.Core { + /// + /// Crestron Control Methods for a comm object + /// public enum eControlMethod { None = 0, Com, IpId, IpidTcp, IR, Ssh, Tcpip, Telnet, Cresnet, Cec, Udp diff --git a/Pepperdash Core/Pepperdash Core/CoreInterfaces.cs b/Pepperdash Core/Pepperdash Core/CoreInterfaces.cs index 195d6e2..3a5df42 100644 --- a/Pepperdash Core/Pepperdash Core/CoreInterfaces.cs +++ b/Pepperdash Core/Pepperdash Core/CoreInterfaces.cs @@ -6,13 +6,25 @@ using Crestron.SimplSharp; namespace PepperDash.Core { + /// + /// Unique key interface to require a unique key for the class + /// public interface IKeyed { + /// + /// Unique Key + /// string Key { get; } } + /// + /// Named Keyed device interface. Forces the devie to have a Unique Key and a name. + /// public interface IKeyName : IKeyed { + /// + /// Isn't it obvious :) + /// string Name { get; } } } \ No newline at end of file diff --git a/Pepperdash Core/Pepperdash Core/Device.cs b/Pepperdash Core/Pepperdash Core/Device.cs index 7132f94..62dc6b1 100644 --- a/Pepperdash Core/Pepperdash Core/Device.cs +++ b/Pepperdash Core/Pepperdash Core/Device.cs @@ -10,8 +10,17 @@ namespace PepperDash.Core /// public class Device : IKeyName { + /// + /// Unique Key + /// public string Key { get; protected set; } - public string Name { get; protected set; } + /// + /// Name of the devie + /// + public string Name { get; protected set; } + /// + /// + /// public bool Enabled { get; protected set; } ///// diff --git a/Pepperdash Core/Pepperdash Core/JsonToSimpl/EventArgs and Constants.cs b/Pepperdash Core/Pepperdash Core/JsonToSimpl/EventArgs and Constants.cs index e6e13a5..d2e7e8e 100644 --- a/Pepperdash Core/Pepperdash Core/JsonToSimpl/EventArgs and Constants.cs +++ b/Pepperdash Core/Pepperdash Core/JsonToSimpl/EventArgs and Constants.cs @@ -6,6 +6,9 @@ using Crestron.SimplSharp; namespace PepperDash.Core.JsonToSimpl { + /// + /// Constants for Simpl modules + /// public class JsonToSimplConstants { public const ushort JsonIsValidBoolChange = 2; diff --git a/Pepperdash Core/Pepperdash Core/Network/DiscoveryThings.cs b/Pepperdash Core/Pepperdash Core/Network/DiscoveryThings.cs index 72f2285..973c03a 100644 --- a/Pepperdash Core/Pepperdash Core/Network/DiscoveryThings.cs +++ b/Pepperdash Core/Pepperdash Core/Network/DiscoveryThings.cs @@ -6,10 +6,14 @@ using Crestron.SimplSharp; namespace PepperDash.Core { - + /// + /// Not in use + /// public static class NetworkComm { - + /// + /// Not in use + /// static NetworkComm() { } diff --git a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj index c0a4f03..0aeb953 100644 --- a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj +++ b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj @@ -31,6 +31,7 @@ 512 true true + bin\PepperDash_Core.xml .allowedReferenceRelatedFileExtensions