@@ -20,7 +20,7 @@ | |||
</ItemGroup> | |||
<ItemGroup> | |||
<PackageReference Include="BPA.Helper" Version="1.0.15" /> | |||
<PackageReference Include="BPA.Helper" Version="1.0.17" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -8,7 +8,7 @@ | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="BPA.Helper" Version="1.0.15" /> | |||
<PackageReference Include="BPA.Helper" Version="1.0.17" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -9,7 +9,7 @@ | |||
<ItemGroup> | |||
<PackageReference Include="BPA.Communication" Version="1.0.19" /> | |||
<PackageReference Include="BPA.Helper" Version="1.0.15" /> | |||
<PackageReference Include="BPA.Helper" Version="1.0.17" /> | |||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.9" /> | |||
</ItemGroup> | |||
@@ -30,7 +30,7 @@ | |||
<ItemGroup> | |||
<PackageReference Include="BPA.Communication" Version="1.0.19" /> | |||
<PackageReference Include="BPA.Helper" Version="1.0.15" /> | |||
<PackageReference Include="BPA.Helper" Version="1.0.17" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -385,6 +385,7 @@ | |||
</ItemGroup> | |||
<ItemGroup> | |||
<PackageReference Include="BPA.Helper" Version="1.0.17" /> | |||
<PackageReference Include="BPA.Message" Version="1.0.46" /> | |||
<PackageReference Include="MahApps.Metro.IconPacks.FontAwesome" Version="4.11.0" /> | |||
<PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.2" /> | |||
@@ -96,7 +96,7 @@ namespace BPASmartClient.CustomResource.Pages.Model | |||
/// 子菜单权限管理 | |||
/// </summary> | |||
public Permission[] SubMenuPermission { get { return _mSubMenuPermission; } set { _mSubMenuPermission = value; OnPropertyChanged(); } } | |||
private Permission[] _mSubMenuPermission; | |||
private Permission[] _mSubMenuPermission = new Permission[] { Permission.管理员 }; | |||
/// <summary> | |||
/// 切换界面路径 | |||
@@ -19,21 +19,32 @@ | |||
Margin="20" | |||
HorizontalScrollBarVisibility="Hidden" | |||
VerticalScrollBarVisibility="Hidden"> | |||
<TextBlock | |||
FontFamily="黑体" | |||
FontSize="16" | |||
Foreground="#20FDFA" | |||
LineHeight="30" | |||
Text="{Binding Message}" | |||
TextWrapping="Wrap"> | |||
<TextBlock.Effect> | |||
<DropShadowEffect | |||
Direction="0" | |||
Opacity="0.5" | |||
ShadowDepth="5" | |||
Color="#20aefe" /> | |||
</TextBlock.Effect> | |||
</TextBlock> | |||
<ItemsControl ItemsSource="{Binding MessageModels}"> | |||
<ItemsControl.ItemTemplate> | |||
<DataTemplate> | |||
<Grid> | |||
<TextBlock | |||
FontFamily="黑体" | |||
FontSize="16" | |||
Foreground="{Binding Forground}" | |||
LineHeight="30" | |||
Text="{Binding LogInfo}" | |||
TextWrapping="Wrap"> | |||
<!--<TextBlock.Effect> | |||
<DropShadowEffect | |||
Direction="0" | |||
Opacity="0.5" | |||
ShadowDepth="5" | |||
Color="#20aefe" /> | |||
</TextBlock.Effect>--> | |||
</TextBlock> | |||
</Grid> | |||
</DataTemplate> | |||
</ItemsControl.ItemTemplate> | |||
</ItemsControl> | |||
</ScrollViewer> | |||
</Grid> | |||
@@ -14,7 +14,7 @@ | |||
Background="{x:Null}" | |||
Topmost="False" | |||
WindowStartupLocation="CenterScreen" | |||
WindowState="Normal" | |||
WindowState="Maximized" | |||
WindowStyle="None" | |||
mc:Ignorable="d"> | |||
@@ -228,7 +228,7 @@ | |||
<Grid> | |||
<Grid.Background> | |||
<ImageBrush ImageSource="/BPASmartClient.CustomResource;component/Image/Login.png"/> | |||
<ImageBrush ImageSource="/BPASmartClient.CustomResource;component/Image/Login.png" /> | |||
</Grid.Background> | |||
<!--<MediaElement | |||
Name="player" | |||
@@ -5,8 +5,10 @@ using System.Linq; | |||
using System.Runtime.CompilerServices; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
using BPASmartClient.Message; | |||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||
using BPA.Helper; | |||
using System.Collections.ObjectModel; | |||
using System.Windows.Media; | |||
namespace BPASmartClient.CustomResource.Pages.ViewModel | |||
{ | |||
@@ -14,21 +16,36 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||
{ | |||
public DebugLogViewModel() | |||
{ | |||
MessageLog.GetInstance.DebugLog = new Action<string>((o) => | |||
{ | |||
Message = MessageLog.GetInstance.DebugLogInfo; | |||
}); | |||
//MessageLog.GetInstance.NotifyShow = new Action<string>((o) => { }); | |||
//MessageLog.GetInstance.DebugLog = new Action<string>((o) => | |||
// { | |||
// Message = MessageLog.GetInstance.DebugLogInfo; | |||
// }); | |||
} | |||
public static string Message { get { return _mMessage; } set { _mMessage = value; OnStaticPropertyChanged(); } } | |||
private static string _mMessage = string.Empty; | |||
public static ObservableCollection<MessageModel> MessageModels { get; set; } = new ObservableCollection<MessageModel>(); | |||
//public static string Message { get { return _mMessage; } set { _mMessage = value; OnStaticPropertyChanged(); } } | |||
//private static string _mMessage = string.Empty; | |||
//public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged; | |||
//private static void OnStaticPropertyChanged([CallerMemberName] string PropName = "") | |||
//{ | |||
// StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(PropName)); | |||
//} | |||
public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged; | |||
private static void OnStaticPropertyChanged([CallerMemberName] string PropName = "") | |||
{ | |||
StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(PropName)); | |||
} | |||
} | |||
public class MessageModel : ObservableObject | |||
{ | |||
public string LogInfo { get { return _mLogInfo; } set { _mLogInfo = value; OnPropertyChanged(); } } | |||
private string _mLogInfo; | |||
public Brush Forground { get { return _mForground; } set { _mForground = value; OnPropertyChanged(); } } | |||
private Brush _mForground; | |||
} | |||
} |
@@ -6,6 +6,7 @@ using System.Reflection; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
using System.Windows; | |||
using System.Windows.Media; | |||
using BPASmartClient.CustomResource.Pages.Model; | |||
using BPASmartClient.Helper; | |||
using BPASmartClient.Model; | |||
@@ -19,6 +20,40 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||
public MainViewModel() | |||
{ | |||
NavChangedCommand = new RelayCommand<object>(DoNavChanged); | |||
BPA.Helper.MessageLog.GetInstance.NotifyShow = new Action<string>((o) => | |||
{ | |||
Application.Current.Dispatcher.Invoke(() => | |||
{ | |||
//ff20aefe | |||
var temp = new MessageModel() | |||
{ | |||
LogInfo = o, | |||
Forground = new SolidColorBrush(Color.FromArgb(255, 32, 174, 254)) | |||
}; | |||
if (DebugLogViewModel.MessageModels.Count > 0) | |||
DebugLogViewModel.MessageModels.Insert(0, temp); | |||
else | |||
DebugLogViewModel.MessageModels.Add(temp); | |||
}); | |||
}); | |||
BPA.Helper.MessageLog.GetInstance.NotifyShowEx = new Action<string>((o) => | |||
{ | |||
Application.Current.Dispatcher.Invoke(() => | |||
{ | |||
//FFF53F62 | |||
var temp = new MessageModel() | |||
{ | |||
LogInfo = o, | |||
Forground = new SolidColorBrush(Color.FromArgb(255, 245, 63, 98)) | |||
}; | |||
if (DebugLogViewModel.MessageModels.Count > 0) | |||
DebugLogViewModel.MessageModels.Insert(0, temp); | |||
else | |||
DebugLogViewModel.MessageModels.Add(temp); | |||
}); | |||
}); | |||
menuModels = MenuManage.GetInstance.menuModels; | |||
PermissionChange(); | |||
ActionManage.GetInstance.Register(new Action(() => | |||
@@ -22,19 +22,20 @@ namespace BPASmartClient.SmallBatchingSystem | |||
protected override void OnStartup(StartupEventArgs e) | |||
{ | |||
base.OnStartup(e); | |||
Json<ConfigInfoModel>.Read(); | |||
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; | |||
Json<ConfigInfoModel>.Read(); | |||
Json<CommunicationPar>.Read(); | |||
MenuInit(); | |||
Control.GetInstance.Init(); | |||
//SiloServer siloServer = new SiloServer(); | |||
MainView mv = new MainView(); | |||
mv.TitleName = "黑菠萝配料系统"; | |||
Control.GetInstance.Init(); | |||
mv.TitleName = "黑菠萝自动化配料系统"; | |||
mv.Show(); | |||
//LoginView lv = new LoginView(); | |||
//var res = lv.ShowDialog(); | |||
//if (res != null && res == true) | |||
//{ | |||
// MessageLog.GetInstance.ShowUserLog("用户登录"); | |||
mv.Show(); | |||
// Control.GetInstance.OperationLog("用户登录"); | |||
// mv.Show(); | |||
//} | |||
//else | |||
// mv.Close(); | |||
@@ -48,8 +49,8 @@ namespace BPASmartClient.SmallBatchingSystem | |||
RecipeManage.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "料仓管理", | |||
SubMenuVisibility = Visibility.Visible, | |||
AssemblyName = "BPASmartClient.SmallBatchingSystem", | |||
SubMenuVisibility = Visibility.Visible, | |||
ToggleWindowPath = "Views.SiloManagementView" | |||
}); | |||
@@ -88,50 +89,11 @@ namespace BPASmartClient.SmallBatchingSystem | |||
}); | |||
#endregion | |||
//#region 参数设置 | |||
//ObservableCollection<SubMenumodel> ParSet = new ObservableCollection<SubMenumodel>(); | |||
//ParSet.Add(new SubMenumodel() | |||
//{ | |||
// SubMenuName = "原料参数设置", | |||
// SubMenuPermission = new Permission[] { Permission.管理员 }, | |||
// AssemblyName = "BPASmartClient.DosingSystem", | |||
// ToggleWindowPath = "View.DeviceMaterialParView" | |||
//}); | |||
//MenuManage.GetInstance.menuModels.Add(new MenuModel() | |||
//{ | |||
// MainMenuIcon = "", | |||
// MainMenuName = "参数设置", | |||
// Alias = "Parameter Set", | |||
// subMenumodels = ParSet, | |||
//}); | |||
//#endregion | |||
#region 手动控制 | |||
ObservableCollection<SubMenumodel> ManualControl = new ObservableCollection<SubMenumodel>(); | |||
ManualControl.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "手动控制", | |||
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 }, | |||
AssemblyName = "BPASmartClient.DosingSystem", | |||
ToggleWindowPath = "View.ManualControlView" | |||
}); | |||
MenuManage.GetInstance.menuModels.Add(new MenuModel() | |||
{ | |||
MainMenuIcon = "", | |||
MainMenuName = "手动控制", | |||
Alias = "Parameter Set", | |||
subMenumodels = ManualControl, | |||
}); | |||
#endregion | |||
#region 消息日志 | |||
ObservableCollection<SubMenumodel> InfoLog = new ObservableCollection<SubMenumodel>(); | |||
InfoLog.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "操作日志", | |||
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 }, | |||
AssemblyName = "BPASmartClient.CustomResource", | |||
SubMenuVisibility = Visibility.Visible, | |||
ToggleWindowPath = "Pages.View.UserLogView" | |||
@@ -140,38 +102,19 @@ namespace BPASmartClient.SmallBatchingSystem | |||
InfoLog.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "运行日志", | |||
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 }, | |||
AssemblyName = "BPASmartClient.CustomResource", | |||
SubMenuVisibility = Visibility.Visible, | |||
ToggleWindowPath = "Pages.View.RunLogView" | |||
}); | |||
InfoLog.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "报警记录", | |||
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 }, | |||
AssemblyName = "BPASmartClient.CustomResource", | |||
SubMenuVisibility = Visibility.Visible, | |||
ToggleWindowPath = "Pages.View.AlarmView" | |||
}); | |||
InfoLog.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "调试日志", | |||
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员, Permission.技术员 }, | |||
AssemblyName = "BPASmartClient.CustomResource", | |||
SubMenuVisibility = Visibility.Visible, | |||
ToggleWindowPath = "Pages.View.DebugLogView" | |||
}); | |||
InfoLog.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "报表数据", | |||
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员, Permission.技术员 }, | |||
AssemblyName = "BPASmartClient.CustomResource", | |||
ToggleWindowPath = "Pages.View.ReportView" | |||
}); | |||
MenuManage.GetInstance.menuModels.Add(new MenuModel() | |||
{ | |||
MainMenuIcon = "", | |||
@@ -181,55 +124,28 @@ namespace BPASmartClient.SmallBatchingSystem | |||
}); | |||
#endregion | |||
#region 硬件设备监控 | |||
ObservableCollection<SubMenumodel> DeviceMonitor = new ObservableCollection<SubMenumodel>(); | |||
DeviceMonitor.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "原料设备列表", | |||
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 }, | |||
AssemblyName = "BPASmartClient.DosingSystem", | |||
ToggleWindowPath = "View.DeviceListView" | |||
}); | |||
DeviceMonitor.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "设备状态", | |||
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 }, | |||
AssemblyName = "BPASmartClient.DosingSystem", | |||
ToggleWindowPath = "View.HardwareStatusView" | |||
}); | |||
MenuManage.GetInstance.menuModels.Add(new MenuModel() | |||
{ | |||
MainMenuIcon = "", | |||
MainMenuName = "设备监控", | |||
Alias = "Device Monitor", | |||
subMenumodels = DeviceMonitor, | |||
}); | |||
#endregion | |||
#region 用户管理 | |||
ObservableCollection<SubMenumodel> UserManager = new ObservableCollection<SubMenumodel>(); | |||
UserManager.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "用户登录", | |||
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 }, | |||
AssemblyName = "BPASmartClient.CustomResource", | |||
SubMenuVisibility = Visibility.Visible, | |||
ToggleWindowPath = "Pages.View.SubPagLoginView" | |||
}); | |||
UserManager.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "密码修改", | |||
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 }, | |||
AssemblyName = "BPASmartClient.CustomResource", | |||
SubMenuVisibility = Visibility.Visible, | |||
ToggleWindowPath = "Pages.View.PasswordChangeView" | |||
}); | |||
UserManager.Add(new SubMenumodel() | |||
{ | |||
SubMenuName = "用户管理", | |||
SubMenuPermission = new Permission[] { Permission.管理员 }, | |||
AssemblyName = "BPASmartClient.CustomResource", | |||
SubMenuVisibility = Visibility.Visible, | |||
ToggleWindowPath = "Pages.View.UserManagerView" | |||
}); | |||
@@ -245,12 +161,14 @@ namespace BPASmartClient.SmallBatchingSystem | |||
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) | |||
{ | |||
throw new NotImplementedException(); | |||
Json<ConfigInfoModel>.Save(); | |||
Json<CommunicationPar>.Save(); | |||
} | |||
protected override void OnExit(ExitEventArgs e) | |||
{ | |||
base.OnExit(e); | |||
Json<CommunicationPar>.Save(); | |||
} | |||
} | |||
} |
@@ -5,24 +5,28 @@ | |||
<TargetFramework>net6.0-windows</TargetFramework> | |||
<Nullable>enable</Nullable> | |||
<UseWPF>true</UseWPF> | |||
<ApplicationIcon>hbl.ico</ApplicationIcon> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<None Remove="Fonts\iconfont.ttf" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Content Include="hbl.ico" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Folder Include="Images\" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<PackageReference Include="BPA.Communication" Version="1.0.19" /> | |||
<PackageReference Include="BPA.Helper" Version="1.0.15" /> | |||
<PackageReference Include="BPA.Helper" Version="1.0.17" /> | |||
<PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.2" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\BPASmart.RecipeManagement\BPASmart.RecipeManagement.csproj" /> | |||
<ProjectReference Include="..\BPASmartClient.CustomResource\BPASmartClient.CustomResource.csproj" /> | |||
<ProjectReference Include="..\BPASmartClient.Modbus\BPASmartClient.Modbus.csproj" /> | |||
</ItemGroup> | |||
@@ -9,6 +9,8 @@ using System.Text; | |||
using System.Threading; | |||
using System.Threading.Tasks; | |||
using BPASmartClient.CustomResource.Pages.Model; | |||
using BPASmartClient.CustomResource.UserControls.MessageShow; | |||
using BPASmartClient.CustomResource.UserControls; | |||
namespace BPASmartClient.SmallBatchingSystem | |||
{ | |||
@@ -45,18 +47,18 @@ namespace BPASmartClient.SmallBatchingSystem | |||
{ | |||
PlcServer.GetInstance.WriteData("VW302", (ushort)temp);//设置出料口位置 | |||
PlcServer.GetInstance.WriteData("M10.0", true);//定位启动 | |||
Message($"启动定位,出料口位置:{temp}"); | |||
RunLog($"启动定位,出料口位置:{temp}"); | |||
int index = temp - 1; | |||
if (index >= 0) | |||
{ | |||
Message("等待定位完成"); | |||
RunLog("等待定位完成"); | |||
while (!PlcDataModel.TargetLocComplete && !IsCancel) Thread.Sleep(1);//等待定位反馈 | |||
if (IsCancel) break; | |||
Message("定位完成"); | |||
RunLog("定位完成"); | |||
PlcServer.GetInstance.WriteData("M20.0", false); | |||
while (PlcDataModel.TargetLocComplete && !IsCancel) Thread.Sleep(1); | |||
if (IsCancel) break; | |||
Message("定位完成,复位成功"); | |||
RunLog("定位完成,复位成功"); | |||
foreach (var temp1 in recipeInfo.SiloInfoModels) | |||
{ | |||
var rest = Json<ConfigInfoModel>.Data.OutletInfoModels.FirstOrDefault(p => p.SiloInfos.FirstOrDefault(s => s.Contains(temp1.SiloName)) != null); | |||
@@ -66,17 +68,17 @@ namespace BPASmartClient.SmallBatchingSystem | |||
if (res != null) | |||
{ | |||
StatusNotify(res.SiloName, Status.正在配料); | |||
Message($"写重量地址:{GetWeightAdd(res.SiloLoc)},重量:{temp1.SiloWeight}"); | |||
RunLog($"写重量地址:{GetWeightAdd(res.SiloLoc)},重量:{temp1.SiloWeight}"); | |||
PlcServer.GetInstance.WriteData(GetWeightAdd(res.SiloLoc), (ushort)temp1.SiloWeight); | |||
Message($"写启动信号地址:{GetStartSingleAdd(res.SiloLoc)}"); | |||
RunLog($"写启动信号地址:{GetStartSingleAdd(res.SiloLoc)}"); | |||
PlcServer.GetInstance.WriteData(GetStartSingleAdd(res.SiloLoc), true); | |||
while (!PlcDataModel.BatchingCompleted && !IsCancel) Thread.Sleep(1);//等待出料完成 | |||
if (IsCancel) break; | |||
Message("出料完成,复位出料完成状态"); | |||
RunLog("出料完成,复位出料完成状态"); | |||
PlcServer.GetInstance.WriteData("M4.0", false);//复位出料完成信号 | |||
while (PlcDataModel.BatchingCompleted && !IsCancel) Thread.Sleep(1);//等待出料完成信号复位成功 | |||
if (IsCancel) break; | |||
Message("出料完成复位成功"); | |||
RunLog("出料完成复位成功"); | |||
StatusNotify(res.SiloName, Status.配料完成); | |||
} | |||
} | |||
@@ -87,12 +89,12 @@ namespace BPASmartClient.SmallBatchingSystem | |||
if (!IsCancel) | |||
{ | |||
Message($"写入配方执行完成信号"); | |||
RunLog($"写入配方执行完成信号"); | |||
PlcServer.GetInstance.WriteData("M10.4", true); | |||
Message("等待配方执行完成"); | |||
RunLog("等待配方执行完成"); | |||
while (!PlcDataModel.RecipeBatchingComplete && !IsCancel) Thread.Sleep(1); | |||
if (IsCancel) break; | |||
Message($"【{recipeInfo.RecipeName}】配方执行完成"); | |||
RunLog($"【{recipeInfo.RecipeName}】配方执行完成"); | |||
ActionManage.GetInstance.Send("GrindArenaceousCancel"); | |||
} | |||
} | |||
@@ -142,12 +144,31 @@ namespace BPASmartClient.SmallBatchingSystem | |||
ActionManage.GetInstance.Send("StatusNotify", new RecipeStatus() { RawMaterialName = SiloName, Status = Status.ToString() }); | |||
} | |||
private void Message(string info) | |||
public void RunLog(string info) | |||
{ | |||
BPASmartClient.CustomResource.Pages.Model.MessageLog.GetInstance.ShowRunLog(info); | |||
Debug.WriteLine($"{DateTime.Now.ToString("HH:mm:ss")}:{info}"); | |||
} | |||
public void OperationLog(string info) | |||
{ | |||
BPASmartClient.CustomResource.Pages.Model.MessageLog.GetInstance.ShowUserLog(info); | |||
Debug.WriteLine($"{DateTime.Now.ToString("HH:mm:ss")}:{info}"); | |||
} | |||
public void DebugLog(string info) | |||
{ | |||
BPASmartClient.Message.MessageLog.GetInstance.DebugLog(info); | |||
} | |||
public void NotifyPrompt(string info) | |||
{ | |||
App.Current.Dispatcher.Invoke(() => | |||
{ | |||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", info); | |||
}); | |||
} | |||
/// <summary> | |||
/// 获取启动信号地址 | |||
/// </summary> | |||
@@ -20,6 +20,7 @@ namespace BPASmartClient.SmallBatchingSystem | |||
public void Connect() | |||
{ | |||
MessageLog.GetInstance.Show($"开始连接设备,【IP = {Json<CommunicationPar>.Data.Host} 】,【 Port = {Json<CommunicationPar>.Data.Port} 】"); | |||
Communication.IsReconnect = true; | |||
Communication.ConnectOk = new Action(() => | |||
{ | |||
@@ -38,7 +39,7 @@ namespace BPASmartClient.SmallBatchingSystem | |||
PlcDataModel.BatchingCompleted = bools1[0]; | |||
} | |||
var res2 = ReadData("M13.3", 1);//配方配料完成 | |||
var res2 = ReadData("M13.3", 1);//配方配料完成,托盘在放碗或取碗位置 | |||
if (res2 != null && res2 is bool[] bools2 && bools2.Length == 1) | |||
{ | |||
PlcDataModel.RecipeBatchingComplete = bools2[0]; | |||
@@ -52,12 +53,16 @@ namespace BPASmartClient.SmallBatchingSystem | |||
public void WriteData(string address, object value) | |||
{ | |||
if (address != null && value != null) | |||
Communication.Write(address, value); | |||
if (Communication.Connected) | |||
{ | |||
if (address != null && value != null) | |||
Communication.Write(address, value); | |||
} | |||
} | |||
public object ReadData(string address, int length) | |||
{ | |||
if (!Communication.Connected) return default; | |||
object res = null; | |||
if (address != null) | |||
res = Communication.Read(address, (ushort)length); | |||
@@ -41,6 +41,7 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
Json<ConfigInfoModel>.Data.OutletInfoModels.ElementAt(Index).OutletName = OutletName; | |||
Json<ConfigInfoModel>.Data.OutletInfoModels.ElementAt(Index).OutletLoc = OutletLoc; | |||
Json<ConfigInfoModel>.Data.OutletInfoModels.ElementAt(Index).SiloInfos = SileNames; | |||
Control.GetInstance.OperationLog($"{OutletName} 编辑完成"); | |||
} | |||
else | |||
{ | |||
@@ -50,6 +51,7 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
OutletName = OutletName, | |||
SiloInfos = SileNames | |||
}); | |||
Control.GetInstance.OperationLog($"{OutletName} 添加成功"); | |||
} | |||
ActionManage.GetInstance.Send("NewOutletViewClose"); | |||
}); | |||
@@ -12,7 +12,6 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
{ | |||
public class NewRecipeViewModel : BaseModel | |||
{ | |||
//int Index = -1; | |||
public NewRecipeViewModel() | |||
{ | |||
Json<ConfigInfoModel>.Data.SiloInfoModels.ToList()?.ForEach(item => { SileName.Add(item.SiloName); }); | |||
@@ -41,6 +40,7 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
{ | |||
Json<ConfigInfoModel>.Data.Recipes.ElementAt(Index).SiloInfoModels.Add(item); | |||
}); | |||
Control.GetInstance.OperationLog($"{RecipeName} 编辑完成"); | |||
} | |||
else | |||
{ | |||
@@ -49,6 +49,7 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
RecipeName = RecipeName, | |||
SiloInfoModels = SiloInfos | |||
}); | |||
Control.GetInstance.OperationLog($"{RecipeName} 添加成功"); | |||
} | |||
ActionManage.GetInstance.Send("NewRecipeViewModelClose"); | |||
}); | |||
@@ -66,14 +67,6 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
public string RecipeName { get { return _mRecipeName; } set { _mRecipeName = value; OnPropertyChanged(); } } | |||
private string _mRecipeName; | |||
//public RelayCommand AddCommand { get; set; } | |||
//public RelayCommand CnacelCommand { get; set; } | |||
//public RelayCommand SaveCommand { get; set; } | |||
//public RelayCommand<object> RemoveCommand { get; set; } | |||
public ObservableCollection<RecipeRawMaterialInfo> SiloInfos { get; set; } = new ObservableCollection<RecipeRawMaterialInfo>(); | |||
public ObservableCollection<string> SileName { get; set; } = new ObservableCollection<string>(); | |||
@@ -20,6 +20,7 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
{ | |||
Json<ConfigInfoModel>.Data.SiloInfoModels.ElementAt(Index).SiloName = SiloInfoModelObj.SiloName; | |||
Json<ConfigInfoModel>.Data.SiloInfoModels.ElementAt(Index).SiloLoc = SiloInfoModelObj.SiloLoc; | |||
Control.GetInstance.OperationLog($"{SiloInfoModelObj.SiloName} 编辑完成"); | |||
} | |||
else | |||
{ | |||
@@ -28,6 +29,7 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
SiloLoc = SiloInfoModelObj.SiloLoc, | |||
SiloName = SiloInfoModelObj.SiloName, | |||
}); | |||
Control.GetInstance.OperationLog($"{SiloInfoModelObj.SiloName} 添加成功"); | |||
} | |||
ActionManage.GetInstance.Send("SiloClose"); | |||
}); | |||
@@ -27,7 +27,11 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
if (!string.IsNullOrEmpty(o?.ToString())) | |||
{ | |||
var res = Json<ConfigInfoModel>.Data.OutletInfoModels.FirstOrDefault(p => p.OutletName == o.ToString()); | |||
if (res != null) Json<ConfigInfoModel>.Data.OutletInfoModels.Remove(res); | |||
if (res != null) | |||
{ | |||
Json<ConfigInfoModel>.Data.OutletInfoModels.Remove(res); | |||
Control.GetInstance.OperationLog($"{res.OutletName} 删除成功"); | |||
} | |||
} | |||
}); | |||
@@ -8,6 +8,8 @@ using BPA.Helper; | |||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||
using Microsoft.Toolkit.Mvvm.Input; | |||
using BPASmartClient.SmallBatchingSystem.Views; | |||
using BPASmartClient.CustomResource.UserControls.MessageShow; | |||
using BPASmartClient.CustomResource.UserControls; | |||
namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
{ | |||
@@ -18,20 +20,41 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
Recipes = Json<ConfigInfoModel>.Data.Recipes; | |||
StartCommand = new RelayCommand<object>((o) => | |||
{ | |||
if (!string.IsNullOrEmpty(o?.ToString())) | |||
Task.Factory.StartNew(() => | |||
{ | |||
int index = Array.FindIndex(Json<ConfigInfoModel>.Data.Recipes.ToArray(), p => p.RecipeName == o.ToString()); | |||
if (index >= 0 && index < Json<ConfigInfoModel>.Data.Recipes.Count) | |||
if (PlcDataModel.RecipeBatchingComplete) | |||
{ | |||
var data = Json<ConfigInfoModel>.Data.Recipes.ElementAt(index); | |||
GrindArenaceousView grindArenaceousView = new GrindArenaceousView(); | |||
ActionManage.GetInstance.Send("OpenRecipeStatusMotion", data); | |||
Control.GetInstance.MakeOrderQueue.Enqueue(data); | |||
grindArenaceousView.ShowDialog(); | |||
if (!string.IsNullOrEmpty(o?.ToString())) | |||
{ | |||
int index = Array.FindIndex(Json<ConfigInfoModel>.Data.Recipes.ToArray(), p => p.RecipeName == o.ToString()); | |||
if (index >= 0 && index < Json<ConfigInfoModel>.Data.Recipes.Count) | |||
{ | |||
var data = Json<ConfigInfoModel>.Data.Recipes.ElementAt(index); | |||
Control.GetInstance.RunLog($"下发配方:{data.RecipeName}"); | |||
GrindArenaceousView grindArenaceousView = new GrindArenaceousView(); | |||
ActionManage.GetInstance.Send("OpenRecipeStatusMotion", data); | |||
Control.GetInstance.MakeOrderQueue.Enqueue(data); | |||
Control.GetInstance.NotifyPrompt("配方下发成功!"); | |||
grindArenaceousView.ShowDialog(); | |||
} | |||
} | |||
} | |||
} | |||
else | |||
{ | |||
App.Current.Dispatcher.Invoke(() => | |||
{ | |||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, App.MainWindow, "错误", "配方下发失败,硬件设备状态未装备就绪!"); | |||
}); | |||
Control.GetInstance.RunLog("配方下发失败,硬件设备状态未装备就绪!"); | |||
} | |||
}); | |||
}); | |||
DeviceInitCommand = new RelayCommand(() => { PlcServer.GetInstance.WriteData("M10.3", true); }); | |||
} | |||
public RelayCommand DeviceInitCommand { get; set; } | |||
public ObservableCollection<RecipeInfo> Recipes { get; set; } | |||
public RelayCommand<object> StartCommand { get; set; } | |||
@@ -5,6 +5,8 @@ using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
using BPA.Helper; | |||
using BPASmartClient.CustomResource.UserControls; | |||
using BPASmartClient.CustomResource.UserControls.MessageShow; | |||
using BPASmartClient.SmallBatchingSystem.Views; | |||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||
using Microsoft.Toolkit.Mvvm.Input; | |||
@@ -20,14 +22,19 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
NewRecipeView newOutletView = new NewRecipeView(); | |||
newOutletView.ShowDialog(); | |||
}); | |||
SaveCommand = new RelayCommand(() => { Json<ConfigInfoModel>.Save(); }); | |||
SaveCommand = new RelayCommand(() => { Json<ConfigInfoModel>.Save(); Control.GetInstance.NotifyPrompt("配方保存成功"); }); | |||
RecipeInfoModels = Json<ConfigInfoModel>.Data.Recipes; | |||
RemoveCommand = new RelayCommand<object>((o) => | |||
{ | |||
if (!string.IsNullOrEmpty(o?.ToString())) | |||
{ | |||
var res = Json<ConfigInfoModel>.Data.Recipes.FirstOrDefault(p => p.RecipeName == o.ToString()); | |||
if (res != null) Json<ConfigInfoModel>.Data.Recipes.Remove(res); | |||
if (res != null) | |||
{ | |||
Json<ConfigInfoModel>.Data.Recipes.Remove(res); | |||
Control.GetInstance.NotifyPrompt($"{res.RecipeName} 删除成功"); | |||
Control.GetInstance.OperationLog($"{res.RecipeName} 删除成功"); | |||
} | |||
} | |||
}); | |||
@@ -41,6 +48,7 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
NewRecipeView newOutletView = new NewRecipeView(); | |||
ActionManage.GetInstance.Send("OpenNewRecipe", res); | |||
newOutletView.ShowDialog(); | |||
Control.GetInstance.OperationLog($"{res.RecipeName} 编辑完成"); | |||
} | |||
} | |||
}); | |||
@@ -27,7 +27,12 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
if (!string.IsNullOrEmpty(o?.ToString())) | |||
{ | |||
var res = Json<ConfigInfoModel>.Data.SiloInfoModels.FirstOrDefault(p => p.SiloName == o.ToString()); | |||
if (res != null) Json<ConfigInfoModel>.Data.SiloInfoModels.Remove(res); | |||
if (res != null) | |||
{ | |||
Json<ConfigInfoModel>.Data.SiloInfoModels.Remove(res); | |||
Control.GetInstance.NotifyPrompt($"{res.SiloName} 删除成功"); | |||
Control.GetInstance.OperationLog($"{res.SiloName} 删除成功"); | |||
} | |||
} | |||
}); | |||
@@ -41,6 +46,7 @@ namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||
NewSiloView newSiloView = new NewSiloView(); | |||
ActionManage.GetInstance.Send("OpenNewSilo", res); | |||
newSiloView.ShowDialog(); | |||
Control.GetInstance.OperationLog($"{res.SiloName} 编辑完成"); | |||
} | |||
} | |||
}); | |||
@@ -11,6 +11,7 @@ | |||
Height="450" | |||
AllowsTransparency="True" | |||
Background="{x:Null}" | |||
Topmost="True" | |||
WindowStartupLocation="CenterScreen" | |||
WindowState="Maximized" | |||
WindowStyle="None" | |||
@@ -18,15 +18,25 @@ | |||
<Grid Margin="20"> | |||
<!--<Grid.ColumnDefinitions> | |||
<ColumnDefinition /> | |||
<ColumnDefinition Width="0.25*" /> | |||
</Grid.ColumnDefinitions>--> | |||
<Grid Name="ggr" Margin="10"> | |||
<!--<pry:ImageBorder Width="{Binding ElementName=ggr, Path=ActualWidth}" Height="{Binding ElementName=ggr, Path=ActualHeight}" />--> | |||
<Grid.RowDefinitions> | |||
<RowDefinition Height="35" /> | |||
<RowDefinition /> | |||
</Grid.RowDefinitions> | |||
<Button | |||
Width="150" | |||
Height="30" | |||
Margin="10,0,10,0" | |||
HorizontalAlignment="Right" | |||
Command="{Binding AddCommand}" | |||
Content="初始化" | |||
FontSize="20" | |||
Style="{StaticResource ImageButtonStyle}" /> | |||
<Grid | |||
Name="ggr" | |||
Grid.Row="1" | |||
Margin="10"> | |||
<ListBox | |||
Margin="5" | |||
VerticalAlignment="Top" | |||
@@ -36,10 +46,11 @@ | |||
ScrollViewer.HorizontalScrollBarVisibility="Disabled"> | |||
<ListBox.ItemsPanel> | |||
<ItemsPanelTemplate> | |||
<UniformGrid | |||
<!--<UniformGrid | |||
HorizontalAlignment="Left" | |||
VerticalAlignment="Top" | |||
Columns="8" /> | |||
Columns="8" />--> | |||
<WrapPanel Orientation="Horizontal" /> | |||
</ItemsPanelTemplate> | |||
</ListBox.ItemsPanel> | |||
@@ -48,6 +59,7 @@ | |||
<Grid | |||
Name="tt" | |||
Width="180" | |||
Height="220" | |||
Margin="5"> | |||
<Grid.RowDefinitions> | |||
@@ -353,7 +365,6 @@ | |||
</DataTemplate> | |||
</ListBox.ItemTemplate> | |||
</ListBox> | |||
</Grid> | |||
</Grid> | |||
</UserControl> |
@@ -53,10 +53,11 @@ | |||
ScrollViewer.HorizontalScrollBarVisibility="Disabled"> | |||
<ListBox.ItemsPanel> | |||
<ItemsPanelTemplate> | |||
<UniformGrid | |||
<!--<UniformGrid | |||
HorizontalAlignment="Left" | |||
VerticalAlignment="Top" | |||
Columns="8" /> | |||
Columns="8" />--> | |||
<WrapPanel Orientation="Horizontal" /> | |||
</ItemsPanelTemplate> | |||
</ListBox.ItemsPanel> | |||
@@ -65,6 +66,7 @@ | |||
<Grid | |||
Name="tt" | |||
Width="180" | |||
Height="220" | |||
Margin="5"> | |||
<Grid.RowDefinitions> | |||
@@ -10,7 +10,7 @@ | |||
<ItemGroup> | |||
<PackageReference Include="BPA.Communication" Version="1.0.19" /> | |||
<PackageReference Include="BPA.Helper" Version="1.0.15" /> | |||
<PackageReference Include="BPA.Helper" Version="1.0.17" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -98,7 +98,7 @@ namespace BPASmartClient.DosingSystem.Model | |||
public void Init() | |||
{ | |||
//TestData(); | |||
TestData(); | |||
IpAddressLines(); | |||
DeviceDataInit(); | |||
ThreadManage.GetInstance().StartLong(new Action(() => | |||
@@ -173,13 +173,12 @@ EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmart.PageLoad", "BPASmart.PageLoad\BPASmart.PageLoad.csproj", "{2DB084E8-B951-4D71-A203-FD0902EBA2C6}" | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmart.CustomResource", "BPASmart.CustomResource\BPASmart.CustomResource.csproj", "{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}" | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.SmallBatchingSystem", "BPASmartClient.SmallBatchingSystem\BPASmartClient.SmallBatchingSystem.csproj", "{BA588F22-87FB-4124-AF62-CA8DC492ED7D}" | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.MorkMOC", "BPASmartClient.MorkMOC\BPASmartClient.MorkMOC.csproj", "{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}" | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.SmallBatchingSystem", "BPASmartClient.SmallBatchingSystem\BPASmartClient.SmallBatchingSystem.csproj", "{BA588F22-87FB-4124-AF62-CA8DC492ED7D}" | |||
EndProject | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BPASmartClient.DosingHKProject", "BPASmartClient.DosingProject\BPASmartClient.DosingHKProject.csproj", "{6763F73A-555C-41E2-91F7-ADF26C59A946}" | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.DosingHKProject", "BPASmartClient.DosingProject\BPASmartClient.DosingHKProject.csproj", "{6763F73A-555C-41E2-91F7-ADF26C59A946}" | |||
EndProject | |||
Global | |||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||
@@ -1635,26 +1634,6 @@ Global | |||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x64.Build.0 = Release|Any CPU | |||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x86.ActiveCfg = Release|Any CPU | |||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x86.Build.0 = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM.Build.0 = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM64.ActiveCfg = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM64.Build.0 = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x64.ActiveCfg = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x64.Build.0 = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x86.ActiveCfg = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x86.Build.0 = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM.ActiveCfg = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM.Build.0 = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM64.ActiveCfg = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM64.Build.0 = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x64.ActiveCfg = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x64.Build.0 = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x86.ActiveCfg = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x86.Build.0 = Release|Any CPU | |||
{BA588F22-87FB-4124-AF62-CA8DC492ED7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{BA588F22-87FB-4124-AF62-CA8DC492ED7D}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{BA588F22-87FB-4124-AF62-CA8DC492ED7D}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||
@@ -1675,6 +1654,26 @@ Global | |||
{BA588F22-87FB-4124-AF62-CA8DC492ED7D}.Release|x64.Build.0 = Release|Any CPU | |||
{BA588F22-87FB-4124-AF62-CA8DC492ED7D}.Release|x86.ActiveCfg = Release|Any CPU | |||
{BA588F22-87FB-4124-AF62-CA8DC492ED7D}.Release|x86.Build.0 = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM.Build.0 = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM64.ActiveCfg = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM64.Build.0 = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x64.ActiveCfg = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x64.Build.0 = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x86.ActiveCfg = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x86.Build.0 = Debug|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM.ActiveCfg = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM.Build.0 = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM64.ActiveCfg = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM64.Build.0 = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x64.ActiveCfg = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x64.Build.0 = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x86.ActiveCfg = Release|Any CPU | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x86.Build.0 = Release|Any CPU | |||
{6763F73A-555C-41E2-91F7-ADF26C59A946}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{6763F73A-555C-41E2-91F7-ADF26C59A946}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{6763F73A-555C-41E2-91F7-ADF26C59A946}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||
@@ -1775,8 +1774,8 @@ Global | |||
{06F30619-AD37-4CA0-838F-0431867E0932} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | |||
{2DB084E8-B951-4D71-A203-FD0902EBA2C6} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | |||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2} = {9FB27073-61A0-4FE3-94DB-5FDDE062332F} | |||
{BA588F22-87FB-4124-AF62-CA8DC492ED7D} = {8712125E-14CD-4E1B-A1CE-4BDE03805942} | |||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2} = {9FB27073-61A0-4FE3-94DB-5FDDE062332F} | |||
{6763F73A-555C-41E2-91F7-ADF26C59A946} = {8712125E-14CD-4E1B-A1CE-4BDE03805942} | |||
EndGlobalSection | |||
GlobalSection(ExtensibilityGlobals) = postSolution | |||