WebAPI: Added LookupSuccess to user and preset event args to trigger found/not-found pulses in Simpl

This commit is contained in:
Heath Volmer
2017-02-27 12:13:23 -07:00
parent f154afb885
commit 721275ee2c
14 changed files with 42 additions and 17 deletions

Binary file not shown.

View File

@@ -300,7 +300,6 @@ namespace PepperDash.Core
return ((char)Convert.ToByte(hex, 16)).ToString(); return ((char)Convert.ToByte(hex, 16)).ToString();
}); });
SendText(unescapedText); SendText(unescapedText);
} }
public void SendBytes(byte[] bytes) public void SendBytes(byte[] bytes)
@@ -313,7 +312,7 @@ namespace PepperDash.Core
void Client_SocketStatusChange(TCPClient client, SocketStatus clientSocketStatus) void Client_SocketStatusChange(TCPClient client, SocketStatus clientSocketStatus)
{ {
Debug.Console(2, this, "Socket status change {0} ({1})", clientSocketStatus, UClientStatus); Debug.Console(2, this, "Socket status change {0} ({1})", clientSocketStatus, ClientStatusText);
if (client.ClientStatus != SocketStatus.SOCKET_STATUS_CONNECTED && !DisconnectCalledByUser) if (client.ClientStatus != SocketStatus.SOCKET_STATUS_CONNECTED && !DisconnectCalledByUser)
WaitAndTryReconnect(); WaitAndTryReconnect();

View File

@@ -36,15 +36,26 @@ namespace PepperDash.Core.WebApi.Presets
/// </summary> /// </summary>
public class PresetReceivedEventArgs : EventArgs public class PresetReceivedEventArgs : EventArgs
{ {
public Preset Preset { get; private set; } /// <summary>
/// True when the preset is found
/// </summary>
public bool LookupSuccess { get; private set; }
/// <summary>
/// S+ helper for stupid S+
/// </summary>
public ushort ULookupSuccess { get { return (ushort)(LookupSuccess ? 1 : 0); } }
public Preset Preset { get; private set; }
/// <summary> /// <summary>
/// For Simpl+ /// For Simpl+
/// </summary> /// </summary>
public PresetReceivedEventArgs() { } public PresetReceivedEventArgs() { }
public PresetReceivedEventArgs(Preset preset) public PresetReceivedEventArgs(Preset preset, bool success)
{ {
LookupSuccess = success;
Preset = preset; Preset = preset;
} }
} }

View File

@@ -26,6 +26,16 @@ namespace PepperDash.Core.WebApi.Presets
/// </summary> /// </summary>
public class UserReceivedEventArgs : EventArgs public class UserReceivedEventArgs : EventArgs
{ {
/// <summary>
/// True when user is found
/// </summary>
public bool LookupSuccess { get; private set; }
/// <summary>
/// For stupid S+
/// </summary>
public ushort ULookupSuccess { get { return (ushort)(LookupSuccess ? 1 : 0); } }
public User User { get; private set; } public User User { get; private set; }
/// <summary> /// <summary>
@@ -33,8 +43,9 @@ namespace PepperDash.Core.WebApi.Presets
/// </summary> /// </summary>
public UserReceivedEventArgs() { } public UserReceivedEventArgs() { }
public UserReceivedEventArgs(User user) public UserReceivedEventArgs(User user, bool success)
{ {
LookupSuccess = success;
User = user; User = user;
} }
} }

View File

@@ -77,18 +77,18 @@ namespace PepperDash.Core.WebApi.Presets
client.HostVerification = false; client.HostVerification = false;
client.PeerVerification = false; client.PeerVerification = false;
var resp = client.Dispatch(req); var resp = client.Dispatch(req);
var handler = UserReceived;
if (resp.Code == 200) if (resp.Code == 200)
{ {
CrestronConsole.PrintLine("Received: {0}", resp.ContentString); //CrestronConsole.PrintLine("Received: {0}", resp.ContentString);
var user = JsonConvert.DeserializeObject<User>(resp.ContentString); var user = JsonConvert.DeserializeObject<User>(resp.ContentString);
#warning CHECK for user success here??
CurrentUser = user; CurrentUser = user;
var handler = UserReceived;
if (handler != null) if (handler != null)
UserReceived(this, new UserReceivedEventArgs(user)); UserReceived(this, new UserReceivedEventArgs(user, true));
} }
else else
CrestronConsole.PrintLine("No user received: {0}", resp.Code); if (handler != null)
UserReceived(this, new UserReceivedEventArgs(null, false));
} }
/// <summary> /// <summary>
@@ -111,6 +111,7 @@ namespace PepperDash.Core.WebApi.Presets
PresetNumber = presetNumber PresetNumber = presetNumber
}; };
var handler = PresetReceived;
try try
{ {
if (!UrlBase.StartsWith("https")) if (!UrlBase.StartsWith("https"))
@@ -130,27 +131,28 @@ namespace PepperDash.Core.WebApi.Presets
var resp = client.Dispatch(req); var resp = client.Dispatch(req);
if (resp.Code == 200) // got it if (resp.Code == 200) // got it
{ {
Debug.Console(1, this, "Received: {0}", resp.ContentString); //Debug.Console(1, this, "Received: {0}", resp.ContentString);
var preset = JsonConvert.DeserializeObject<Preset>(resp.ContentString); var preset = JsonConvert.DeserializeObject<Preset>(resp.ContentString);
CurrentPreset = preset; CurrentPreset = preset;
//if there's no preset data, load the template //if there's no preset data, load the template
if (preset.Data == null || preset.Data.Trim() == string.Empty || JObject.Parse(preset.Data).Count == 0) if (preset.Data == null || preset.Data.Trim() == string.Empty || JObject.Parse(preset.Data).Count == 0)
{ {
Debug.Console(1, this, "Loaded preset has no data. Loading default template."); //Debug.Console(1, this, "Loaded preset has no data. Loading default template.");
LoadDefaultPresetData(); LoadDefaultPresetData();
return; return;
} }
J2SMaster.LoadWithJson(preset.Data); J2SMaster.LoadWithJson(preset.Data);
var handler = PresetReceived;
if (handler != null) if (handler != null)
PresetReceived(this, new PresetReceivedEventArgs(preset)); PresetReceived(this, new PresetReceivedEventArgs(preset, true));
} }
else // no existing preset else // no existing preset
{ {
CurrentPreset = new Preset(); CurrentPreset = new Preset();
LoadDefaultPresetData(); LoadDefaultPresetData();
if (handler != null)
PresetReceived(this, new PresetReceivedEventArgs(null, false));
} }
} }
catch (HttpException e) catch (HttpException e)
@@ -158,6 +160,8 @@ namespace PepperDash.Core.WebApi.Presets
var resp = e.Response; var resp = e.Response;
Debug.Console(1, this, "No preset received (code {0}). Loading default template", resp.Code); Debug.Console(1, this, "No preset received (code {0}). Loading default template", resp.Code);
LoadDefaultPresetData(); LoadDefaultPresetData();
if (handler != null)
PresetReceived(this, new PresetReceivedEventArgs(null, false));
} }
} }

