diff --git a/Essentials Core/PepperDashEssentialsBase/Display/DisplayBase.cs b/Essentials Core/PepperDashEssentialsBase/Display/DisplayBase.cs index e4d18584..38640219 100644 --- a/Essentials Core/PepperDashEssentialsBase/Display/DisplayBase.cs +++ b/Essentials Core/PepperDashEssentialsBase/Display/DisplayBase.cs @@ -53,8 +53,21 @@ namespace PepperDash.Essentials.Core IsWarmingUpFeedback = new BoolFeedback(CommonBoolCue.IsWarmingUp, IsWarmingUpFeedbackFunc); InputPorts = new RoutingPortCollection(); + + PowerIsOnFeedback.OutputChange += new EventHandler(PowerIsOnFeedback_OutputChange); } + void PowerIsOnFeedback_OutputChange(object sender, EventArgs e) + { + if (UsageTracker != null) + { + if (PowerIsOnFeedback.BoolValue) + UsageTracker.StartDeviceUsage(); + else + UsageTracker.EndDeviceUsage(); + } + } + public abstract void PowerOn(); public abstract void PowerOff(); public abstract void PowerToggle(); diff --git a/Essentials/PepperDashEssentials/Fusion/FusionSystemController.cs b/Essentials/PepperDashEssentials/Fusion/FusionSystemController.cs index ff69dff7..8325212a 100644 --- a/Essentials/PepperDashEssentials/Fusion/FusionSystemController.cs +++ b/Essentials/PepperDashEssentials/Fusion/FusionSystemController.cs @@ -888,19 +888,21 @@ namespace PepperDash.Essentials.Fusion string group = ConfigReader.GetGroupForDeviceKey(deviceTracker.Parent.Key); - string currentMeetingId = ""; + string currentMeetingId = "-"; if (CurrentMeeting != null) currentMeetingId = CurrentMeeting.MeetingID; //String Format: "USAGE||[Date YYYY-MM-DD]||[Time HH-mm-ss]||TIME||[Asset_Type]||[Asset_Name]||[Minutes_used]||[Asset_ID]||[Meeting_ID]" // [Asset_ID] property does not appear to be used in Crestron SSI examples. They are sending "-" instead so that's what is replicated here - string deviceUsage = string.Format("USAGE||{0}||{1}||TIME||{2}||{3}||{4}||{5}||{6})", e.UsageEndTime.ToString("yyyy-MM-dd"), e.UsageEndTime.ToString("HH-mm-ss"), + string deviceUsage = string.Format("USAGE||{0}||{1}||TIME||{2}||{3}||-||{4}||-||{5}||{6}||\r\n", e.UsageEndTime.ToString("yyyy-MM-dd"), e.UsageEndTime.ToString("HH:mm:ss"), group, deviceTracker.Parent.Name, e.MinutesUsed, "-", currentMeetingId); Debug.Console(1, this, "Device usage for: {0} ended at {1}. In use for {2} minutes", deviceTracker.Parent.Name, e.UsageEndTime, e.MinutesUsed); FusionRoom.DeviceUsage.InputSig.StringValue = deviceUsage; + + Debug.Console(1, this, "Device usage string: {0}", deviceUsage); } @@ -1094,7 +1096,6 @@ namespace PepperDash.Essentials.Fusion var defaultDisplaySourceNone = FusionRoom.CreateOffsetBoolSig((uint)joinOffset + 8, displayIndex + "Source None", eSigIoMask.InputOutputSig); defaultDisplaySourceNone.OutputSig.UserObject = new Action(b => { if (!b) Room.RunRouteAction("roomOff"); }); ; - display.PowerIsOnFeedback.LinkInputSig(defaultDisplaySourceNone.InputSig); var dict = ConfigReader.ConfigObject.GetSourceListForKey(Room.SourceListKey); diff --git a/Release Package/PepperDashEssentials.cpz b/Release Package/PepperDashEssentials.cpz index d816a84f..7929b78e 100644 Binary files a/Release Package/PepperDashEssentials.cpz and b/Release Package/PepperDashEssentials.cpz differ diff --git a/Release Package/PepperDashEssentials.dll b/Release Package/PepperDashEssentials.dll index ec46827a..8dddceba 100644 Binary files a/Release Package/PepperDashEssentials.dll and b/Release Package/PepperDashEssentials.dll differ