%PDF- %PDF-
| Direktori : /www/old2/_music/diplomka/ |
| Current File : /www/old2/_music/diplomka/datapoints_refactor.patch |
Index: ConfigApp.Logic/Bus2DatapointHelper.cs
===================================================================
--- ConfigApp.Logic/Bus2DatapointHelper.cs (revision 3381)
+++ ConfigApp.Logic/Bus2DatapointHelper.cs (working copy)
@@ -1,129 +0,0 @@
-using System.Linq;
-using Honeywell.MBEMEA.ConfigApp.Data;
-
-namespace Honeywell.MBEMEA.ConfigApp.Logic
-{
- public static class Bus2DatapointHelper
- {
- private const string Bus2DeviceType = "BUS2DEVICE";
- private const string Bus2IoType = "BUS2IO";
-
- /// <summary>
- /// Method for saving BUS2 devices datapoint information
- /// </summary>
- public static void SaveBus2Devices()
- {
- //SaveBus22RelaisModules();
- SaveBus2HwDevices();
- }
-
- /// <summary>
- /// Helper method for defining base datapoint number of device
- /// </summary>
- /// <param name="busNumber">Number of BUS2 controller</param>
- /// <param name="deviceAddress">Adderee of device on controller</param>
- /// <returns>Datapoint number for device</returns>
- private static int GetBaseDatapoint(int busNumber, int deviceAddress)
- {
- // Formula by Karsten Stock
- return 10000 + ((busNumber - 1)*(17*64)) + (17*deviceAddress);
- }
-
- /// <summary>
- /// Method for saving BUS2 2-Relay module
- /// </summary>
- private static void SaveBus22RelaisModules()
- {
- foreach (var device in InternalDataStore.DataSet.HWBus22RelaisInputModule)
- {
- var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
- var parent = InternalDataStore.DataSet.HWBus2BusController.FirstOrDefault(p => p.UID == device.HardwareDeviceRow.ParentDeviceUID);
- if (parent != null)
- {
- int baseDataPoint = GetBaseDatapoint(parent.BusNumber,
- device.HardwareDeviceRow.Address);
- row.ItemType = "Bus2Device";
- row.ItemUID = device.UID;
- row.Name = device.HardwareDeviceRow.Name;
- row.DatapointNumber = baseDataPoint;
- row.DatapointType = Bus2DeviceType;
- InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
-
- // Inputs && outputs
- InsertInputs(device.UID, baseDataPoint);
- InsertOutputs(device.UID, baseDataPoint);
- }
- }
- }
-
- /// <summary>
- /// Experimental method for saving all BUS2 hardware devices the same way
- /// </summary>
- private static void SaveBus2HwDevices()
- {
- var controllers = from p in InternalDataStore.DataSet.HWBus2BusController select p.UID;
- var devices = InternalDataStore.DataSet.HardwareDevice.Where(p => !p.IsParentDeviceUIDNull() && controllers.Contains(p.ParentDeviceUID));
- foreach (var device in devices)
- {
- var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
- var parent = InternalDataStore.DataSet.HWBus2BusController.FirstOrDefault(p => p.UID == device.ParentDeviceUID);
- if (parent != null)
- {
- int baseDataPoint = GetBaseDatapoint(parent.BusNumber,
- device.Address);
- row.ItemType = "Bus2Device";
- row.ItemUID = device.UID;
- row.Name = device.Name;
- row.DatapointNumber = baseDataPoint;
- row.DatapointType = Bus2DeviceType;
- InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
-
- // Inputs && outputs
- InsertInputs(device.UID, baseDataPoint);
- InsertOutputs(device.UID, baseDataPoint);
- }
- }
- }
-
- private static void InsertOutputs(uint deviceUid, int baseDataPoint)
- {
- var outputs =
- InternalDataStore.DataSet.LogicalDevice.Where(
- p => !p.IsClassTypeNull() && p.HardwareDeviceUID == deviceUid && p.ClassType == "ccBusOutput");
- foreach (var output in outputs)
- {
- var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
- row.ItemType = "Bus2IO";
- row.ItemUID = output.UID;
- row.Name = output.Name;
- row.DatapointNumber = baseDataPoint + 5 + output.Number;
- row.DatapointType = Bus2IoType;
-
- // Separate LEDs
- if (row.Name.ToUpper().IndexOf("LED", System.StringComparison.Ordinal) >= 0)
- {
- row.DatapointNumber += 5;
- }
-
- InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
- }
- }
-
- private static void InsertInputs(uint deviceUid, int baseDataPoint)
- {
- var inputs =
- InternalDataStore.DataSet.LogicalDevice.Where(
- p => !p.IsClassTypeNull() && p.HardwareDeviceUID == deviceUid && p.ClassType == "ccBusInput");
- foreach (var input in inputs)
- {
- var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
- row.ItemType = "Bus2IO";
- row.ItemUID = input.UID;
- row.Name = input.Name;
- row.DatapointNumber = baseDataPoint + input.Number;
- row.DatapointType = Bus2IoType;
- InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
- }
- }
- }
-}
Index: ConfigApp.Logic/ConfigApp.Logic.csproj
===================================================================
--- ConfigApp.Logic/ConfigApp.Logic.csproj (revision 3381)
+++ ConfigApp.Logic/ConfigApp.Logic.csproj (working copy)
@@ -93,9 +93,9 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
- <Compile Include="Bus2DatapointHelper.cs" />
+ <Compile Include="Datapoints\Bus2DatapointHelper.cs" />
<Compile Include="DataLoader.cs" />
- <Compile Include="DatapointNumberHelper.cs" />
+ <Compile Include="Datapoints\DatapointNumberHelper.cs" />
<Compile Include="DataTemplateManager.cs" />
<Compile Include="DataTemplateNames.cs" />
<Compile Include="DeviceCatalogue.cs" />
Index: ConfigApp.Logic/DataLoader.cs
===================================================================
--- ConfigApp.Logic/DataLoader.cs (revision 3381)
+++ ConfigApp.Logic/DataLoader.cs (working copy)
@@ -13,6 +13,7 @@
using Honeywell.MBEMEA.Common.Interfaces;
using Honeywell.MBEMEA.ConfigApp.Data;
using Honeywell.MBEMEA.ConfigApp.Logic;
+using Honeywell.MBEMEA.ConfigApp.Logic.Datapoints;
using Honeywell.MBEMEA.ServiceReferences;
using Honeywell.MBEMEA.Common.DataManagers;
using DevExpress.XtraEditors;
@@ -299,7 +300,7 @@
row.ItemType = "Partition";
row.DatapointNumber = partition.DatapointNumber;
row.Name = partition.Name;
- row.DatapointType = "NA";
+ row.DatapointType = "300070000";
InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
}
@@ -312,7 +313,7 @@
row.ItemType = "DetectorGroup";
row.DatapointNumber = detectorGroup.DatapointNumber;
row.Name = detectorGroup.PartitionMemberRow.Name;
- row.DatapointType = "NA";
+ row.DatapointType = "300070001";
InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
}
@@ -325,7 +326,7 @@
row.ItemType = "Macro";
row.DatapointNumber = macroRow.DatapointNumber;
row.Name = macroRow.Name;
- row.DatapointType = "NA";
+ row.DatapointType = "300070003";
InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
}
@@ -338,7 +339,7 @@
row.ItemType = "Door";
row.DatapointNumber = doorGuard.DoorDatapointNumber;
row.Name = doorGuard.HardwareDeviceRow.Name;
- row.DatapointType = "NA";
+ row.DatapointType = "300070002";
InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
}
var identkeys = InternalDataStore.DataSet.HWBus2Identkey3.Where(p => !p.IsDoorDatapointNumberNull());
@@ -349,7 +350,7 @@
row.ItemType = "Door";
row.DatapointNumber = identkey.DoorDatapointNumber;
row.Name = identkey.HardwareDeviceRow.Name;
- row.DatapointType = "NA";
+ row.DatapointType = "300070002";
InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
}
var doorControllerModules = InternalDataStore.DataSet.HWBus2DoorControllerModule.Where(p => !p.IsDoorDatapointNumberNull());
@@ -360,7 +361,7 @@
row.ItemType = "Door";
row.DatapointNumber = doorControllerModule.DoorDatapointNumber;
row.Name = doorControllerModule.HardwareDeviceRow.Name;
- row.DatapointType = "NA";
+ row.DatapointType = "300070002";
InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
}
var rfDevices =
Index: ConfigApp.Logic/DatapointNumberHelper.cs
===================================================================
--- ConfigApp.Logic/DatapointNumberHelper.cs (revision 3381)
+++ ConfigApp.Logic/DatapointNumberHelper.cs (working copy)
@@ -1,139 +0,0 @@
-using Honeywell.MBEMEA.ConfigApp.Data;
-using System.Linq;
-
-namespace Honeywell.MBEMEA.ConfigApp.Logic
-{
- public static class DatapointNumberHelper
- {
- public const int PartitionStart = 1000;
- public const int PartitionEnd = 1511;
- public const int DetectorGroupStart = 1512;
- public const int DetectorGroupEnd = 5607;
- public const int DoorStart = 5608;
- public const int DoorEnd = 6631;
- public const int MacroStart = 6632;
- public const int MacroEnd = 8631;
- public const int WirelessDeviceBaseStart = 8640;
- public const int WirelessDeviceBaseEnd = 9982; // 9999 - 17 because we need entire range for last device
-
- public static int GetPartitionNumber(int number = 0)
- {
- int retVal = PartitionStart;
- if (number != 0 && IsPartitionNumberAvailable(number))
- {
- return number;
- }
- while (!IsPartitionNumberAvailable(retVal) && retVal <= PartitionEnd)
- {
- retVal++;
- }
- return retVal;
- }
-
- public static int GetDetectorGroupNumber(int number = 0)
- {
- int retVal = DetectorGroupStart;
- if (number != 0 && IsDetectorGroupNumberAvailable(number))
- {
- return number;
- }
- while (!IsDetectorGroupNumberAvailable(retVal) && retVal <= DetectorGroupEnd)
- {
- retVal++;
- }
- return retVal;
- }
-
- public static int GetMacroNumber(int number = 0)
- {
- int retVal = MacroStart;
- if (number != 0 && IsMacroNumberAvailable(number))
- {
- return number;
- }
- while (!IsMacroNumberAvailable(retVal) && retVal <= MacroEnd)
- {
- retVal++;
- }
- return retVal;
- }
-
- public static int GetDoorNumber(int number = 0)
- {
- int retVal = DoorStart;
- if (number != 0 && IsDoorNumberAvailable(number))
- {
- return number;
- }
- while (!IsDoorNumberAvailable(retVal) && retVal <= DoorEnd)
- {
- retVal++;
- }
- return retVal;
- }
-
- public static int GetWirelessDeviceBaseNumber(int number = 0)
- {
- int retVal = WirelessDeviceBaseStart;
- if (number != 0 && IsWirelessDeviceBaseNumberAvailable(number))
- {
- return number;
- }
- while (!IsWirelessDeviceBaseNumberAvailable(retVal) && retVal <= WirelessDeviceBaseEnd)
- {
- retVal += 17;
- }
- return retVal;
- }
-
-
-
- private static bool IsWirelessDeviceBaseNumberAvailable(int number)
- {
- bool retVal =
- (InternalDataStore.DataSet.HWBus2Wireless4IOModule.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) +
- InternalDataStore.DataSet.HWBus2WirelessSmokeDetector.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) +
- InternalDataStore.DataSet.HWBus2WirelessViewguard.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number)
- ) == 0
- && number >= WirelessDeviceBaseStart && number <= WirelessDeviceBaseEnd && (number - WirelessDeviceBaseStart) % 17 == 0;
- return retVal;
- }
-
- private static bool IsPartitionNumberAvailable(int number)
- {
- bool retVal =
- InternalDataStore.DataSet.Partition.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) == 0
- && number >= PartitionStart && number <= PartitionEnd;
- return retVal;
- }
-
- private static bool IsDetectorGroupNumberAvailable(int number)
- {
- bool retVal =
- InternalDataStore.DataSet.DetectorGroup.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) == 0
- && number >= DetectorGroupStart && number <= DetectorGroupEnd;
- return retVal;
- }
-
- private static bool IsMacroNumberAvailable(int number)
- {
- bool retVal =
- InternalDataStore.DataSet.Macro.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) == 0
- && number >= MacroStart && number <= MacroEnd;
- return retVal;
- }
-
- private static bool IsDoorNumberAvailable(int number)
- {
- bool retVal =
- (
- InternalDataStore.DataSet.HWBus2DoorGuard.Count(p => !p.IsDoorDatapointNumberNull() && p.DoorDatapointNumber == number) +
- InternalDataStore.DataSet.HWBus2DoorControllerModule.Count(p => !p.IsDoorDatapointNumberNull() && p.DoorDatapointNumber == number) +
- InternalDataStore.DataSet.HWBus2Identkey3.Count(p => !p.IsDoorDatapointNumberNull() && p.DoorDatapointNumber == number)
- ) == 0
- && number >= DoorStart && number <= DoorEnd;
- return retVal;
- }
-
- }
-}
Index: ConfigApp.Logic/Datapoints/Bus2DatapointHelper.cs
===================================================================
--- ConfigApp.Logic/Datapoints/Bus2DatapointHelper.cs (revision 0)
+++ ConfigApp.Logic/Datapoints/Bus2DatapointHelper.cs (working copy)
@@ -0,0 +1,129 @@
+using System.Linq;
+using Honeywell.MBEMEA.ConfigApp.Data;
+
+namespace Honeywell.MBEMEA.ConfigApp.Logic.Datapoints
+{
+ public static class Bus2DatapointHelper
+ {
+ private const string Bus2DeviceType = "BUS2DEVICE";
+ private const string Bus2IoType = "BUS2IO";
+
+ /// <summary>
+ /// Method for saving BUS2 devices datapoint information
+ /// </summary>
+ public static void SaveBus2Devices()
+ {
+ //SaveBus22RelaisModules();
+ SaveBus2HwDevices();
+ }
+
+ /// <summary>
+ /// Helper method for defining base datapoint number of device
+ /// </summary>
+ /// <param name="busNumber">Number of BUS2 controller</param>
+ /// <param name="deviceAddress">Adderee of device on controller</param>
+ /// <returns>Datapoint number for device</returns>
+ private static int GetBaseDatapoint(int busNumber, int deviceAddress)
+ {
+ // Formula by Karsten Stock
+ return 10000 + ((busNumber - 1)*(17*64)) + (17*deviceAddress);
+ }
+
+ /// <summary>
+ /// Method for saving BUS2 2-Relay module
+ /// </summary>
+ private static void SaveBus22RelaisModules()
+ {
+ foreach (var device in InternalDataStore.DataSet.HWBus22RelaisInputModule)
+ {
+ var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
+ var parent = InternalDataStore.DataSet.HWBus2BusController.FirstOrDefault(p => p.UID == device.HardwareDeviceRow.ParentDeviceUID);
+ if (parent != null)
+ {
+ int baseDataPoint = GetBaseDatapoint(parent.BusNumber,
+ device.HardwareDeviceRow.Address);
+ row.ItemType = "Bus2Device";
+ row.ItemUID = device.UID;
+ row.Name = device.HardwareDeviceRow.Name;
+ row.DatapointNumber = baseDataPoint;
+ row.DatapointType = Bus2DeviceType;
+ InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
+
+ // Inputs && outputs
+ InsertInputs(device.UID, baseDataPoint);
+ InsertOutputs(device.UID, baseDataPoint);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Experimental method for saving all BUS2 hardware devices the same way
+ /// </summary>
+ private static void SaveBus2HwDevices()
+ {
+ var controllers = from p in InternalDataStore.DataSet.HWBus2BusController select p.UID;
+ var devices = InternalDataStore.DataSet.HardwareDevice.Where(p => !p.IsParentDeviceUIDNull() && controllers.Contains(p.ParentDeviceUID));
+ foreach (var device in devices)
+ {
+ var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
+ var parent = InternalDataStore.DataSet.HWBus2BusController.FirstOrDefault(p => p.UID == device.ParentDeviceUID);
+ if (parent != null)
+ {
+ int baseDataPoint = GetBaseDatapoint(parent.BusNumber,
+ device.Address);
+ row.ItemType = "Bus2Device";
+ row.ItemUID = device.UID;
+ row.Name = device.Name;
+ row.DatapointNumber = baseDataPoint;
+ row.DatapointType = Bus2DeviceType;
+ InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
+
+ // Inputs && outputs
+ InsertInputs(device.UID, baseDataPoint);
+ InsertOutputs(device.UID, baseDataPoint);
+ }
+ }
+ }
+
+ private static void InsertOutputs(uint deviceUid, int baseDataPoint)
+ {
+ var outputs =
+ InternalDataStore.DataSet.LogicalDevice.Where(
+ p => !p.IsClassTypeNull() && p.HardwareDeviceUID == deviceUid && p.ClassType == "ccBusOutput");
+ foreach (var output in outputs)
+ {
+ var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
+ row.ItemType = "Bus2IO";
+ row.ItemUID = output.UID;
+ row.Name = output.Name;
+ row.DatapointNumber = baseDataPoint + 5 + output.Number;
+ row.DatapointType = Bus2IoType;
+
+ // Separate LEDs
+ if (row.Name.ToUpper().IndexOf("LED", System.StringComparison.Ordinal) >= 0)
+ {
+ row.DatapointNumber += 5;
+ }
+
+ InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
+ }
+ }
+
+ private static void InsertInputs(uint deviceUid, int baseDataPoint)
+ {
+ var inputs =
+ InternalDataStore.DataSet.LogicalDevice.Where(
+ p => !p.IsClassTypeNull() && p.HardwareDeviceUID == deviceUid && p.ClassType == "ccBusInput");
+ foreach (var input in inputs)
+ {
+ var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
+ row.ItemType = "Bus2IO";
+ row.ItemUID = input.UID;
+ row.Name = input.Name;
+ row.DatapointNumber = baseDataPoint + input.Number;
+ row.DatapointType = Bus2IoType;
+ InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
+ }
+ }
+ }
+}
Index: ConfigApp.Logic/Datapoints/DatapointNumberHelper.cs
===================================================================
--- ConfigApp.Logic/Datapoints/DatapointNumberHelper.cs (revision 0)
+++ ConfigApp.Logic/Datapoints/DatapointNumberHelper.cs (working copy)
@@ -0,0 +1,139 @@
+using Honeywell.MBEMEA.ConfigApp.Data;
+using System.Linq;
+
+namespace Honeywell.MBEMEA.ConfigApp.Logic.Datapoints
+{
+ public static class DatapointNumberHelper
+ {
+ public const int PartitionStart = 1000;
+ public const int PartitionEnd = 1511;
+ public const int DetectorGroupStart = 1512;
+ public const int DetectorGroupEnd = 5607;
+ public const int DoorStart = 5608;
+ public const int DoorEnd = 6631;
+ public const int MacroStart = 6632;
+ public const int MacroEnd = 8631;
+ public const int WirelessDeviceBaseStart = 8640;
+ public const int WirelessDeviceBaseEnd = 9982; // 9999 - 17 because we need entire range for last device
+
+ public static int GetPartitionNumber(int number = 0)
+ {
+ int retVal = PartitionStart;
+ if (number != 0 && IsPartitionNumberAvailable(number))
+ {
+ return number;
+ }
+ while (!IsPartitionNumberAvailable(retVal) && retVal <= PartitionEnd)
+ {
+ retVal++;
+ }
+ return retVal;
+ }
+
+ public static int GetDetectorGroupNumber(int number = 0)
+ {
+ int retVal = DetectorGroupStart;
+ if (number != 0 && IsDetectorGroupNumberAvailable(number))
+ {
+ return number;
+ }
+ while (!IsDetectorGroupNumberAvailable(retVal) && retVal <= DetectorGroupEnd)
+ {
+ retVal++;
+ }
+ return retVal;
+ }
+
+ public static int GetMacroNumber(int number = 0)
+ {
+ int retVal = MacroStart;
+ if (number != 0 && IsMacroNumberAvailable(number))
+ {
+ return number;
+ }
+ while (!IsMacroNumberAvailable(retVal) && retVal <= MacroEnd)
+ {
+ retVal++;
+ }
+ return retVal;
+ }
+
+ public static int GetDoorNumber(int number = 0)
+ {
+ int retVal = DoorStart;
+ if (number != 0 && IsDoorNumberAvailable(number))
+ {
+ return number;
+ }
+ while (!IsDoorNumberAvailable(retVal) && retVal <= DoorEnd)
+ {
+ retVal++;
+ }
+ return retVal;
+ }
+
+ public static int GetWirelessDeviceBaseNumber(int number = 0)
+ {
+ int retVal = WirelessDeviceBaseStart;
+ if (number != 0 && IsWirelessDeviceBaseNumberAvailable(number))
+ {
+ return number;
+ }
+ while (!IsWirelessDeviceBaseNumberAvailable(retVal) && retVal <= WirelessDeviceBaseEnd)
+ {
+ retVal += 17;
+ }
+ return retVal;
+ }
+
+
+
+ private static bool IsWirelessDeviceBaseNumberAvailable(int number)
+ {
+ bool retVal =
+ (InternalDataStore.DataSet.HWBus2Wireless4IOModule.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) +
+ InternalDataStore.DataSet.HWBus2WirelessSmokeDetector.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) +
+ InternalDataStore.DataSet.HWBus2WirelessViewguard.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number)
+ ) == 0
+ && number >= WirelessDeviceBaseStart && number <= WirelessDeviceBaseEnd && (number - WirelessDeviceBaseStart) % 17 == 0;
+ return retVal;
+ }
+
+ private static bool IsPartitionNumberAvailable(int number)
+ {
+ bool retVal =
+ InternalDataStore.DataSet.Partition.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) == 0
+ && number >= PartitionStart && number <= PartitionEnd;
+ return retVal;
+ }
+
+ private static bool IsDetectorGroupNumberAvailable(int number)
+ {
+ bool retVal =
+ InternalDataStore.DataSet.DetectorGroup.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) == 0
+ && number >= DetectorGroupStart && number <= DetectorGroupEnd;
+ return retVal;
+ }
+
+ private static bool IsMacroNumberAvailable(int number)
+ {
+ bool retVal =
+ InternalDataStore.DataSet.Macro.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) == 0
+ && number >= MacroStart && number <= MacroEnd;
+ return retVal;
+ }
+
+ private static bool IsDoorNumberAvailable(int number)
+ {
+ bool retVal =
+ (
+ InternalDataStore.DataSet.HWBus2DoorGuard.Count(p => !p.IsDoorDatapointNumberNull() && p.DoorDatapointNumber == number) +
+ InternalDataStore.DataSet.HWBus2DoorControllerModule.Count(p => !p.IsDoorDatapointNumberNull() && p.DoorDatapointNumber == number) +
+ InternalDataStore.DataSet.HWBus2Identkey3.Count(p => !p.IsDoorDatapointNumberNull() && p.DoorDatapointNumber == number)
+ ) == 0
+ && number >= DoorStart && number <= DoorEnd;
+ return retVal;
+ }
+
+ }
+}
Index: ConfigApp.Logic/Datapoints/Bus2DatapointHelper.cs
===================================================================
--- ConfigApp.Logic/Datapoints/Bus2DatapointHelper.cs (revision 0)
+++ ConfigApp.Logic/Datapoints/Bus2DatapointHelper.cs (working copy)
@@ -0,0 +1,129 @@
+using System.Linq;
+using Honeywell.MBEMEA.ConfigApp.Data;
+
+namespace Honeywell.MBEMEA.ConfigApp.Logic.Datapoints
+{
+ public static class Bus2DatapointHelper
+ {
+ private const string Bus2DeviceType = "BUS2DEVICE";
+ private const string Bus2IoType = "BUS2IO";
+
+ /// <summary>
+ /// Method for saving BUS2 devices datapoint information
+ /// </summary>
+ public static void SaveBus2Devices()
+ {
+ //SaveBus22RelaisModules();
+ SaveBus2HwDevices();
+ }
+
+ /// <summary>
+ /// Helper method for defining base datapoint number of device
+ /// </summary>
+ /// <param name="busNumber">Number of BUS2 controller</param>
+ /// <param name="deviceAddress">Adderee of device on controller</param>
+ /// <returns>Datapoint number for device</returns>
+ private static int GetBaseDatapoint(int busNumber, int deviceAddress)
+ {
+ // Formula by Karsten Stock
+ return 10000 + ((busNumber - 1)*(17*64)) + (17*deviceAddress);
+ }
+
+ /// <summary>
+ /// Method for saving BUS2 2-Relay module
+ /// </summary>
+ private static void SaveBus22RelaisModules()
+ {
+ foreach (var device in InternalDataStore.DataSet.HWBus22RelaisInputModule)
+ {
+ var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
+ var parent = InternalDataStore.DataSet.HWBus2BusController.FirstOrDefault(p => p.UID == device.HardwareDeviceRow.ParentDeviceUID);
+ if (parent != null)
+ {
+ int baseDataPoint = GetBaseDatapoint(parent.BusNumber,
+ device.HardwareDeviceRow.Address);
+ row.ItemType = "Bus2Device";
+ row.ItemUID = device.UID;
+ row.Name = device.HardwareDeviceRow.Name;
+ row.DatapointNumber = baseDataPoint;
+ row.DatapointType = Bus2DeviceType;
+ InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
+
+ // Inputs && outputs
+ InsertInputs(device.UID, baseDataPoint);
+ InsertOutputs(device.UID, baseDataPoint);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Experimental method for saving all BUS2 hardware devices the same way
+ /// </summary>
+ private static void SaveBus2HwDevices()
+ {
+ var controllers = from p in InternalDataStore.DataSet.HWBus2BusController select p.UID;
+ var devices = InternalDataStore.DataSet.HardwareDevice.Where(p => !p.IsParentDeviceUIDNull() && controllers.Contains(p.ParentDeviceUID));
+ foreach (var device in devices)
+ {
+ var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
+ var parent = InternalDataStore.DataSet.HWBus2BusController.FirstOrDefault(p => p.UID == device.ParentDeviceUID);
+ if (parent != null)
+ {
+ int baseDataPoint = GetBaseDatapoint(parent.BusNumber,
+ device.Address);
+ row.ItemType = "Bus2Device";
+ row.ItemUID = device.UID;
+ row.Name = device.Name;
+ row.DatapointNumber = baseDataPoint;
+ row.DatapointType = Bus2DeviceType;
+ InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
+
+ // Inputs && outputs
+ InsertInputs(device.UID, baseDataPoint);
+ InsertOutputs(device.UID, baseDataPoint);
+ }
+ }
+ }
+
+ private static void InsertOutputs(uint deviceUid, int baseDataPoint)
+ {
+ var outputs =
+ InternalDataStore.DataSet.LogicalDevice.Where(
+ p => !p.IsClassTypeNull() && p.HardwareDeviceUID == deviceUid && p.ClassType == "ccBusOutput");
+ foreach (var output in outputs)
+ {
+ var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
+ row.ItemType = "Bus2IO";
+ row.ItemUID = output.UID;
+ row.Name = output.Name;
+ row.DatapointNumber = baseDataPoint + 5 + output.Number;
+ row.DatapointType = Bus2IoType;
+
+ // Separate LEDs
+ if (row.Name.ToUpper().IndexOf("LED", System.StringComparison.Ordinal) >= 0)
+ {
+ row.DatapointNumber += 5;
+ }
+
+ InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
+ }
+ }
+
+ private static void InsertInputs(uint deviceUid, int baseDataPoint)
+ {
+ var inputs =
+ InternalDataStore.DataSet.LogicalDevice.Where(
+ p => !p.IsClassTypeNull() && p.HardwareDeviceUID == deviceUid && p.ClassType == "ccBusInput");
+ foreach (var input in inputs)
+ {
+ var row = InternalDataStore.DataSet.DatapointNumbers.NewDatapointNumbersRow();
+ row.ItemType = "Bus2IO";
+ row.ItemUID = input.UID;
+ row.Name = input.Name;
+ row.DatapointNumber = baseDataPoint + input.Number;
+ row.DatapointType = Bus2IoType;
+ InternalDataStore.DataSet.DatapointNumbers.AddDatapointNumbersRow(row);
+ }
+ }
+ }
+}
Index: ConfigApp.Logic/Datapoints/DatapointNumberHelper.cs
===================================================================
--- ConfigApp.Logic/Datapoints/DatapointNumberHelper.cs (revision 0)
+++ ConfigApp.Logic/Datapoints/DatapointNumberHelper.cs (working copy)
@@ -0,0 +1,139 @@
+using Honeywell.MBEMEA.ConfigApp.Data;
+using System.Linq;
+
+namespace Honeywell.MBEMEA.ConfigApp.Logic.Datapoints
+{
+ public static class DatapointNumberHelper
+ {
+ public const int PartitionStart = 1000;
+ public const int PartitionEnd = 1511;
+ public const int DetectorGroupStart = 1512;
+ public const int DetectorGroupEnd = 5607;
+ public const int DoorStart = 5608;
+ public const int DoorEnd = 6631;
+ public const int MacroStart = 6632;
+ public const int MacroEnd = 8631;
+ public const int WirelessDeviceBaseStart = 8640;
+ public const int WirelessDeviceBaseEnd = 9982; // 9999 - 17 because we need entire range for last device
+
+ public static int GetPartitionNumber(int number = 0)
+ {
+ int retVal = PartitionStart;
+ if (number != 0 && IsPartitionNumberAvailable(number))
+ {
+ return number;
+ }
+ while (!IsPartitionNumberAvailable(retVal) && retVal <= PartitionEnd)
+ {
+ retVal++;
+ }
+ return retVal;
+ }
+
+ public static int GetDetectorGroupNumber(int number = 0)
+ {
+ int retVal = DetectorGroupStart;
+ if (number != 0 && IsDetectorGroupNumberAvailable(number))
+ {
+ return number;
+ }
+ while (!IsDetectorGroupNumberAvailable(retVal) && retVal <= DetectorGroupEnd)
+ {
+ retVal++;
+ }
+ return retVal;
+ }
+
+ public static int GetMacroNumber(int number = 0)
+ {
+ int retVal = MacroStart;
+ if (number != 0 && IsMacroNumberAvailable(number))
+ {
+ return number;
+ }
+ while (!IsMacroNumberAvailable(retVal) && retVal <= MacroEnd)
+ {
+ retVal++;
+ }
+ return retVal;
+ }
+
+ public static int GetDoorNumber(int number = 0)
+ {
+ int retVal = DoorStart;
+ if (number != 0 && IsDoorNumberAvailable(number))
+ {
+ return number;
+ }
+ while (!IsDoorNumberAvailable(retVal) && retVal <= DoorEnd)
+ {
+ retVal++;
+ }
+ return retVal;
+ }
+
+ public static int GetWirelessDeviceBaseNumber(int number = 0)
+ {
+ int retVal = WirelessDeviceBaseStart;
+ if (number != 0 && IsWirelessDeviceBaseNumberAvailable(number))
+ {
+ return number;
+ }
+ while (!IsWirelessDeviceBaseNumberAvailable(retVal) && retVal <= WirelessDeviceBaseEnd)
+ {
+ retVal += 17;
+ }
+ return retVal;
+ }
+
+
+
+ private static bool IsWirelessDeviceBaseNumberAvailable(int number)
+ {
+ bool retVal =
+ (InternalDataStore.DataSet.HWBus2Wireless4IOModule.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) +
+ InternalDataStore.DataSet.HWBus2WirelessSmokeDetector.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) +
+ InternalDataStore.DataSet.HWBus2WirelessViewguard.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number)
+ ) == 0
+ && number >= WirelessDeviceBaseStart && number <= WirelessDeviceBaseEnd && (number - WirelessDeviceBaseStart) % 17 == 0;
+ return retVal;
+ }
+
+ private static bool IsPartitionNumberAvailable(int number)
+ {
+ bool retVal =
+ InternalDataStore.DataSet.Partition.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) == 0
+ && number >= PartitionStart && number <= PartitionEnd;
+ return retVal;
+ }
+
+ private static bool IsDetectorGroupNumberAvailable(int number)
+ {
+ bool retVal =
+ InternalDataStore.DataSet.DetectorGroup.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) == 0
+ && number >= DetectorGroupStart && number <= DetectorGroupEnd;
+ return retVal;
+ }
+
+ private static bool IsMacroNumberAvailable(int number)
+ {
+ bool retVal =
+ InternalDataStore.DataSet.Macro.Count(p => !p.IsDatapointNumberNull() && p.DatapointNumber == number) == 0
+ && number >= MacroStart && number <= MacroEnd;
+ return retVal;
+ }
+
+ private static bool IsDoorNumberAvailable(int number)
+ {
+ bool retVal =
+ (
+ InternalDataStore.DataSet.HWBus2DoorGuard.Count(p => !p.IsDoorDatapointNumberNull() && p.DoorDatapointNumber == number) +
+ InternalDataStore.DataSet.HWBus2DoorControllerModule.Count(p => !p.IsDoorDatapointNumberNull() && p.DoorDatapointNumber == number) +
+ InternalDataStore.DataSet.HWBus2Identkey3.Count(p => !p.IsDoorDatapointNumberNull() && p.DoorDatapointNumber == number)
+ ) == 0
+ && number >= DoorStart && number <= DoorEnd;
+ return retVal;
+ }
+
+ }
+}
Index: ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2DoorControllerModuleDetail.cs
===================================================================
--- ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2DoorControllerModuleDetail.cs (revision 3381)
+++ ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2DoorControllerModuleDetail.cs (working copy)
@@ -3,6 +3,7 @@
using DevExpress.XtraEditors.Controls;
using Honeywell.MBEMEA.ConfigApp.Data;
using Honeywell.MBEMEA.ConfigApp.Logic;
+using Honeywell.MBEMEA.ConfigApp.Logic.Datapoints;
namespace Honeywell.MBEMEA.ConfigApp.Views.Hardware.HardwareTreeDetails.HardwareDevices
{
Index: ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2DoorGuardDetail.cs
===================================================================
--- ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2DoorGuardDetail.cs (revision 3381)
+++ ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2DoorGuardDetail.cs (working copy)
@@ -3,6 +3,7 @@
using DevExpress.XtraEditors.Controls;
using Honeywell.MBEMEA.ConfigApp.Data;
using Honeywell.MBEMEA.ConfigApp.Logic;
+using Honeywell.MBEMEA.ConfigApp.Logic.Datapoints;
using Honeywell.MBEMEA.ConfigApp.Properties;
namespace Honeywell.MBEMEA.ConfigApp.Views.Hardware.HardwareTreeDetails.HardwareDevices
Index: ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2IdentKey3Detail.cs
===================================================================
--- ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2IdentKey3Detail.cs (revision 3381)
+++ ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2IdentKey3Detail.cs (working copy)
@@ -3,6 +3,7 @@
using DevExpress.XtraEditors.Controls;
using Honeywell.MBEMEA.ConfigApp.Data;
using Honeywell.MBEMEA.ConfigApp.Logic;
+using Honeywell.MBEMEA.ConfigApp.Logic.Datapoints;
namespace Honeywell.MBEMEA.ConfigApp.Views.Hardware.HardwareTreeDetails.HardwareDevices
{
Index: ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2Wireless4IOModuleDetail.cs
===================================================================
--- ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2Wireless4IOModuleDetail.cs (revision 3381)
+++ ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2Wireless4IOModuleDetail.cs (working copy)
@@ -8,6 +8,7 @@
using DevExpress.XtraEditors;
using Honeywell.MBEMEA.ConfigApp.Data;
using Honeywell.MBEMEA.ConfigApp.Logic;
+using Honeywell.MBEMEA.ConfigApp.Logic.Datapoints;
using Honeywell.MBEMEA.ConfigApp.Templates;
using System.Diagnostics;
Index: ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2WirelessSmokeDetectorDetail.cs
===================================================================
--- ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2WirelessSmokeDetectorDetail.cs (revision 3381)
+++ ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2WirelessSmokeDetectorDetail.cs (working copy)
@@ -8,6 +8,7 @@
using DevExpress.XtraEditors;
using Honeywell.MBEMEA.ConfigApp.Data;
using Honeywell.MBEMEA.ConfigApp.Logic;
+using Honeywell.MBEMEA.ConfigApp.Logic.Datapoints;
using Honeywell.MBEMEA.ConfigApp.Templates;
using System.Diagnostics;
Index: ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2WirelessViewguardDetail.cs
===================================================================
--- ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2WirelessViewguardDetail.cs (revision 3381)
+++ ConfigApp/Views/Hardware/HardwareTreeDetails/HardwareDevices/Bus2WirelessViewguardDetail.cs (working copy)
@@ -6,6 +6,7 @@
using System.Diagnostics;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraEditors.Controls;
+using Honeywell.MBEMEA.ConfigApp.Logic.Datapoints;
namespace Honeywell.MBEMEA.ConfigApp.Views.Hardware.HardwareTreeDetails.HardwareDevices
{
Index: ConfigApp/Views/SystemData/Macros/MacroViewNew.cs
===================================================================
--- ConfigApp/Views/SystemData/Macros/MacroViewNew.cs (revision 3381)
+++ ConfigApp/Views/SystemData/Macros/MacroViewNew.cs (working copy)
@@ -3,6 +3,7 @@
using DevExpress.XtraLayout.Utils;
using Honeywell.MBEMEA.ConfigApp.Data;
using Honeywell.MBEMEA.ConfigApp.Logic;
+using Honeywell.MBEMEA.ConfigApp.Logic.Datapoints;
using Honeywell.MBEMEA.ConfigApp.Templates;
using System;
using System.Collections.Generic;
Index: ConfigApp/Views/SystemData/Partitions/PartitionTreeDetails/DetectorGroupDetail.cs
===================================================================
--- ConfigApp/Views/SystemData/Partitions/PartitionTreeDetails/DetectorGroupDetail.cs (revision 3381)
+++ ConfigApp/Views/SystemData/Partitions/PartitionTreeDetails/DetectorGroupDetail.cs (working copy)
@@ -3,6 +3,7 @@
using Honeywell.MBEMEA.ConfigApp.Data;
using Honeywell.MBEMEA.ConfigApp.Helper;
using Honeywell.MBEMEA.ConfigApp.Logic;
+using Honeywell.MBEMEA.ConfigApp.Logic.Datapoints;
using Honeywell.MBEMEA.ConfigApp.Templates;
using System;
using System.Data;
Index: ConfigApp/Views/SystemData/Partitions/PartitionTreeDetails/PartitionDetail.cs
===================================================================
--- ConfigApp/Views/SystemData/Partitions/PartitionTreeDetails/PartitionDetail.cs (revision 3381)
+++ ConfigApp/Views/SystemData/Partitions/PartitionTreeDetails/PartitionDetail.cs (working copy)
@@ -9,6 +9,7 @@
using Honeywell.MBEMEA.Common;
using Honeywell.MBEMEA.ConfigApp.Data;
using Honeywell.MBEMEA.ConfigApp.Logic;
+using Honeywell.MBEMEA.ConfigApp.Logic.Datapoints;
using Honeywell.MBEMEA.ConfigApp.Templates;
namespace Honeywell.MBEMEA.ConfigApp.Views.SystemData.Partitions.PartitionTreeDetails