mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-14 20:24:57 +00:00
ECS-1245 Added C2nRths Controller and Bridge
This commit is contained in:
@@ -166,11 +166,16 @@ namespace PepperDash.Essentials.Bridges
|
|||||||
(device as PepperDash.Essentials.Devices.Common.Occupancy.GlsOccupancySensorBaseController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
|
(device as PepperDash.Essentials.Devices.Common.Occupancy.GlsOccupancySensorBaseController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (device is StatusSignController)
|
else if (device is StatusSignController)
|
||||||
{
|
{
|
||||||
(device as StatusSignController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
|
(device as StatusSignController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
else if (device is C2nRthsController)
|
||||||
|
{
|
||||||
|
(device as C2nRthsController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
29
PepperDashEssentials/Bridges/C2nRthsControllerBridge.cs
Normal file
29
PepperDashEssentials/Bridges/C2nRthsControllerBridge.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
using Crestron.SimplSharpPro.DeviceSupport;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using PepperDash.Core;
|
||||||
|
using PepperDash.Essentials.Core;
|
||||||
|
using PepperDash.Essentials.Core.CrestronIO;
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Bridges
|
||||||
|
{
|
||||||
|
public static class C2nRthsControllerApiExtensions
|
||||||
|
{
|
||||||
|
public static void LinkToApi(this C2nRthsController device, BasicTriList triList, uint joinStart,
|
||||||
|
string joinMapKey)
|
||||||
|
{
|
||||||
|
var joinMap = new C2nRthsControllerJoinMap(joinStart);
|
||||||
|
|
||||||
|
var joinMapSerialized = JoinMapHelper.GetJoinMapForDevice(joinMapKey);
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(joinMapSerialized))
|
||||||
|
joinMap = JsonConvert.DeserializeObject<C2nRthsControllerJoinMap>(joinMapSerialized);
|
||||||
|
|
||||||
|
joinMap.OffsetJoinNumbers(joinStart);
|
||||||
|
|
||||||
|
Debug.Console(1, device, "Linking to Trilist '{0}'", triList.ID.ToString("X"));
|
||||||
|
|
||||||
|
triList.SetBoolSigAction(joinMap.TemperatureFormat, device.SetTemperatureFormat);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using Crestron.SimplSharp.Reflection;
|
||||||
|
using PepperDash.Essentials.Core;
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Bridges
|
||||||
|
{
|
||||||
|
public class C2nRthsControllerJoinMap:JoinMapBase
|
||||||
|
{
|
||||||
|
public uint IsOnline { get; set; }
|
||||||
|
public uint Temperature { get; set; }
|
||||||
|
public uint Humidity { get; set; }
|
||||||
|
public uint TemperatureFormat { get; set; }
|
||||||
|
|
||||||
|
public C2nRthsControllerJoinMap(uint joinStart)
|
||||||
|
{
|
||||||
|
//digital
|
||||||
|
IsOnline = 1;
|
||||||
|
TemperatureFormat = 2;
|
||||||
|
|
||||||
|
//Analog
|
||||||
|
Temperature = 2;
|
||||||
|
Humidity = 3;
|
||||||
|
|
||||||
|
OffsetJoinNumbers(joinStart);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OffsetJoinNumbers(uint joinStart)
|
||||||
|
{
|
||||||
|
var joinOffset = joinStart - 1;
|
||||||
|
var properties =
|
||||||
|
GetType().GetCType().GetProperties().Where(p => p.PropertyType == typeof(uint)).ToList();
|
||||||
|
|
||||||
|
foreach (var propertyInfo in properties)
|
||||||
|
{
|
||||||
|
propertyInfo.SetValue(this, (uint)propertyInfo.GetValue(this, null) + joinOffset, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -119,9 +119,11 @@
|
|||||||
<Compile Include="Bridges\AppleTvBridge.cs" />
|
<Compile Include="Bridges\AppleTvBridge.cs" />
|
||||||
<Compile Include="Bridges\BridgeBase.cs" />
|
<Compile Include="Bridges\BridgeBase.cs" />
|
||||||
<Compile Include="Bridges\BridgeFactory.cs" />
|
<Compile Include="Bridges\BridgeFactory.cs" />
|
||||||
|
<Compile Include="Bridges\C2nRthsControllerBridge.cs" />
|
||||||
<Compile Include="Bridges\CameraControllerBridge.cs" />
|
<Compile Include="Bridges\CameraControllerBridge.cs" />
|
||||||
<Compile Include="Bridges\AirMediaControllerBridge.cs" />
|
<Compile Include="Bridges\AirMediaControllerBridge.cs" />
|
||||||
<Compile Include="Bridges\DmBladeChassisControllerBridge.cs" />
|
<Compile Include="Bridges\DmBladeChassisControllerBridge.cs" />
|
||||||
|
<Compile Include="Bridges\JoinMaps\C2nRthsControllerJoinMap.cs" />
|
||||||
<Compile Include="Bridges\JoinMaps\DmBladeChassisControllerJoinMap.cs" />
|
<Compile Include="Bridges\JoinMaps\DmBladeChassisControllerJoinMap.cs" />
|
||||||
<Compile Include="Bridges\DmpsAudioOutputControllerBridge.cs" />
|
<Compile Include="Bridges\DmpsAudioOutputControllerBridge.cs" />
|
||||||
<Compile Include="Bridges\DmpsRoutingControllerBridge.cs" />
|
<Compile Include="Bridges\DmpsRoutingControllerBridge.cs" />
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
using System;
|
||||||
|
using Crestron.SimplSharpPro;
|
||||||
|
using Crestron.SimplSharpPro.GeneralIO;
|
||||||
|
using PepperDash.Core;
|
||||||
|
using PepperDash.Essentials.Core;
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Core.CrestronIO
|
||||||
|
{
|
||||||
|
public class C2nRthsController:CrestronGenericBaseDevice
|
||||||
|
{
|
||||||
|
private C2nRths _device;
|
||||||
|
|
||||||
|
public IntFeedback TemperatureFeedback { get; private set; }
|
||||||
|
public IntFeedback HumidityFeedback { get; private set; }
|
||||||
|
|
||||||
|
public C2nRthsController(string key, string name, GenericBase hardware) : base(key, name, hardware)
|
||||||
|
{
|
||||||
|
_device = hardware as C2nRths;
|
||||||
|
|
||||||
|
TemperatureFeedback = new IntFeedback(() => _device.TemperatureFeedback.UShortValue);
|
||||||
|
HumidityFeedback = new IntFeedback(() => _device.HumidityFeedback.UShortValue);
|
||||||
|
|
||||||
|
_device.BaseEvent += DeviceOnBaseEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeviceOnBaseEvent(GenericBase device, BaseEventArgs args)
|
||||||
|
{
|
||||||
|
switch (args.EventId)
|
||||||
|
{
|
||||||
|
case C2nRths.TemperatureFeedbackEventId:
|
||||||
|
TemperatureFeedback.FireUpdate();
|
||||||
|
break;
|
||||||
|
case C2nRths.HumidityFeedbackEventId:
|
||||||
|
HumidityFeedback.FireUpdate();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetTemperatureFormat(bool setToC)
|
||||||
|
{
|
||||||
|
_device.TemperatureFormat.BoolValue = setToC;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -66,6 +66,13 @@ namespace PepperDash.Essentials.Core
|
|||||||
var cresnetId = control.CresnetIdInt;
|
var cresnetId = control.CresnetIdInt;
|
||||||
|
|
||||||
return new StatusSignController(key, name, new StatusSign(cresnetId, Global.ControlSystem));
|
return new StatusSignController(key, name, new StatusSign(cresnetId, Global.ControlSystem));
|
||||||
|
}
|
||||||
|
if (typeName == "c2nrths")
|
||||||
|
{
|
||||||
|
var control = CommFactory.GetControlPropertiesConfig(dc);
|
||||||
|
var cresnetId = control.CresnetIdInt;
|
||||||
|
|
||||||
|
return new C2nRthsController(key, name, new C2nRths(cresnetId, Global.ControlSystem));
|
||||||
}
|
}
|
||||||
|
|
||||||
// then check for types that have been added by plugin dlls.
|
// then check for types that have been added by plugin dlls.
|
||||||
|
|||||||
@@ -118,6 +118,7 @@
|
|||||||
<Compile Include="Config\Essentials\ConfigWriter.cs" />
|
<Compile Include="Config\Essentials\ConfigWriter.cs" />
|
||||||
<Compile Include="Config\Essentials\EssentialsConfig.cs" />
|
<Compile Include="Config\Essentials\EssentialsConfig.cs" />
|
||||||
<Compile Include="Config\SourceDevicePropertiesConfigBase.cs" />
|
<Compile Include="Config\SourceDevicePropertiesConfigBase.cs" />
|
||||||
|
<Compile Include="Crestron IO\C2nRts\C2nRthsController.cs" />
|
||||||
<Compile Include="Crestron IO\Inputs\CenIoDigIn104Controller.cs" />
|
<Compile Include="Crestron IO\Inputs\CenIoDigIn104Controller.cs" />
|
||||||
<Compile Include="Crestron IO\Inputs\GenericDigitalInputDevice.cs" />
|
<Compile Include="Crestron IO\Inputs\GenericDigitalInputDevice.cs" />
|
||||||
<Compile Include="Crestron IO\Inputs\GenericVersiportInputDevice.cs" />
|
<Compile Include="Crestron IO\Inputs\GenericVersiportInputDevice.cs" />
|
||||||
|
|||||||
Reference in New Issue
Block a user