View File

@@ -10,8 +10,8 @@
<ArchiveName /> <ArchiveName />
</RequiredInfo> </RequiredInfo>
<OptionalInfo> <OptionalInfo>
<CompiledOn>2/21/2017 2:28:40 PM</CompiledOn> <CompiledOn>2/27/2017 12:04:27 PM</CompiledOn>
<CompilerRev>1.0.6261.26042</CompilerRev> <CompilerRev>1.0.6267.21733</CompilerRev>
</OptionalInfo> </OptionalInfo>
<Plugin> <Plugin>
<Version>Crestron.SIMPLSharp, Version=2.0.48.0, Culture=neutral, PublicKeyToken=812d080f93e2de10</Version> <Version>Crestron.SIMPLSharp, Version=2.0.48.0, Culture=neutral, PublicKeyToken=812d080f93e2de10</Version>

View File

@@ -1,4 +1,4 @@
MainAssembly=PepperDash_Core.dll:f8093aacbe4fa6cef78b7af4d978e897 MainAssembly=PepperDash_Core.dll:ea8b7cdd5d032cd2744d5213412c61f1
MainAssemblyMinFirmwareVersion=1.007.0017 MainAssemblyMinFirmwareVersion=1.007.0017
MainAssemblyResource=SimplSharpData.dat:315526abf906cded47fb0c7510266a7e MainAssemblyResource=SimplSharpData.dat:315526abf906cded47fb0c7510266a7e
ü ü