diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericUdpServer.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericUdpServer.cs index 011c17c..d675646 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericUdpServer.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericUdpServer.cs @@ -15,7 +15,7 @@ using Newtonsoft.Json.Linq; namespace PepperDash.Core { - public class GenericUdpServer : Device, IBasicCommunication + public class GenericUdpServer : Device, IBasicCommunication, ISocketStatus { /// /// @@ -40,11 +40,16 @@ namespace PepperDash.Core /// /// /// - //public event GenericSocketStatusChangeEventDelegate SocketStatusChange; public event EventHandler ConnectionChange; + /// + /// + /// public event EventHandler UpdateConnectionStatus; + /// + /// + /// public SocketStatus ClientStatus { get @@ -53,6 +58,9 @@ namespace PepperDash.Core } } + /// + /// + /// public ushort UStatus { get { return (ushort)Server.ServerStatus; } @@ -120,6 +128,13 @@ namespace PepperDash.Core CrestronEnvironment.EthernetEventHandler += new EthernetEventHandler(CrestronEnvironment_EthernetEventHandler); } + /// + /// + /// + /// + /// + /// + /// public GenericUdpServer(string key, string address, int port, int buffefSize) : base(key) { @@ -134,6 +149,12 @@ namespace PepperDash.Core CrestronEnvironment.EthernetEventHandler += new EthernetEventHandler(CrestronEnvironment_EthernetEventHandler); } + /// + /// Call from S+ to initialize values + /// + /// + /// + /// public void Initialize(string key, string address, ushort port) { Key = key; @@ -141,6 +162,10 @@ namespace PepperDash.Core UPort = port; } + /// + /// + /// + /// void CrestronEnvironment_EthernetEventHandler(EthernetEventArgs ethernetEventArgs) { // Re-enable the server if the link comes back up and the status should be connected @@ -151,6 +176,10 @@ namespace PepperDash.Core } } + /// + /// + /// + /// void CrestronEnvironment_ProgramStatusEventHandler(eProgramStatusEventType programEventType) { if (programEventType == eProgramStatusEventType.Stopping) @@ -299,6 +328,10 @@ namespace PepperDash.Core } } + /// + /// + /// + /// public void SendBytes(byte[] bytes) { //if (Debug.Level == 2) @@ -309,13 +342,35 @@ namespace PepperDash.Core } + /// + /// + /// public class GenericUdpReceiveTextExtraArgs : EventArgs { + /// + /// + /// public string Text { get; private set; } + /// + /// + /// public string IpAddress { get; private set; } + /// + /// + /// public int Port { get; private set; } + /// + /// + /// public byte[] Bytes { get; private set; } + /// + /// + /// + /// + /// + /// + /// public GenericUdpReceiveTextExtraArgs(string text, string ipAddress, int port, byte[] bytes) { Text = text; @@ -330,11 +385,20 @@ namespace PepperDash.Core public GenericUdpReceiveTextExtraArgs() { } } + /// + /// + /// public class UdpServerPropertiesConfig { + /// + /// + /// [JsonProperty(Required = Required.Always)] public string Address { get; set; } + /// + /// + /// [JsonProperty(Required = Required.Always)] public int Port { get; set; } @@ -343,6 +407,9 @@ namespace PepperDash.Core /// public int BufferSize { get; set; } + /// + /// + /// public UdpServerPropertiesConfig() { BufferSize = 32768; diff --git a/Pepperdash Core/Pepperdash Core/Logging/Debug.cs b/Pepperdash Core/Pepperdash Core/Logging/Debug.cs index cf4d8df..14c6b37 100644 --- a/Pepperdash Core/Pepperdash Core/Logging/Debug.cs +++ b/Pepperdash Core/Pepperdash Core/Logging/Debug.cs @@ -91,8 +91,7 @@ namespace PepperDash.Core Level = context.Level; DoNotLoadOnNextBoot = context.DoNotLoadOnNextBoot; - if(DoNotLoadOnNextBoot) - CrestronConsole.PrintLine(string.Format("Program {0} will not load config after next boot. Use console command go:{0} to load the config manually", InitialParametersClass.ApplicationNumber)); + CrestronConsole.PrintLine(string.Format("Program {0} will not load config after next boot. Use console command go:{0} to load the config manually", InitialParametersClass.ApplicationNumber)); try { diff --git a/Readme.md b/Readme.md index 00f050a..bf8facf 100644 --- a/Readme.md +++ b/Readme.md @@ -8,12 +8,12 @@ PepperDash Core is an open source Crestron SIMPL# library that can be used in SI ## Constituent Elements -- JSON Configuration File reading writing +- JSON Configuration File reading/writing - PortalConfigReader - Generic config classes - Communications - TCP/IP client and server - - Secure TCP/IP clinet and server + - Secure TCP/IP client and server - UDP server - SSH client - HTTP SSE client @@ -22,7 +22,7 @@ PepperDash Core is an open source Crestron SIMPL# library that can be used in SI - Console debugging - Logging both to Crestron error log as well as a custom log file - System Info -- Reports system and Ethernet information to SIMPL via S+ +- Reports system and Ethernet information to SIMPL via SIMPL+ - Device Class, IKeyed and IKeyName Interfaces - Base level device class that most classes derive from - Password Manager