From 5bf99909fcbdd34d8b3651fc3ebc64e8a1846e1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A6=82=E6=84=8F=20=E5=BD=AD?= <2417589739@qq.com> Date: Thu, 8 Sep 2022 20:42:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=AD=E5=BF=83=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BPASmart.DataServer/App.xaml | 43 +++++++++ BPASmart.DataServer/App.xaml.cs | 94 +++++++++++++++++++ BPASmart.DataServer/AssemblyInfo.cs | 10 ++ .../BPASmart.DataServer.csproj | 15 +++ .../Models => BPASmart.Model}/AlarmSet.cs | 4 +- .../AnalogAlarmModel.cs | 4 +- BPASmart.Model/BPASmart.Model.csproj | 15 +++ .../CommDeviceModel/Invoance.cs | 2 +- .../CommDeviceModel/KincoOneMachine.cs | 2 +- .../CommDeviceModel/ModbusRtu.cs | 4 +- .../CommDeviceModel/ModbusTcp.cs | 2 +- .../CommDeviceModel/Siemens.cs | 4 +- .../CommDeviceModel/kinco.cs | 2 +- .../CommunicationModel.cs | 6 +- .../CommunicationPar.cs | 4 +- .../DelegationNotifi.cs | 2 +- .../DeviceManagermentResult.cs | 2 +- .../DiscreteAlarmInfo.cs | 4 +- .../Enums/DisplayFormat.cs | 4 +- .../Enums/EAlarmType.cs | 2 +- .../Enums/EAlongTriggerType.cs | 2 +- .../Enums/EAnalogAlarmType.cs | 2 +- .../Enums/EDataType.cs | 2 +- .../Enums/EDeviceType.cs | 2 +- .../Enums/EOperatorType.cs | 2 +- .../Enums/EParity.cs | 2 +- .../Enums/ESiemensPlcType.cs | 2 +- .../Interfaces/ICommunicationDevice.cs | 2 +- BPASmart.Model/Interfaces/IServer.cs | 13 +++ .../Models => BPASmart.Model}/NoticeBase.cs | 2 +- .../Models => BPASmart.Model}/VariableInfo.cs | 6 +- BPASmart.Server/BPASmart.Server.csproj | 19 ++++ BPASmart.Server/CommunicationServer.cs | 35 +++++++ BPASmart.Server/Main.cs | 31 ++++++ BPASmart.VariableManager/App.xaml.cs | 15 ++- .../BPASmart.VariableManager.csproj | 17 ++-- .../Converter/AlarmTypeTextConvert.cs | 2 +- .../Converter/DeviceVisibleConverter.cs | 3 +- .../ViewModels/CommunicationSetViewModel.cs | 9 +- .../ViewModels/NewDeviceViewModel.cs | 3 +- .../ViewModels/VariableConfigViewModel.cs | 3 +- .../Views/CommunicationSetView.xaml | 36 ++++++- .../Views/CommunicationSetView.xaml.cs | 2 +- .../Views/NewDeviceView.xaml.cs | 2 +- .../Views/VariableConfig.xaml.cs | 2 +- BPASmartClient.Message/MessageLog.cs | 33 +------ SmartClient.sln | 75 ++++++++++++++- 47 files changed, 451 insertions(+), 98 deletions(-) create mode 100644 BPASmart.DataServer/App.xaml create mode 100644 BPASmart.DataServer/App.xaml.cs create mode 100644 BPASmart.DataServer/AssemblyInfo.cs create mode 100644 BPASmart.DataServer/BPASmart.DataServer.csproj rename {BPASmart.VariableManager/Models => BPASmart.Model}/AlarmSet.cs (93%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/AnalogAlarmModel.cs (94%) create mode 100644 BPASmart.Model/BPASmart.Model.csproj rename {BPASmart.VariableManager/Models => BPASmart.Model}/CommDeviceModel/Invoance.cs (84%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/CommDeviceModel/KincoOneMachine.cs (85%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/CommDeviceModel/ModbusRtu.cs (93%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/CommDeviceModel/ModbusTcp.cs (93%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/CommDeviceModel/Siemens.cs (90%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/CommDeviceModel/kinco.cs (84%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/CommunicationModel.cs (87%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/CommunicationPar.cs (80%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/DelegationNotifi.cs (96%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/DeviceManagermentResult.cs (86%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/DiscreteAlarmInfo.cs (91%) rename {BPASmart.VariableManager => BPASmart.Model}/Enums/DisplayFormat.cs (72%) rename {BPASmart.VariableManager => BPASmart.Model}/Enums/EAlarmType.cs (92%) rename {BPASmart.VariableManager => BPASmart.Model}/Enums/EAlongTriggerType.cs (91%) rename {BPASmart.VariableManager => BPASmart.Model}/Enums/EAnalogAlarmType.cs (89%) rename {BPASmart.VariableManager => BPASmart.Model}/Enums/EDataType.cs (89%) rename {BPASmart.VariableManager => BPASmart.Model}/Enums/EDeviceType.cs (85%) rename {BPASmart.VariableManager => BPASmart.Model}/Enums/EOperatorType.cs (94%) rename {BPASmart.VariableManager => BPASmart.Model}/Enums/EParity.cs (83%) rename {BPASmart.VariableManager => BPASmart.Model}/Enums/ESiemensPlcType.cs (85%) rename {BPASmart.VariableManager => BPASmart.Model}/Interfaces/ICommunicationDevice.cs (83%) create mode 100644 BPASmart.Model/Interfaces/IServer.cs rename {BPASmart.VariableManager/Models => BPASmart.Model}/NoticeBase.cs (89%) rename {BPASmart.VariableManager/Models => BPASmart.Model}/VariableInfo.cs (96%) create mode 100644 BPASmart.Server/BPASmart.Server.csproj create mode 100644 BPASmart.Server/CommunicationServer.cs create mode 100644 BPASmart.Server/Main.cs diff --git a/BPASmart.DataServer/App.xaml b/BPASmart.DataServer/App.xaml new file mode 100644 index 00000000..44fc811d --- /dev/null +++ b/BPASmart.DataServer/App.xaml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BPASmart.DataServer/App.xaml.cs b/BPASmart.DataServer/App.xaml.cs new file mode 100644 index 00000000..f8a32c1b --- /dev/null +++ b/BPASmart.DataServer/App.xaml.cs @@ -0,0 +1,94 @@ +using BPASmartClient.CustomResource.Pages.Enums; +using BPASmartClient.CustomResource.Pages.Model; +using BPASmartClient.CustomResource.Pages.View; +using BPASmartClient.Helper; +using BPASmartClient.Model; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using BPASmart.Server; +using BPASmartClient.CustomResource.Pages.ViewModel; + +namespace BPASmart.DataServer +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + public static Window MainWindow; + protected override void OnStartup(StartupEventArgs e) + { + base.OnStartup(e); + AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; + MenuInit(); + MainView mv = new MainView(); + mv.WindowState = WindowState.Normal; + MainWindow = mv; + mv.Show(); + BPASmart.Server.Main.GetInstance.Init(); + } + + private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) + { + //数据服务中心异常退出后自动重启 + } + + protected override void OnExit(ExitEventArgs e) + { + base.OnExit(e); + } + + private void MenuInit() + { + #region 消息中心 + ObservableCollection InfoLog = new ObservableCollection(); + + InfoLog.Add(new SubMenumodel() + { + SubMenuName = "消息日志", + AssemblyName = "BPASmartClient.CustomResource", + ToggleWindowPath = "Pages.View.DebugLogView", + SubMenuVisibility = Visibility.Visible, + }); + + MenuManage.GetInstance.menuModels.Add(new MenuModel() + { + MainMenuIcon = "", + MainMenuName = "消息中心", + Alias = "Device Management", + subMenumodels = InfoLog, + }); + #endregion + + + + } + + private SubMenumodel AddSubMenuModel(string s) + { + return new SubMenumodel() + { + SubMenuName = s, + AssemblyName = "BPASmart.VariableManager", + ToggleWindowPath = "Views.VariableConfig", + SubMenuVisibility = Visibility.Visible, + }; + } + + private void DataSave() + { + } + + + private void DataRead() + { + Json.Read(); + } + } +} diff --git a/BPASmart.DataServer/AssemblyInfo.cs b/BPASmart.DataServer/AssemblyInfo.cs new file mode 100644 index 00000000..8b5504ec --- /dev/null +++ b/BPASmart.DataServer/AssemblyInfo.cs @@ -0,0 +1,10 @@ +using System.Windows; + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/BPASmart.DataServer/BPASmart.DataServer.csproj b/BPASmart.DataServer/BPASmart.DataServer.csproj new file mode 100644 index 00000000..5e617223 --- /dev/null +++ b/BPASmart.DataServer/BPASmart.DataServer.csproj @@ -0,0 +1,15 @@ + + + + WinExe + net6.0-windows + enable + true + + + + + + + + diff --git a/BPASmart.VariableManager/Models/AlarmSet.cs b/BPASmart.Model/AlarmSet.cs similarity index 93% rename from BPASmart.VariableManager/Models/AlarmSet.cs rename to BPASmart.Model/AlarmSet.cs index 210e5dcf..6d175200 100644 --- a/BPASmart.VariableManager/Models/AlarmSet.cs +++ b/BPASmart.Model/AlarmSet.cs @@ -1,4 +1,4 @@ -using BPASmart.VariableManager.Enums; +using BPASmart.Model; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -8,7 +8,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { public class AlarmSet : NoticeBase { diff --git a/BPASmart.VariableManager/Models/AnalogAlarmModel.cs b/BPASmart.Model/AnalogAlarmModel.cs similarity index 94% rename from BPASmart.VariableManager/Models/AnalogAlarmModel.cs rename to BPASmart.Model/AnalogAlarmModel.cs index 87dba823..14aab6bd 100644 --- a/BPASmart.VariableManager/Models/AnalogAlarmModel.cs +++ b/BPASmart.Model/AnalogAlarmModel.cs @@ -1,4 +1,4 @@ -using BPASmart.VariableManager.Enums; +using BPASmart.Model; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -7,7 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { /// /// 模拟量报警模块 diff --git a/BPASmart.Model/BPASmart.Model.csproj b/BPASmart.Model/BPASmart.Model.csproj new file mode 100644 index 00000000..92946c2e --- /dev/null +++ b/BPASmart.Model/BPASmart.Model.csproj @@ -0,0 +1,15 @@ + + + + net6.0 + enable + enable + + + + + + + + + diff --git a/BPASmart.VariableManager/Models/CommDeviceModel/Invoance.cs b/BPASmart.Model/CommDeviceModel/Invoance.cs similarity index 84% rename from BPASmart.VariableManager/Models/CommDeviceModel/Invoance.cs rename to BPASmart.Model/CommDeviceModel/Invoance.cs index 2870607d..fe49c55b 100644 --- a/BPASmart.VariableManager/Models/CommDeviceModel/Invoance.cs +++ b/BPASmart.Model/CommDeviceModel/Invoance.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { /// /// 汇川PLC diff --git a/BPASmart.VariableManager/Models/CommDeviceModel/KincoOneMachine.cs b/BPASmart.Model/CommDeviceModel/KincoOneMachine.cs similarity index 85% rename from BPASmart.VariableManager/Models/CommDeviceModel/KincoOneMachine.cs rename to BPASmart.Model/CommDeviceModel/KincoOneMachine.cs index cfef2d29..13298913 100644 --- a/BPASmart.VariableManager/Models/CommDeviceModel/KincoOneMachine.cs +++ b/BPASmart.Model/CommDeviceModel/KincoOneMachine.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { /// /// 步科一体机 diff --git a/BPASmart.VariableManager/Models/CommDeviceModel/ModbusRtu.cs b/BPASmart.Model/CommDeviceModel/ModbusRtu.cs similarity index 93% rename from BPASmart.VariableManager/Models/CommDeviceModel/ModbusRtu.cs rename to BPASmart.Model/CommDeviceModel/ModbusRtu.cs index 3520c84e..32a1533c 100644 --- a/BPASmart.VariableManager/Models/CommDeviceModel/ModbusRtu.cs +++ b/BPASmart.Model/CommDeviceModel/ModbusRtu.cs @@ -1,4 +1,4 @@ -using BPASmart.VariableManager.Enums; +using BPASmart.Model; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -8,7 +8,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { public class ModbusRtu : ICommunicationDevice { diff --git a/BPASmart.VariableManager/Models/CommDeviceModel/ModbusTcp.cs b/BPASmart.Model/CommDeviceModel/ModbusTcp.cs similarity index 93% rename from BPASmart.VariableManager/Models/CommDeviceModel/ModbusTcp.cs rename to BPASmart.Model/CommDeviceModel/ModbusTcp.cs index ebf6241a..93f2fae3 100644 --- a/BPASmart.VariableManager/Models/CommDeviceModel/ModbusTcp.cs +++ b/BPASmart.Model/CommDeviceModel/ModbusTcp.cs @@ -5,7 +5,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { public class ModbusTcp : ICommunicationDevice { diff --git a/BPASmart.VariableManager/Models/CommDeviceModel/Siemens.cs b/BPASmart.Model/CommDeviceModel/Siemens.cs similarity index 90% rename from BPASmart.VariableManager/Models/CommDeviceModel/Siemens.cs rename to BPASmart.Model/CommDeviceModel/Siemens.cs index 4f67206a..171b3df7 100644 --- a/BPASmart.VariableManager/Models/CommDeviceModel/Siemens.cs +++ b/BPASmart.Model/CommDeviceModel/Siemens.cs @@ -1,4 +1,4 @@ -using BPASmart.VariableManager.Enums; +using BPASmart.Model; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -7,7 +7,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { public class Siemens : ICommunicationDevice { diff --git a/BPASmart.VariableManager/Models/CommDeviceModel/kinco.cs b/BPASmart.Model/CommDeviceModel/kinco.cs similarity index 84% rename from BPASmart.VariableManager/Models/CommDeviceModel/kinco.cs rename to BPASmart.Model/CommDeviceModel/kinco.cs index fdd99955..dcc9bcb7 100644 --- a/BPASmart.VariableManager/Models/CommDeviceModel/kinco.cs +++ b/BPASmart.Model/CommDeviceModel/kinco.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { /// /// 步科PLC diff --git a/BPASmart.VariableManager/Models/CommunicationModel.cs b/BPASmart.Model/CommunicationModel.cs similarity index 87% rename from BPASmart.VariableManager/Models/CommunicationModel.cs rename to BPASmart.Model/CommunicationModel.cs index 0b5df4a5..9b70221f 100644 --- a/BPASmart.VariableManager/Models/CommunicationModel.cs +++ b/BPASmart.Model/CommunicationModel.cs @@ -7,7 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { public class CommunicationModel : NoticeBase { @@ -33,6 +33,10 @@ namespace BPASmart.VariableManager.Models public string DeviceName { get { return _mDeviceName; } set { _mDeviceName = value; OnPropertyChanged(); } } private string _mDeviceName; + + public string ModelName { get { return _mModelName; } set { _mModelName = value; OnPropertyChanged(); } } + private string _mModelName; + /// /// 变量表数据 /// diff --git a/BPASmart.VariableManager/Models/CommunicationPar.cs b/BPASmart.Model/CommunicationPar.cs similarity index 80% rename from BPASmart.VariableManager/Models/CommunicationPar.cs rename to BPASmart.Model/CommunicationPar.cs index 0c4f051f..765c6822 100644 --- a/BPASmart.VariableManager/Models/CommunicationPar.cs +++ b/BPASmart.Model/CommunicationPar.cs @@ -5,9 +5,9 @@ using System.Text; using System.Threading.Tasks; using System.Collections.ObjectModel; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { - internal class CommunicationPar + public class CommunicationPar { public ObservableCollection CommunicationDevices { get; set; } = new ObservableCollection(); } diff --git a/BPASmart.VariableManager/Models/DelegationNotifi.cs b/BPASmart.Model/DelegationNotifi.cs similarity index 96% rename from BPASmart.VariableManager/Models/DelegationNotifi.cs rename to BPASmart.Model/DelegationNotifi.cs index 0a589349..398409a4 100644 --- a/BPASmart.VariableManager/Models/DelegationNotifi.cs +++ b/BPASmart.Model/DelegationNotifi.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { public class DelegationNotifi { diff --git a/BPASmart.VariableManager/Models/DeviceManagermentResult.cs b/BPASmart.Model/DeviceManagermentResult.cs similarity index 86% rename from BPASmart.VariableManager/Models/DeviceManagermentResult.cs rename to BPASmart.Model/DeviceManagermentResult.cs index 203f26a3..16632956 100644 --- a/BPASmart.VariableManager/Models/DeviceManagermentResult.cs +++ b/BPASmart.Model/DeviceManagermentResult.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { public class DeviceManagermentResult { diff --git a/BPASmart.VariableManager/Models/DiscreteAlarmInfo.cs b/BPASmart.Model/DiscreteAlarmInfo.cs similarity index 91% rename from BPASmart.VariableManager/Models/DiscreteAlarmInfo.cs rename to BPASmart.Model/DiscreteAlarmInfo.cs index e65cc592..b5e6bdd3 100644 --- a/BPASmart.VariableManager/Models/DiscreteAlarmInfo.cs +++ b/BPASmart.Model/DiscreteAlarmInfo.cs @@ -5,9 +5,9 @@ using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; -using BPASmart.VariableManager.Enums; +using BPASmart.Model; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { /// /// 离散量报警信息 diff --git a/BPASmart.VariableManager/Enums/DisplayFormat.cs b/BPASmart.Model/Enums/DisplayFormat.cs similarity index 72% rename from BPASmart.VariableManager/Enums/DisplayFormat.cs rename to BPASmart.Model/Enums/DisplayFormat.cs index 9e1a8e93..81e6034e 100644 --- a/BPASmart.VariableManager/Enums/DisplayFormat.cs +++ b/BPASmart.Model/Enums/DisplayFormat.cs @@ -4,9 +4,9 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Enums +namespace BPASmart.Model { - internal enum DisplayFormat + public enum DisplayFormat { 二进制, 十进制, diff --git a/BPASmart.VariableManager/Enums/EAlarmType.cs b/BPASmart.Model/Enums/EAlarmType.cs similarity index 92% rename from BPASmart.VariableManager/Enums/EAlarmType.cs rename to BPASmart.Model/Enums/EAlarmType.cs index 70db0498..e369b9d9 100644 --- a/BPASmart.VariableManager/Enums/EAlarmType.cs +++ b/BPASmart.Model/Enums/EAlarmType.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Enums +namespace BPASmart.Model { /// /// 报警类型 diff --git a/BPASmart.VariableManager/Enums/EAlongTriggerType.cs b/BPASmart.Model/Enums/EAlongTriggerType.cs similarity index 91% rename from BPASmart.VariableManager/Enums/EAlongTriggerType.cs rename to BPASmart.Model/Enums/EAlongTriggerType.cs index 1d8e4f90..456d2327 100644 --- a/BPASmart.VariableManager/Enums/EAlongTriggerType.cs +++ b/BPASmart.Model/Enums/EAlongTriggerType.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Enums +namespace BPASmart.Model { /// /// 沿触发类型枚举 diff --git a/BPASmart.VariableManager/Enums/EAnalogAlarmType.cs b/BPASmart.Model/Enums/EAnalogAlarmType.cs similarity index 89% rename from BPASmart.VariableManager/Enums/EAnalogAlarmType.cs rename to BPASmart.Model/Enums/EAnalogAlarmType.cs index ef5381ac..46ca2144 100644 --- a/BPASmart.VariableManager/Enums/EAnalogAlarmType.cs +++ b/BPASmart.Model/Enums/EAnalogAlarmType.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Enums +namespace BPASmart.Model { /// /// 模拟量报警类型 diff --git a/BPASmart.VariableManager/Enums/EDataType.cs b/BPASmart.Model/Enums/EDataType.cs similarity index 89% rename from BPASmart.VariableManager/Enums/EDataType.cs rename to BPASmart.Model/Enums/EDataType.cs index 840bc11e..463447a4 100644 --- a/BPASmart.VariableManager/Enums/EDataType.cs +++ b/BPASmart.Model/Enums/EDataType.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Enums +namespace BPASmart.Model { /// /// 数据类型枚举 diff --git a/BPASmart.VariableManager/Enums/EDeviceType.cs b/BPASmart.Model/Enums/EDeviceType.cs similarity index 85% rename from BPASmart.VariableManager/Enums/EDeviceType.cs rename to BPASmart.Model/Enums/EDeviceType.cs index 2dd11cde..651e3440 100644 --- a/BPASmart.VariableManager/Enums/EDeviceType.cs +++ b/BPASmart.Model/Enums/EDeviceType.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Enums +namespace BPASmart.Model { public enum EDeviceType { diff --git a/BPASmart.VariableManager/Enums/EOperatorType.cs b/BPASmart.Model/Enums/EOperatorType.cs similarity index 94% rename from BPASmart.VariableManager/Enums/EOperatorType.cs rename to BPASmart.Model/Enums/EOperatorType.cs index b2a762c1..996edb4b 100644 --- a/BPASmart.VariableManager/Enums/EOperatorType.cs +++ b/BPASmart.Model/Enums/EOperatorType.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Enums +namespace BPASmart.Model { /// /// 判断操作符枚举 diff --git a/BPASmart.VariableManager/Enums/EParity.cs b/BPASmart.Model/Enums/EParity.cs similarity index 83% rename from BPASmart.VariableManager/Enums/EParity.cs rename to BPASmart.Model/Enums/EParity.cs index 8920cb62..ffac319d 100644 --- a/BPASmart.VariableManager/Enums/EParity.cs +++ b/BPASmart.Model/Enums/EParity.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Enums +namespace BPASmart.Model { public enum EParity { diff --git a/BPASmart.VariableManager/Enums/ESiemensPlcType.cs b/BPASmart.Model/Enums/ESiemensPlcType.cs similarity index 85% rename from BPASmart.VariableManager/Enums/ESiemensPlcType.cs rename to BPASmart.Model/Enums/ESiemensPlcType.cs index 5bfc6b99..cb922307 100644 --- a/BPASmart.VariableManager/Enums/ESiemensPlcType.cs +++ b/BPASmart.Model/Enums/ESiemensPlcType.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager.Enums +namespace BPASmart.Model { public enum ESiemensPlcType { diff --git a/BPASmart.VariableManager/Interfaces/ICommunicationDevice.cs b/BPASmart.Model/Interfaces/ICommunicationDevice.cs similarity index 83% rename from BPASmart.VariableManager/Interfaces/ICommunicationDevice.cs rename to BPASmart.Model/Interfaces/ICommunicationDevice.cs index 78a9cb42..954a8885 100644 --- a/BPASmart.VariableManager/Interfaces/ICommunicationDevice.cs +++ b/BPASmart.Model/Interfaces/ICommunicationDevice.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace BPASmart.VariableManager +namespace BPASmart.Model { public interface ICommunicationDevice { diff --git a/BPASmart.Model/Interfaces/IServer.cs b/BPASmart.Model/Interfaces/IServer.cs new file mode 100644 index 00000000..30978ab6 --- /dev/null +++ b/BPASmart.Model/Interfaces/IServer.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BPASmart.Model +{ + public interface IServer + { + void Init(); + } +} diff --git a/BPASmart.VariableManager/Models/NoticeBase.cs b/BPASmart.Model/NoticeBase.cs similarity index 89% rename from BPASmart.VariableManager/Models/NoticeBase.cs rename to BPASmart.Model/NoticeBase.cs index 22b29370..9656d4bf 100644 --- a/BPASmart.VariableManager/Models/NoticeBase.cs +++ b/BPASmart.Model/NoticeBase.cs @@ -7,7 +7,7 @@ using Microsoft.Toolkit.Mvvm.ComponentModel; using Microsoft.Toolkit.Mvvm.Input; using System.Collections.ObjectModel; -namespace BPASmart.VariableManager +namespace BPASmart.Model { public class NoticeBase : ObservableObject { diff --git a/BPASmart.VariableManager/Models/VariableInfo.cs b/BPASmart.Model/VariableInfo.cs similarity index 96% rename from BPASmart.VariableManager/Models/VariableInfo.cs rename to BPASmart.Model/VariableInfo.cs index de428963..26c62e6c 100644 --- a/BPASmart.VariableManager/Models/VariableInfo.cs +++ b/BPASmart.Model/VariableInfo.cs @@ -5,16 +5,14 @@ using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; -using BPASmart.VariableManager.Models; -using BPASmart.VariableManager.Enums; +using BPASmart.Model; using Microsoft.Toolkit.Mvvm.ComponentModel; using Newtonsoft.Json; using System.Collections.ObjectModel; using System.Windows; using Microsoft.Toolkit.Mvvm.Input; -using BPASmartClient.Helper; -namespace BPASmart.VariableManager.Models +namespace BPASmart.Model { public class VariableInfo : AlarmSet { diff --git a/BPASmart.Server/BPASmart.Server.csproj b/BPASmart.Server/BPASmart.Server.csproj new file mode 100644 index 00000000..46e749d2 --- /dev/null +++ b/BPASmart.Server/BPASmart.Server.csproj @@ -0,0 +1,19 @@ + + + + net6.0 + enable + enable + + + + + + + + + + + + + diff --git a/BPASmart.Server/CommunicationServer.cs b/BPASmart.Server/CommunicationServer.cs new file mode 100644 index 00000000..2cd030d7 --- /dev/null +++ b/BPASmart.Server/CommunicationServer.cs @@ -0,0 +1,35 @@ +using BPASmart.Model; +using BPA.Helper; +using BPA.Communication; +using Microsoft.EntityFrameworkCore.Metadata.Conventions; + +namespace BPASmart.Server +{ + internal class CommunicationServer : IServer + { + public void Init() + { + BPASmartClient.Message.MessageLog.GetInstance.ShowDebugLog("通讯模块初始化"); + Json.Data.CommunicationDevices.ToList()?.ForEach(item => + { + switch (item.CommDevice) + { + case ModbusRtu _modbusRtu: + break; + case ModbusTcp _modbusTcp: + ModbusTcpMaster modbusTcpMaster = new ModbusTcpMaster(); + modbusTcpMaster.ConnectOk = new Action(() => + { + + }); + modbusTcpMaster.ModbusTcpConnect(DeviceType.kinco_PLC, _modbusTcp.IP, _modbusTcp.PortNum); + break; + case Siemens _siemens: + break; + default: + break; + } + }); + } + } +} \ No newline at end of file diff --git a/BPASmart.Server/Main.cs b/BPASmart.Server/Main.cs new file mode 100644 index 00000000..260f6ab0 --- /dev/null +++ b/BPASmart.Server/Main.cs @@ -0,0 +1,31 @@ +using BPA.Helper; +using BPASmart.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace BPASmart.Server +{ + public class Main + { + private volatile static Main _Instance; + public static Main GetInstance => _Instance ?? (_Instance = new Main()); + private Main() { } + + public void Init() + { + Json.Read(); + Assembly.GetExecutingAssembly().GetTypes()?.ToList()?.ForEach(item => + { + if (item.GetInterfaces().Contains(typeof(IServer))) + { + (Activator.CreateInstance(item) as IServer)?.Init(); + } + }); + } + + } +} diff --git a/BPASmart.VariableManager/App.xaml.cs b/BPASmart.VariableManager/App.xaml.cs index b6730b7e..5720ffc8 100644 --- a/BPASmart.VariableManager/App.xaml.cs +++ b/BPASmart.VariableManager/App.xaml.cs @@ -1,5 +1,4 @@ -using BPASmart.VariableManager.Models; -using BPASmartClient.CustomResource.Pages.Enums; +using BPASmartClient.CustomResource.Pages.Enums; using BPASmartClient.CustomResource.Pages.Model; using BPASmartClient.CustomResource.Pages.View; using BPASmartClient.Helper; @@ -11,6 +10,7 @@ using System.Data; using System.Linq; using System.Threading.Tasks; using System.Windows; +using BPASmart.Model; namespace BPASmart.VariableManager { @@ -72,6 +72,17 @@ namespace BPASmart.VariableManager RecipeManage.Add(AddSubMenuModel(o.ToString())); }), "AddCommunicationDevice"); + ActionManage.GetInstance.Register(new Action((o) => + { + if (o != null && o is CommunicationModel menumodel) + { + var res = RecipeManage.FirstOrDefault(p => p.SubMenuName == menumodel.DeviceName); + if (res != null) RecipeManage.Remove(res); + } + + }), "RemoveCommunicationDevice"); + + Json.Data.CommunicationDevices?.ToList()?.ForEach(item => { RecipeManage.Add(AddSubMenuModel(item.DeviceName)); diff --git a/BPASmart.VariableManager/BPASmart.VariableManager.csproj b/BPASmart.VariableManager/BPASmart.VariableManager.csproj index 12fe325b..159b08a7 100644 --- a/BPASmart.VariableManager/BPASmart.VariableManager.csproj +++ b/BPASmart.VariableManager/BPASmart.VariableManager.csproj @@ -7,6 +7,13 @@ true + + + + + + + @@ -22,15 +29,7 @@ - - - - - - - - - + diff --git a/BPASmart.VariableManager/Converter/AlarmTypeTextConvert.cs b/BPASmart.VariableManager/Converter/AlarmTypeTextConvert.cs index 703fb6bb..347205e2 100644 --- a/BPASmart.VariableManager/Converter/AlarmTypeTextConvert.cs +++ b/BPASmart.VariableManager/Converter/AlarmTypeTextConvert.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data; -using BPASmart.VariableManager.Enums; +using BPASmart.Model; namespace BPASmart.VariableManager.Converter { /// diff --git a/BPASmart.VariableManager/Converter/DeviceVisibleConverter.cs b/BPASmart.VariableManager/Converter/DeviceVisibleConverter.cs index 557bd01e..04e7d8c8 100644 --- a/BPASmart.VariableManager/Converter/DeviceVisibleConverter.cs +++ b/BPASmart.VariableManager/Converter/DeviceVisibleConverter.cs @@ -6,7 +6,8 @@ using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Data; -using BPASmart.VariableManager.Models; +using BPASmart.Model; + namespace BPASmart.VariableManager.Converter { diff --git a/BPASmart.VariableManager/ViewModels/CommunicationSetViewModel.cs b/BPASmart.VariableManager/ViewModels/CommunicationSetViewModel.cs index 1f5a9179..c2e40530 100644 --- a/BPASmart.VariableManager/ViewModels/CommunicationSetViewModel.cs +++ b/BPASmart.VariableManager/ViewModels/CommunicationSetViewModel.cs @@ -9,8 +9,7 @@ using Microsoft.Toolkit.Mvvm.Input; using BPASmart.VariableManager.Views; using System.Windows; using BPASmartClient.Helper; -using BPASmart.VariableManager.Models; -using BPASmart.VariableManager.Enums; +using BPASmart.Model; //using BPASmartClient.Model; using System.IO.Ports; using System.IO; @@ -59,11 +58,12 @@ namespace BPASmart.VariableManager.ViewModels if (obj == null) { CommunicationModel communicationObj = new CommunicationModel(); - - Type type = Assembly.Load("BPASmart.VariableManager").GetType($"BPASmart.VariableManager.Models.{ResultTag.DeviceType}"); + Type type = Assembly.Load("BPASmart.Model").GetType($"BPASmart.Model.{ResultTag.DeviceType}"); + //Type type = Assembly.Load("BPASmart.VariableManager").GetType($"BPASmart.VariableManager.Models.{ResultTag.DeviceType}"); var res = Activator.CreateInstance(type) as ICommunicationDevice; communicationObj.DeviceName = ResultTag.DeviceName; communicationObj.CommDevice = res; + communicationObj.ModelName = type.Name; Json.Data.CommunicationDevices.Add(communicationObj); ActionManage.GetInstance.Send("AddCommunicationDevice", ResultTag.DeviceName); } @@ -78,6 +78,7 @@ namespace BPASmart.VariableManager.ViewModels if (result != null) { Json.Data.CommunicationDevices.Remove(result); + ActionManage.GetInstance.Send("RemoveCommunicationDevice", result); } } diff --git a/BPASmart.VariableManager/ViewModels/NewDeviceViewModel.cs b/BPASmart.VariableManager/ViewModels/NewDeviceViewModel.cs index 1b2e77f1..03a7ed4e 100644 --- a/BPASmart.VariableManager/ViewModels/NewDeviceViewModel.cs +++ b/BPASmart.VariableManager/ViewModels/NewDeviceViewModel.cs @@ -9,8 +9,7 @@ using System.Collections.ObjectModel; using Microsoft.Toolkit.Mvvm.Input; using Microsoft.Toolkit.Mvvm.Messaging; using System.Diagnostics; -using BPASmart.VariableManager.Models; -using BPASmart.VariableManager.Enums; +using BPASmart.Model; using System.Reflection; namespace BPASmart.VariableManager.ViewModels diff --git a/BPASmart.VariableManager/ViewModels/VariableConfigViewModel.cs b/BPASmart.VariableManager/ViewModels/VariableConfigViewModel.cs index 972029df..c3af4469 100644 --- a/BPASmart.VariableManager/ViewModels/VariableConfigViewModel.cs +++ b/BPASmart.VariableManager/ViewModels/VariableConfigViewModel.cs @@ -4,10 +4,9 @@ using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; -using BPASmart.VariableManager.Enums; using Microsoft.Toolkit.Mvvm.ComponentModel; using Microsoft.Toolkit.Mvvm.Input; -using BPASmart.VariableManager.Models; +using BPASmart.Model; using System.Diagnostics; using Microsoft.EntityFrameworkCore; using BPASmartClient.Helper; diff --git a/BPASmart.VariableManager/Views/CommunicationSetView.xaml b/BPASmart.VariableManager/Views/CommunicationSetView.xaml index 8bd340d9..c759e1ea 100644 --- a/BPASmart.VariableManager/Views/CommunicationSetView.xaml +++ b/BPASmart.VariableManager/Views/CommunicationSetView.xaml @@ -95,6 +95,9 @@ Name="cy" Height="180" Margin="0,0,0,30"> + @@ -110,14 +113,37 @@ - + Orientation="Horizontal"> + + + + + + + + + diff --git a/BPASmart.VariableManager/Views/CommunicationSetView.xaml.cs b/BPASmart.VariableManager/Views/CommunicationSetView.xaml.cs index 7e58bb4f..e0f03cfb 100644 --- a/BPASmart.VariableManager/Views/CommunicationSetView.xaml.cs +++ b/BPASmart.VariableManager/Views/CommunicationSetView.xaml.cs @@ -1,4 +1,4 @@ -using BPASmart.VariableManager.Models; +using BPASmart.Model; using BPASmartClient.Helper; using System; using System.Collections.Generic; diff --git a/BPASmart.VariableManager/Views/NewDeviceView.xaml.cs b/BPASmart.VariableManager/Views/NewDeviceView.xaml.cs index 821f6288..63353dc2 100644 --- a/BPASmart.VariableManager/Views/NewDeviceView.xaml.cs +++ b/BPASmart.VariableManager/Views/NewDeviceView.xaml.cs @@ -14,7 +14,7 @@ using System.Windows.Media.Imaging; using System.Windows.Shapes; using Microsoft.Toolkit.Mvvm.Messaging; using Microsoft.Toolkit.Mvvm.ComponentModel; -using BPASmart.VariableManager.Models; +using BPASmart.Model; namespace BPASmart.VariableManager.Views { diff --git a/BPASmart.VariableManager/Views/VariableConfig.xaml.cs b/BPASmart.VariableManager/Views/VariableConfig.xaml.cs index 8888a4d7..6c9b2b45 100644 --- a/BPASmart.VariableManager/Views/VariableConfig.xaml.cs +++ b/BPASmart.VariableManager/Views/VariableConfig.xaml.cs @@ -1,4 +1,4 @@ -using BPASmart.VariableManager.Models; +using BPASmart.Model; using BPASmart.VariableManager.ViewModels; using BPASmartClient.Helper; using System; diff --git a/BPASmartClient.Message/MessageLog.cs b/BPASmartClient.Message/MessageLog.cs index 3467aee0..56bcd068 100644 --- a/BPASmartClient.Message/MessageLog.cs +++ b/BPASmartClient.Message/MessageLog.cs @@ -138,38 +138,7 @@ namespace BPASmartClient.Message #endregion - #region 查找设备ID - /// - /// 查询设备ID - /// - /// - public object ReturnDeviceID() - { - object DeviceId = null; - //StackTrace trace = new StackTrace(); - //for (int i = 1; i < 10; i++) - //{ - // Type type = trace.GetFrame(i).GetMethod().ReflectedType; - // try - // { - // object obj = Activator.CreateInstance(type); - // if (obj is IPeripheral) - // { - // IPeripheral peripheral = obj as IPeripheral; - // DeviceId = type?.GetProperty("DeviceId")?.GetValue(peripheral, null); - // } - // if (DeviceId != null) break; - // } - // catch (Exception ex) - // { - - // } - - //} - - return DeviceId; - } - #endregion + diff --git a/SmartClient.sln b/SmartClient.sln index 6f11601e..6e0f3434 100644 --- a/SmartClient.sln +++ b/SmartClient.sln @@ -154,7 +154,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "4.界面加载实例", "4. EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SCADA.Test", "SCADA.Test\SCADA.Test.csproj", "{1696D557-C908-4136-A5F2-FF59D69E642C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BPASmart.VariableManager", "BPASmart.VariableManager\BPASmart.VariableManager.csproj", "{2C17B9A9-B27B-4F07-AFB0-0F56A975D501}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmart.VariableManager", "BPASmart.VariableManager\BPASmart.VariableManager.csproj", "{2C17B9A9-B27B-4F07-AFB0-0F56A975D501}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DistributedHostComputer", "DistributedHostComputer", "{CDC1E762-5E1D-4AE1-9DF2-B85761539086}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BPASmart.DataServer", "BPASmart.DataServer\BPASmart.DataServer.csproj", "{00C5B45D-9799-43F1-B07B-9F638AA9FF72}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BPASmart.Model", "BPASmart.Model\BPASmart.Model.csproj", "{5083C91F-B23E-445D-8B7F-AF87E636E847}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BPASmart.Server", "BPASmart.Server\BPASmart.Server.csproj", "{F67FBFAC-6C80-466D-A596-1B9B10E885FC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -1430,6 +1438,66 @@ Global {2C17B9A9-B27B-4F07-AFB0-0F56A975D501}.Release|x64.Build.0 = Release|Any CPU {2C17B9A9-B27B-4F07-AFB0-0F56A975D501}.Release|x86.ActiveCfg = Release|Any CPU {2C17B9A9-B27B-4F07-AFB0-0F56A975D501}.Release|x86.Build.0 = Release|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Debug|ARM.ActiveCfg = Debug|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Debug|ARM.Build.0 = Debug|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Debug|ARM64.Build.0 = Debug|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Debug|x64.ActiveCfg = Debug|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Debug|x64.Build.0 = Debug|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Debug|x86.ActiveCfg = Debug|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Debug|x86.Build.0 = Debug|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Release|Any CPU.Build.0 = Release|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Release|ARM.ActiveCfg = Release|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Release|ARM.Build.0 = Release|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Release|ARM64.ActiveCfg = Release|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Release|ARM64.Build.0 = Release|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Release|x64.ActiveCfg = Release|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Release|x64.Build.0 = Release|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Release|x86.ActiveCfg = Release|Any CPU + {00C5B45D-9799-43F1-B07B-9F638AA9FF72}.Release|x86.Build.0 = Release|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Debug|ARM.ActiveCfg = Debug|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Debug|ARM.Build.0 = Debug|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Debug|ARM64.Build.0 = Debug|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Debug|x64.ActiveCfg = Debug|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Debug|x64.Build.0 = Debug|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Debug|x86.ActiveCfg = Debug|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Debug|x86.Build.0 = Debug|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Release|Any CPU.Build.0 = Release|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Release|ARM.ActiveCfg = Release|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Release|ARM.Build.0 = Release|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Release|ARM64.ActiveCfg = Release|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Release|ARM64.Build.0 = Release|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Release|x64.ActiveCfg = Release|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Release|x64.Build.0 = Release|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Release|x86.ActiveCfg = Release|Any CPU + {5083C91F-B23E-445D-8B7F-AF87E636E847}.Release|x86.Build.0 = Release|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Debug|ARM.Build.0 = Debug|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Debug|ARM64.Build.0 = Debug|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Debug|x64.ActiveCfg = Debug|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Debug|x64.Build.0 = Debug|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Debug|x86.ActiveCfg = Debug|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Debug|x86.Build.0 = Debug|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Release|Any CPU.Build.0 = Release|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Release|ARM.ActiveCfg = Release|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Release|ARM.Build.0 = Release|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Release|ARM64.ActiveCfg = Release|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Release|ARM64.Build.0 = Release|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Release|x64.ActiveCfg = Release|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Release|x64.Build.0 = Release|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Release|x86.ActiveCfg = Release|Any CPU + {F67FBFAC-6C80-466D-A596-1B9B10E885FC}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1501,7 +1569,10 @@ Global {B6213013-2A0E-41DD-BA9F-775D53C19374} = {5300552F-560D-474A-8D96-0A2747D08F64} {309D579E-DDA8-4B01-A0AA-0F381BC37801} = {7B0175AD-BB74-4A98-B9A7-1E289032485E} {1696D557-C908-4136-A5F2-FF59D69E642C} = {309D579E-DDA8-4B01-A0AA-0F381BC37801} - {2C17B9A9-B27B-4F07-AFB0-0F56A975D501} = {8712125E-14CD-4E1B-A1CE-4BDE03805942} + {2C17B9A9-B27B-4F07-AFB0-0F56A975D501} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} + {00C5B45D-9799-43F1-B07B-9F638AA9FF72} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} + {5083C91F-B23E-445D-8B7F-AF87E636E847} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} + {F67FBFAC-6C80-466D-A596-1B9B10E885FC} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {9AEC9B81-0222-4DE9-B642-D915C29222AC}