mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 12:44:58 +00:00
Working Fusion Time Sync feature
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -76,6 +76,14 @@ namespace PepperDash.Essentials.Fusion
|
|||||||
//****************************************************************************************************
|
//****************************************************************************************************
|
||||||
// Helper Classes for XML API
|
// Helper Classes for XML API
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Data needed to request the local time from the Fusion server
|
||||||
|
/// </summary>
|
||||||
|
public class LocalTimeRequest
|
||||||
|
{
|
||||||
|
public string RequestID { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// All the data needed for a full schedule request in a room
|
/// All the data needed for a full schedule request in a room
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -384,6 +384,15 @@ namespace PepperDash.Essentials.Fusion
|
|||||||
Debug.Console(2, this, "Sending Fusion ActionRequest: \n{0}", actionRequest);
|
Debug.Console(2, this, "Sending Fusion ActionRequest: \n{0}", actionRequest);
|
||||||
|
|
||||||
FusionRoom.ExtenderFusionRoomDataReservedSigs.ActionQuery.StringValue = actionRequest;
|
FusionRoom.ExtenderFusionRoomDataReservedSigs.ActionQuery.StringValue = actionRequest;
|
||||||
|
|
||||||
|
|
||||||
|
// Request current Fusion Server Time
|
||||||
|
|
||||||
|
string timeRequestID = "TimeRequest";
|
||||||
|
|
||||||
|
string timeRequest = string.Format("<LocalTimeRequest><RequestID>{0}</RequestID></LocalTimeRequest>", timeRequestID);
|
||||||
|
|
||||||
|
FusionRoom.ExtenderFusionRoomDataReservedSigs.LocalDateTimeQuery.StringValue = timeRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -540,20 +549,6 @@ namespace PepperDash.Essentials.Fusion
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//ActionResponse actionResponse = new ActionResponse();
|
|
||||||
|
|
||||||
//TextReader reader = new StringReader(args.Sig.StringValue);
|
|
||||||
|
|
||||||
//actionResponse = CrestronXMLSerialization.DeSerializeObject<ActionResponse>(reader);
|
|
||||||
|
|
||||||
//if (actionResponse != null)
|
|
||||||
//{
|
|
||||||
// if (actionResponse.RequestID == "InitialPushRequest")
|
|
||||||
// {
|
|
||||||
// if (actionResponse.Parameters != null)
|
|
||||||
// {
|
|
||||||
// var tempParam = actionResponse.Parameters.FirstOrDefault(p => p.ID.Equals("Registered"));
|
|
||||||
|
|
||||||
XmlDocument message = new XmlDocument();
|
XmlDocument message = new XmlDocument();
|
||||||
|
|
||||||
message.LoadXml(args.Sig.StringValue);
|
message.LoadXml(args.Sig.StringValue);
|
||||||
@@ -620,6 +615,40 @@ namespace PepperDash.Essentials.Fusion
|
|||||||
Debug.Console(1, this, "Error parsing ActionQueryResponse: {0}", e);
|
Debug.Console(1, this, "Error parsing ActionQueryResponse: {0}", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (args.Sig == FusionRoom.ExtenderFusionRoomDataReservedSigs.LocalDateTimeQueryResponse)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
XmlDocument message = new XmlDocument();
|
||||||
|
|
||||||
|
message.LoadXml(args.Sig.StringValue);
|
||||||
|
|
||||||
|
var localDateTimeResponse = message["LocalTimeResponse"];
|
||||||
|
|
||||||
|
if (localDateTimeResponse != null)
|
||||||
|
{
|
||||||
|
var localDateTime = localDateTimeResponse["LocalDateTime"];
|
||||||
|
|
||||||
|
if (localDateTime != null)
|
||||||
|
{
|
||||||
|
var tempLocalDateTime = localDateTime.InnerText;
|
||||||
|
|
||||||
|
DateTime currentTime = DateTime.Parse(tempLocalDateTime);
|
||||||
|
|
||||||
|
Debug.Console(1, this, "DateTime from Fusion Server: {0}", currentTime);
|
||||||
|
|
||||||
|
// Parse time and date from response and insert values
|
||||||
|
CrestronEnvironment.SetTimeAndDate((ushort)currentTime.Hour, (ushort)currentTime.Minute, (ushort)currentTime.Second, (ushort)currentTime.Month, (ushort)currentTime.Day, (ushort)currentTime.Year);
|
||||||
|
|
||||||
|
Debug.Console(1, this, "Processor time set to {0}", CrestronEnvironment.GetLocalTime());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.Console(1, this, "Error parsing LocalDateTimeQueryResponse: {0}", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user