mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 13:15:03 +00:00
Weil-related changes; app server, many websocket and http client related changes to imrpove connection resilience; Added newer pd.core 1.0.9
This commit is contained in:
@@ -23,6 +23,8 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
WebSocketClient WSClient;
|
WebSocketClient WSClient;
|
||||||
|
|
||||||
|
bool LinkUp;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Prevents post operations from stomping on each other and getting lost
|
/// Prevents post operations from stomping on each other and getting lost
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -86,6 +88,23 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
|
|
||||||
CrestronEnvironment.ProgramStatusEventHandler += new ProgramStatusEventHandler(CrestronEnvironment_ProgramStatusEventHandler);
|
CrestronEnvironment.ProgramStatusEventHandler += new ProgramStatusEventHandler(CrestronEnvironment_ProgramStatusEventHandler);
|
||||||
|
CrestronEnvironment.EthernetEventHandler += new EthernetEventHandler(CrestronEnvironment_EthernetEventHandler);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ethernetEventArgs"></param>
|
||||||
|
void CrestronEnvironment_EthernetEventHandler(EthernetEventArgs ethernetEventArgs)
|
||||||
|
{
|
||||||
|
Debug.Console(1, this, Debug.ErrorLogLevel.Warning, "Ethernet status change, port {0}: {1}",
|
||||||
|
ethernetEventArgs.EthernetAdapter, ethernetEventArgs.EthernetEventType);
|
||||||
|
|
||||||
|
if (ethernetEventArgs.EthernetEventType == eEthernetEventType.LinkDown)
|
||||||
|
{
|
||||||
|
LinkUp = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -280,8 +299,6 @@ namespace PepperDash.Essentials
|
|||||||
/// <param name="url">URL of the server, including the port number, if not 80. Format: "serverUrlOrIp:port"</param>
|
/// <param name="url">URL of the server, including the port number, if not 80. Format: "serverUrlOrIp:port"</param>
|
||||||
void RegisterSystemToServer()
|
void RegisterSystemToServer()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
var ready = RegisterLockEvent.Wait(20000);
|
var ready = RegisterLockEvent.Wait(20000);
|
||||||
if (!ready)
|
if (!ready)
|
||||||
{
|
{
|
||||||
@@ -318,14 +335,20 @@ namespace PepperDash.Essentials
|
|||||||
request.RequestType = RequestType.Post;
|
request.RequestType = RequestType.Post;
|
||||||
request.Header.SetHeaderValue("Content-Type", "application/json");
|
request.Header.SetHeaderValue("Content-Type", "application/json");
|
||||||
request.ContentString = postBody;
|
request.ContentString = postBody;
|
||||||
|
try
|
||||||
var err = regClient.DispatchAsync(request, RegistrationConnectionCallback);
|
{
|
||||||
|
regClient.DispatchAsync(request, RegistrationConnectionCallback);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.Console(1, this, "Cannot register with app server: {0}", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Debug.Console(0, this, "ERROR: Initilizing Room: {0}", e);
|
Debug.Console(0, this, "ERROR: Initilizing app server controller: {0}", e);
|
||||||
RegisterLockEvent.Set();
|
RegisterLockEvent.Set();
|
||||||
StartReconnectTimer();
|
StartReconnectTimer();
|
||||||
}
|
}
|
||||||
@@ -345,8 +368,8 @@ namespace PepperDash.Essentials
|
|||||||
string message = JsonConvert.SerializeObject(o, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
|
string message = JsonConvert.SerializeObject(o, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
|
||||||
Debug.Console(1, this, "Message TX: {0}", message);
|
Debug.Console(1, this, "Message TX: {0}", message);
|
||||||
var messageBytes = System.Text.Encoding.UTF8.GetBytes(message);
|
var messageBytes = System.Text.Encoding.UTF8.GetBytes(message);
|
||||||
WSClient.Send(messageBytes, (uint)messageBytes.Length, WebSocketClient.WEBSOCKET_PACKET_TYPES.LWS_WS_OPCODE_07__TEXT_FRAME);
|
//WSClient.Send(messageBytes, (uint)messageBytes.Length, WebSocketClient.WEBSOCKET_PACKET_TYPES.LWS_WS_OPCODE_07__TEXT_FRAME);
|
||||||
//WSClient.SendAsync(messageBytes, (uint)messageBytes.Length, WebSocketClient.WEBSOCKET_PACKET_TYPES.LWS_WS_OPCODE_07__TEXT_FRAME);
|
WSClient.SendAsync(messageBytes, (uint)messageBytes.Length, WebSocketClient.WEBSOCKET_PACKET_TYPES.LWS_WS_OPCODE_07__TEXT_FRAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -355,19 +378,17 @@ namespace PepperDash.Essentials
|
|||||||
/// Disconnects the SSE Client and stops the heartbeat timer
|
/// Disconnects the SSE Client and stops the heartbeat timer
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="command"></param>
|
/// <param name="command"></param>
|
||||||
void DisconnectStreamClient(string command)
|
void DisconnectWebsocketClient()
|
||||||
|
{
|
||||||
|
Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "Disconnecting websocket");
|
||||||
|
if (WSClient != null) // && WSClient.Connected)
|
||||||
{
|
{
|
||||||
//if(SseClient != null)
|
|
||||||
// SseClient.Disconnect();
|
|
||||||
|
|
||||||
if (WSClient != null && WSClient.Connected)
|
|
||||||
WSClient.Disconnect();
|
WSClient.Disconnect();
|
||||||
|
WSClient.SendCallBack = null;
|
||||||
if (ServerHeartbeatCheckTimer != null)
|
WSClient.ReceiveCallBack = null;
|
||||||
{
|
WSClient.ConnectionCallBack = null;
|
||||||
ServerHeartbeatCheckTimer.Stop();
|
WSClient.Dispose();
|
||||||
|
WSClient = null;
|
||||||
ServerHeartbeatCheckTimer = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -396,10 +417,19 @@ namespace PepperDash.Essentials
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (resp != null)
|
if (resp != null)
|
||||||
Debug.Console(1, this, "Response from server: {0}\n{1}", resp.Code, err);
|
{
|
||||||
|
if (resp.Code == 502)
|
||||||
|
{
|
||||||
|
Debug.Console(1, this, "Cannot reach App Server behind web server. Check that service/app is running on server");
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.Console(1, this, "Null response received from server.");
|
Debug.Console(1, this, "Error response from server: {0}\n{1}", resp.Code, err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.Console(1, this, "No response. Server is likely unreachable");
|
||||||
}
|
}
|
||||||
StartReconnectTimer();
|
StartReconnectTimer();
|
||||||
}
|
}
|
||||||
@@ -424,6 +454,7 @@ namespace PepperDash.Essentials
|
|||||||
ServerHeartbeatCheckTimer.Stop();
|
ServerHeartbeatCheckTimer.Stop();
|
||||||
ServerHeartbeatCheckTimer = null;
|
ServerHeartbeatCheckTimer = null;
|
||||||
}
|
}
|
||||||
|
DisconnectWebsocketClient();
|
||||||
StartReconnectTimer();
|
StartReconnectTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -461,25 +492,55 @@ namespace PepperDash.Essentials
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#warning notes here
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Need to understand why this is being sent from a server that should not have been closing,
|
||||||
|
* and also why essentials is not recovering
|
||||||
|
*
|
||||||
|
[17:36:09.044]App 10:[appServer] Joining server at http://bosd-node01.pepperdash.net/mobilecontrolapi/api/system/join/02cf80a1-ce35-482c-8fa6-286457ff2826
|
||||||
|
[17:36:13.086]App 10:[appServer] RegistrationConnectionCallback: COMPLETED
|
||||||
|
[17:36:13.088]App 10:[appServer] Response from server: 502COMPLETED
|
||||||
|
[17:36:18.113]App 10:[appServer] Joining server at http://bosd-node01.pepperdash.net/mobilecontrolapi/api/system/join/02cf80a1-ce35-482c-8fa6-286457ff2826
|
||||||
|
[17:36:22.159]App 10:[appServer] RegistrationConnectionCallback: COMPLETED
|
||||||
|
[17:36:22.160]App 10:[appServer] Response from server: 502COMPLETED
|
||||||
|
[17:36:27.005]App 10:[ciscoSparkCodec-1] Retrieving Booking Info from Codec. Current Time: 9/6/2018 5:36:27 PM
|
||||||
|
[17:36:27.187]App 10:[appServer] Joining server at http://bosd-node01.pepperdash.net/mobilecontrolapi/api/system/join/02cf80a1-ce35-482c-8fa6-286457ff2826
|
||||||
|
[17:36:31.233]App 10:[appServer] RegistrationConnectionCallback: COMPLETED
|
||||||
|
[17:36:31.234]App 10:[appServer] Response from server: 502COMPLETED
|
||||||
|
[17:36:36.338]App 10:[appServer] Joining server at http://bosd-node01.pepperdash.net/mobilecontrolapi/api/system/join/02cf80a1-ce35-482c-8fa6-286457ff2826
|
||||||
|
[17:36:42.151]App 10:[appServer] RegistrationConnectionCallback: COMPLETED
|
||||||
|
[17:36:42.153]App 10:[appServer] Initializing Stream client to server.
|
||||||
|
[17:36:42.887]App 10:[appServer] Websocket connected
|
||||||
|
[17:36:42.916]App 10:[appServer] Joining server at http://bosd-node01.pepperdash.net/mobilecontrolapi/api/system/join/02cf80a1-ce35-482c-8fa6-286457ff2826
|
||||||
|
[17:36:42.978]App 10:[appServer] RegistrationConnectionCallback: COMPLETED
|
||||||
|
[17:36:42.979]App 10:[appServer] Initializing Stream client to server.
|
||||||
|
[17:36:42.980]App 10:[appServer] Websocket connected
|
||||||
|
[17:36:42.990]App 10:[appServer] Message RX: '{"type":"close"}'
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Connects the SSE Client
|
/// Connects the Websocket Client
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="o"></param>
|
/// <param name="o"></param>
|
||||||
void ConnectStreamClient()
|
void ConnectStreamClient()
|
||||||
{
|
{
|
||||||
Debug.Console(0, this, "Initializing Stream client to server.");
|
Debug.Console(0, this, "Initializing Stream client to server.");
|
||||||
|
|
||||||
if (WSClient == null)
|
if (WSClient != null)
|
||||||
{
|
{
|
||||||
WSClient = new WebSocketClient();
|
DisconnectWebsocketClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WSClient = new WebSocketClient();
|
||||||
WSClient.URL = string.Format("wss://{0}/system/join/{1}", Config.ServerUrl, this.SystemUuid);
|
WSClient.URL = string.Format("wss://{0}/system/join/{1}", Config.ServerUrl, this.SystemUuid);
|
||||||
WSClient.ConnectionCallBack = ConnectCallback;
|
WSClient.ConnectionCallBack = ConnectCallback;
|
||||||
WSClient.DisconnectCallBack = DisconnectCallback;
|
WSClient.DisconnectCallBack = DisconnectCallback;
|
||||||
WSClient.Connect();
|
WSClient.Connect();
|
||||||
Debug.Console(0, this, "Websocket connected");
|
Debug.Console(1, this, "Websocket connected");
|
||||||
|
WSClient.SendCallBack = WebsocketSendCallback;
|
||||||
WSClient.ReceiveCallBack = WebsocketReceiveCallback;
|
WSClient.ReceiveCallBack = WebsocketReceiveCallback;
|
||||||
//WSClient.SendCallBack = WebsocketSendCallback;
|
|
||||||
WSClient.ReceiveAsync();
|
WSClient.ReceiveAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -488,7 +549,6 @@ namespace PepperDash.Essentials
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
void ReconnectStreamClient()
|
void ReconnectStreamClient()
|
||||||
{
|
{
|
||||||
WSClient = null;
|
|
||||||
new CTimer(o => ConnectStreamClient(), 2000);
|
new CTimer(o => ConnectStreamClient(), 2000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -499,6 +559,7 @@ namespace PepperDash.Essentials
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
int ConnectCallback(WebSocketClient.WEBSOCKET_RESULT_CODES code)
|
int ConnectCallback(WebSocketClient.WEBSOCKET_RESULT_CODES code)
|
||||||
{
|
{
|
||||||
|
Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "Websocket status change: {0}", code);
|
||||||
if (code != WebSocketClient.WEBSOCKET_RESULT_CODES.WEBSOCKET_CLIENT_SUCCESS)
|
if (code != WebSocketClient.WEBSOCKET_RESULT_CODES.WEBSOCKET_CLIENT_SUCCESS)
|
||||||
{
|
{
|
||||||
Debug.Console(1, this, "Web socket connection failed: {0}", code);
|
Debug.Console(1, this, "Web socket connection failed: {0}", code);
|
||||||
@@ -551,14 +612,28 @@ namespace PepperDash.Essentials
|
|||||||
void CheckHttpDebug(HttpClientResponse r, HTTP_CALLBACK_ERROR e)
|
void CheckHttpDebug(HttpClientResponse r, HTTP_CALLBACK_ERROR e)
|
||||||
{
|
{
|
||||||
if (HttpDebugEnabled)
|
if (HttpDebugEnabled)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
Debug.Console(0, this, "------ Begin HTTP Debug ---------------------------------------");
|
Debug.Console(0, this, "------ Begin HTTP Debug ---------------------------------------");
|
||||||
Debug.Console(0, this, "HTTP Response URL: {0}", r.ResponseUrl.ToString());
|
if (r != null)
|
||||||
Debug.Console(0, this, "HTTP Response 'error' {0}", e);
|
{
|
||||||
|
Debug.Console(0, this, "HTTP Response URL: {0}", r.ResponseUrl != null ? r.ResponseUrl.ToString() : "NONE");
|
||||||
Debug.Console(0, this, "HTTP Response code: {0}", r.Code);
|
Debug.Console(0, this, "HTTP Response code: {0}", r.Code);
|
||||||
Debug.Console(0, this, "HTTP Response content: \r{0}", r.ContentString);
|
Debug.Console(0, this, "HTTP Response content: \r{0}", r.ContentString);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.Console(0, this, "No HTTP response");
|
||||||
|
}
|
||||||
|
Debug.Console(0, this, "HTTP Response 'error' {0}", e);
|
||||||
Debug.Console(0, this, "------ End HTTP Debug -----------------------------------------");
|
Debug.Console(0, this, "------ End HTTP Debug -----------------------------------------");
|
||||||
}
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Debug.Console(0, this, "HttpDebugError: {0}", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -575,7 +650,7 @@ namespace PepperDash.Essentials
|
|||||||
if(rx.Length > 0)
|
if(rx.Length > 0)
|
||||||
ParseStreamRx(rx);
|
ParseStreamRx(rx);
|
||||||
WSClient.ReceiveAsync();
|
WSClient.ReceiveAsync();
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -585,9 +660,11 @@ namespace PepperDash.Essentials
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
int WebsocketSendCallback(Crestron.SimplSharp.CrestronWebSocketClient.WebSocketClient.WEBSOCKET_RESULT_CODES result)
|
int WebsocketSendCallback(Crestron.SimplSharp.CrestronWebSocketClient.WebSocketClient.WEBSOCKET_RESULT_CODES result)
|
||||||
{
|
{
|
||||||
Debug.Console(1, this, "SendCallback result: {0}", result);
|
if(result != WebSocketClient.WEBSOCKET_RESULT_CODES.WEBSOCKET_CLIENT_SUCCESS)
|
||||||
|
Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "SendCallback questionable result: {0}", result);
|
||||||
|
|
||||||
return 1;
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -617,8 +694,9 @@ namespace PepperDash.Essentials
|
|||||||
}
|
}
|
||||||
else if (type == "close")
|
else if (type == "close")
|
||||||
{
|
{
|
||||||
WSClient.Disconnect();
|
DisconnectWebsocketClient();
|
||||||
|
|
||||||
|
if(ServerHeartbeatCheckTimer != null)
|
||||||
ServerHeartbeatCheckTimer.Stop();
|
ServerHeartbeatCheckTimer.Stop();
|
||||||
// Start the reconnect timer
|
// Start the reconnect timer
|
||||||
StartReconnectTimer();
|
StartReconnectTimer();
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ using Newtonsoft.Json.Linq;
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials;
|
using PepperDash.Essentials;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
|
using PepperDash.Essentials.Core.Config;
|
||||||
using PepperDash.Essentials.Devices.Common;
|
using PepperDash.Essentials.Devices.Common;
|
||||||
using PepperDash.Essentials.Devices.Common.Occupancy;
|
using PepperDash.Essentials.Devices.Common.Occupancy;
|
||||||
|
|
||||||
@@ -334,6 +335,8 @@ namespace PepperDash.Essentials.Fusion
|
|||||||
FusionRoom.ErrorMessage.InputSig.StringValue =
|
FusionRoom.ErrorMessage.InputSig.StringValue =
|
||||||
"3: 7 Errors: This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;";
|
"3: 7 Errors: This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;";
|
||||||
|
|
||||||
|
SetUpEthernetValues();
|
||||||
|
|
||||||
GetProcessorEthernetValues();
|
GetProcessorEthernetValues();
|
||||||
|
|
||||||
GetSystemInfo();
|
GetSystemInfo();
|
||||||
@@ -363,7 +366,7 @@ namespace PepperDash.Essentials.Fusion
|
|||||||
systemReboot.OutputSig.SetSigFalseAction(() => CrestronConsole.SendControlSystemCommand("reboot", ref response));
|
systemReboot.OutputSig.SetSigFalseAction(() => CrestronConsole.SendControlSystemCommand("reboot", ref response));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void GetProcessorEthernetValues()
|
protected void SetUpEthernetValues()
|
||||||
{
|
{
|
||||||
Ip1 = FusionRoom.CreateOffsetStringSig(50, "Info - Processor - IP 1", eSigIoMask.InputSigOnly);
|
Ip1 = FusionRoom.CreateOffsetStringSig(50, "Info - Processor - IP 1", eSigIoMask.InputSigOnly);
|
||||||
Ip2 = FusionRoom.CreateOffsetStringSig(51, "Info - Processor - IP 2", eSigIoMask.InputSigOnly);
|
Ip2 = FusionRoom.CreateOffsetStringSig(51, "Info - Processor - IP 2", eSigIoMask.InputSigOnly);
|
||||||
@@ -376,8 +379,10 @@ namespace PepperDash.Essentials.Fusion
|
|||||||
Mac2 = FusionRoom.CreateOffsetStringSig(58, "Info - Processor - MAC 2", eSigIoMask.InputSigOnly);
|
Mac2 = FusionRoom.CreateOffsetStringSig(58, "Info - Processor - MAC 2", eSigIoMask.InputSigOnly);
|
||||||
NetMask1 = FusionRoom.CreateOffsetStringSig(59, "Info - Processor - Net Mask 1", eSigIoMask.InputSigOnly);
|
NetMask1 = FusionRoom.CreateOffsetStringSig(59, "Info - Processor - Net Mask 1", eSigIoMask.InputSigOnly);
|
||||||
NetMask2 = FusionRoom.CreateOffsetStringSig(60, "Info - Processor - Net Mask 2", eSigIoMask.InputSigOnly);
|
NetMask2 = FusionRoom.CreateOffsetStringSig(60, "Info - Processor - Net Mask 2", eSigIoMask.InputSigOnly);
|
||||||
|
}
|
||||||
|
|
||||||
// Interface =0
|
protected void GetProcessorEthernetValues()
|
||||||
|
{
|
||||||
Ip1.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, 0);
|
Ip1.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, 0);
|
||||||
Gateway.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_ROUTER, 0);
|
Gateway.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_ROUTER, 0);
|
||||||
Hostname.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_HOSTNAME, 0);
|
Hostname.InputSig.StringValue = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_HOSTNAME, 0);
|
||||||
|
|||||||
@@ -189,6 +189,8 @@ namespace PepperDash.Essentials.Fusion
|
|||||||
FusionRoom.ErrorMessage.InputSig.StringValue =
|
FusionRoom.ErrorMessage.InputSig.StringValue =
|
||||||
"3: 7 Errors: This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;";
|
"3: 7 Errors: This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;This is a really long error message;";
|
||||||
|
|
||||||
|
SetUpEthernetValues();
|
||||||
|
|
||||||
GetProcessorEthernetValues();
|
GetProcessorEthernetValues();
|
||||||
|
|
||||||
GetSystemInfo();
|
GetSystemInfo();
|
||||||
|
|||||||
Reference in New Issue
Block a user