mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-12 04:06:36 +08:00
项目结构调整
This commit is contained in:
15
Extensions/AIStudio.Wpf.SFC/AIStudio.Wpf.SFC.csproj
Normal file
15
Extensions/AIStudio.Wpf.SFC/AIStudio.Wpf.SFC.csproj
Normal file
@@ -0,0 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<UseWPF>true</UseWPF>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MathParser.org-mXparser" Version="4.4.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\AIStudio.Wpf.DiagramDesigner\AIStudio.Wpf.DiagramDesigner.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,225 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<AssemblyName>AIStudio.Wpf.SFC</AssemblyName>
|
||||
<IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
|
||||
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
|
||||
<MSBuildProjectExtensionsPath>F:\aistudio.-wpf.-diagram\AIStudio.Wpf.SFC\obj\</MSBuildProjectExtensionsPath>
|
||||
<_TargetAssemblyProjectName>AIStudio.Wpf.SFC</_TargetAssemblyProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk.WindowsDesktop" />
|
||||
<PropertyGroup>
|
||||
<UseWPF>true</UseWPF>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MathParser.org-mXparser" Version="4.4.2" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\AIStudio.Wpf.DiagramDesigner\AIStudio.Wpf.DiagramDesigner.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\Accessibility.dll" />
|
||||
<ReferencePath Include="F:\aistudio.-wpf.-diagram\AIStudio.Wpf.DiagramDesigner\bin\Debug\net5.0-windows\AIStudio.Wpf.DiagramDesigner.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\mathparser.org-mxparser\4.4.2\lib\netcoreapp31\MathParser.org-mXparser.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\Microsoft.CSharp.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\Microsoft.VisualBasic.Core.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\Microsoft.VisualBasic.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\Microsoft.Win32.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\Microsoft.Win32.Registry.AccessControl.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\Microsoft.Win32.Registry.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\Microsoft.Win32.SystemEvents.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\microsoft.xaml.behaviors.wpf\1.1.31\lib\net5.0-windows7.0\Microsoft.Xaml.Behaviors.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\mscorlib.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\netstandard.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\newtonsoft.json\13.0.1\lib\netstandard2.0\Newtonsoft.Json.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\PresentationCore.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\PresentationFramework.Aero.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\PresentationFramework.Aero2.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\PresentationFramework.AeroLite.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\PresentationFramework.Classic.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\PresentationFramework.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\PresentationFramework.Luna.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\PresentationFramework.Royale.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\PresentationUI.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\ReachFramework.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.AppContext.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Buffers.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.CodeDom.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Collections.Concurrent.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Collections.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Collections.Immutable.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Collections.NonGeneric.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Collections.Specialized.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.Annotations.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.DataAnnotations.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.EventBasedAsync.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ComponentModel.TypeConverter.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Configuration.ConfigurationManager.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Configuration.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Console.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Core.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Data.Common.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Data.DataSetExtensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Data.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.Contracts.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.Debug.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.DiagnosticSource.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.EventLog.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.FileVersionInfo.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.PerformanceCounter.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.Process.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.StackTrace.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.TextWriterTraceListener.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.Tools.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.TraceSource.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.Tracing.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.DirectoryServices.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\system.drawing.common\5.0.2\ref\netcoreapp3.0\System.Drawing.Common.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Drawing.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Drawing.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Dynamic.Runtime.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Formats.Asn1.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Globalization.Calendars.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Globalization.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Globalization.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.Compression.Brotli.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.Compression.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.Compression.FileSystem.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.Compression.ZipFile.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.IO.FileSystem.AccessControl.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.FileSystem.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.FileSystem.DriveInfo.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.FileSystem.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.FileSystem.Watcher.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.IsolatedStorage.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.MemoryMappedFiles.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.IO.Packaging.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.IO.Pipes.AccessControl.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.Pipes.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.IO.UnmanagedMemoryStream.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Linq.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Linq.Expressions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Linq.Parallel.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Linq.Queryable.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Memory.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Http.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Http.Json.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.HttpListener.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Mail.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.NameResolution.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.NetworkInformation.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Ping.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Requests.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Security.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.ServicePoint.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.Sockets.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.WebClient.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.WebHeaderCollection.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.WebProxy.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.WebSockets.Client.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Net.WebSockets.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Numerics.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Numerics.Vectors.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ObjectModel.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Printing.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\system.reactive\5.0.0\lib\net5.0\System.Reactive.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.DispatchProxy.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Emit.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Emit.ILGeneration.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Emit.Lightweight.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Metadata.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Reflection.TypeExtensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Resources.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Resources.Reader.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Resources.ResourceManager.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Resources.Writer.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.CompilerServices.Unsafe.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.CompilerServices.VisualC.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Handles.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.InteropServices.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.InteropServices.RuntimeInformation.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Intrinsics.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Loader.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Numerics.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Serialization.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Serialization.Formatters.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Serialization.Json.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Serialization.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Runtime.Serialization.Xml.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Security.AccessControl.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Claims.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Algorithms.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Cng.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Csp.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Encoding.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Pkcs.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.ProtectedData.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.X509Certificates.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Security.Cryptography.Xml.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Security.Permissions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.Principal.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Security.Principal.Windows.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Security.SecureString.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ServiceModel.Web.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ServiceProcess.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.Encoding.CodePages.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.Encoding.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.Encoding.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.Encodings.Web.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.Json.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Text.RegularExpressions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Threading.AccessControl.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Channels.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Overlapped.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Tasks.Dataflow.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Tasks.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Tasks.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Tasks.Parallel.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Thread.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.ThreadPool.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Threading.Timer.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Transactions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Transactions.Local.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.ValueTuple.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Web.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Web.HttpUtility.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Windows.Controls.Ribbon.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Windows.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Windows.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Windows.Input.Manipulations.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Windows.Presentation.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Xaml.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.Linq.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.ReaderWriter.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.Serialization.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.XDocument.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.XmlDocument.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.XmlSerializer.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.XPath.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0\System.Xml.XPath.XDocument.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\UIAutomationClient.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\UIAutomationClientSideProviders.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\UIAutomationProvider.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\UIAutomationTypes.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\WindowsBase.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\wpfanimatedgif\2.0.0\lib\netcoreapp3.0\WpfAnimatedGif.dll" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="F:\aistudio.-wpf.-diagram\AIStudio.Wpf.SFC\obj\Debug\net5.0-windows\GeneratedInternalTypeHelper.g.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk.WindowsDesktop" />
|
||||
</Project>
|
||||
@@ -0,0 +1,230 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<AssemblyName>AIStudio.Wpf.SFC</AssemblyName>
|
||||
<IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
|
||||
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
|
||||
<MSBuildProjectExtensionsPath>F:\aistudio.-wpf.-diagram\AIStudio.Wpf.SFC\obj\</MSBuildProjectExtensionsPath>
|
||||
<_TargetAssemblyProjectName>AIStudio.Wpf.SFC</_TargetAssemblyProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk.WindowsDesktop" />
|
||||
<PropertyGroup>
|
||||
<UseWPF>true</UseWPF>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MathParser.org-mXparser" Version="4.4.2" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\AIStudio.Wpf.DiagramDesigner\AIStudio.Wpf.DiagramDesigner.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\Accessibility.dll" />
|
||||
<ReferencePath Include="F:\aistudio.-wpf.-diagram\AIStudio.Wpf.DiagramDesigner\bin\Debug\netcoreapp3.1\AIStudio.Wpf.DiagramDesigner.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\mathparser.org-mxparser\4.4.2\lib\netcoreapp31\MathParser.org-mXparser.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.CSharp.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.VisualBasic.Core.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.VisualBasic.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.Win32.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.Win32.Registry.AccessControl.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.Win32.Registry.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.Win32.SystemEvents.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\microsoft.xaml.behaviors.wpf\1.1.31\lib\netcoreapp3.1\Microsoft.Xaml.Behaviors.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\mscorlib.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\netstandard.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\newtonsoft.json\13.0.1\lib\netstandard2.0\Newtonsoft.Json.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\PresentationCore.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\PresentationFramework.Aero.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\PresentationFramework.Aero2.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\PresentationFramework.AeroLite.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\PresentationFramework.Classic.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\PresentationFramework.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\PresentationFramework.Luna.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\PresentationFramework.Royale.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\PresentationUI.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\ReachFramework.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.AppContext.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Buffers.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.CodeDom.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Collections.Concurrent.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Collections.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Collections.Immutable.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Collections.NonGeneric.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Collections.Specialized.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ComponentModel.Annotations.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ComponentModel.DataAnnotations.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ComponentModel.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ComponentModel.EventBasedAsync.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ComponentModel.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ComponentModel.TypeConverter.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Configuration.ConfigurationManager.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Configuration.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Console.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Core.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Data.Common.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Data.DataSetExtensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Data.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Design.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.Contracts.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.Debug.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.DiagnosticSource.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.EventLog.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.FileVersionInfo.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.PerformanceCounter.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.Process.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.StackTrace.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.TextWriterTraceListener.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.Tools.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.TraceSource.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.Tracing.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.DirectoryServices.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\system.drawing.common\5.0.2\ref\netcoreapp3.0\System.Drawing.Common.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Drawing.Design.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Drawing.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Drawing.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Dynamic.Runtime.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Globalization.Calendars.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Globalization.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Globalization.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.Compression.Brotli.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.Compression.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.Compression.FileSystem.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.Compression.ZipFile.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.FileSystem.AccessControl.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.FileSystem.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.FileSystem.DriveInfo.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.FileSystem.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.FileSystem.Watcher.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.IsolatedStorage.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.MemoryMappedFiles.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.Packaging.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.Pipes.AccessControl.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.Pipes.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.UnmanagedMemoryStream.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Linq.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Linq.Expressions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Linq.Parallel.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Linq.Queryable.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Memory.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Http.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.HttpListener.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Mail.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.NameResolution.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.NetworkInformation.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Ping.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Requests.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Security.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.ServicePoint.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Sockets.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.WebClient.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.WebHeaderCollection.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.WebProxy.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.WebSockets.Client.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.WebSockets.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Numerics.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Numerics.Vectors.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ObjectModel.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Printing.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\system.reactive\5.0.0\buildTransitive\netcoreapp3.1\..\..\build\netcoreapp3.1\System.Reactive.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.DispatchProxy.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.Emit.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.Emit.ILGeneration.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.Emit.Lightweight.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.Metadata.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.TypeExtensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Resources.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Resources.Reader.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Resources.ResourceManager.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Resources.Writer.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.CompilerServices.Unsafe.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.CompilerServices.VisualC.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Handles.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.InteropServices.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.InteropServices.RuntimeInformation.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.InteropServices.WindowsRuntime.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Intrinsics.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Loader.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Numerics.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Serialization.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Serialization.Formatters.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Serialization.Json.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Serialization.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Serialization.Xml.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.AccessControl.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Claims.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.Algorithms.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.Cng.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.Csp.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.Encoding.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.Pkcs.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.ProtectedData.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.X509Certificates.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.Xml.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Permissions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Principal.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Principal.Windows.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.SecureString.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ServiceModel.Web.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ServiceProcess.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Text.Encoding.CodePages.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Text.Encoding.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Text.Encoding.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Text.Encodings.Web.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Text.Json.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Text.RegularExpressions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.AccessControl.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Channels.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Overlapped.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Tasks.Dataflow.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Tasks.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Tasks.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Tasks.Parallel.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Thread.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.ThreadPool.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Timer.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Transactions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Transactions.Local.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ValueTuple.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Web.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Web.HttpUtility.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Windows.Controls.Ribbon.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Windows.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Windows.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Windows.Forms.Design.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Windows.Forms.Design.Editors.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Windows.Forms.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Windows.Input.Manipulations.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Windows.Presentation.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xaml.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.Linq.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.ReaderWriter.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.Serialization.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.XDocument.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.XmlDocument.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.XmlSerializer.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.XPath.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.XPath.XDocument.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\UIAutomationClient.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\UIAutomationClientSideProviders.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\UIAutomationProvider.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\UIAutomationTypes.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\WindowsBase.dll" />
|
||||
<ReferencePath Include="C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\3.1.0\ref\netcoreapp3.1\WindowsFormsIntegration.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\wpfanimatedgif\2.0.0\lib\netcoreapp3.0\WpfAnimatedGif.dll" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="F:\aistudio.-wpf.-diagram\AIStudio.Wpf.SFC\obj\Debug\netcoreapp3.1\GeneratedInternalTypeHelper.g.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk.WindowsDesktop" />
|
||||
</Project>
|
||||
@@ -0,0 +1,166 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<AssemblyName>AIStudio.Wpf.SFC</AssemblyName>
|
||||
<IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
|
||||
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
|
||||
<MSBuildProjectExtensionsPath>F:\aistudio.-wpf.-diagram\AIStudio.Wpf.SFC\obj\</MSBuildProjectExtensionsPath>
|
||||
<_TargetAssemblyProjectName>AIStudio.Wpf.SFC</_TargetAssemblyProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk.WindowsDesktop" />
|
||||
<PropertyGroup>
|
||||
<UseWPF>true</UseWPF>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MathParser.org-mXparser" Version="4.4.2" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\AIStudio.Wpf.DiagramDesigner\AIStudio.Wpf.DiagramDesigner.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ReferencePath Include="F:\aistudio.-wpf.-diagram\AIStudio.Wpf.DiagramDesigner\bin\Debug\net461\AIStudio.Wpf.DiagramDesigner.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\mathparser.org-mxparser\4.4.2\lib\net461\MathParser.org-mXparser.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\Microsoft.Win32.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\microsoft.xaml.behaviors.wpf\1.1.31\lib\net45\Microsoft.Xaml.Behaviors.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\mscorlib.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netfx.force.conflicts.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netstandard.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\newtonsoft.json\13.0.1\lib\net45\Newtonsoft.Json.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\PresentationCore.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\PresentationFramework.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\svgpathproperties\1.1.2\lib\netstandard2.0\SvgPathProperties.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.AppContext.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\system.codedom\7.0.0\lib\netstandard2.0\System.CodeDom.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Collections.Concurrent.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Collections.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Collections.NonGeneric.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Collections.Specialized.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ComponentModel.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ComponentModel.EventBasedAsync.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ComponentModel.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ComponentModel.TypeConverter.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Console.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Core.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Data.Common.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Data.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.Contracts.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.Debug.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.FileVersionInfo.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.Process.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.StackTrace.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.TextWriterTraceListener.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.Tools.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.TraceSource.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.Tracing.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Drawing.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Drawing.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Dynamic.Runtime.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Globalization.Calendars.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Globalization.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Globalization.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.Compression.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.IO.Compression.FileSystem.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.Compression.ZipFile.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.FileSystem.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.FileSystem.DriveInfo.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.FileSystem.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.FileSystem.Watcher.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.IsolatedStorage.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.MemoryMappedFiles.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.Pipes.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.UnmanagedMemoryStream.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Linq.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Linq.Expressions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Linq.Parallel.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Linq.Queryable.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\system.management\7.0.0\lib\netstandard2.0\System.Management.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Http.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.NameResolution.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.NetworkInformation.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Ping.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Requests.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Security.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Sockets.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.WebHeaderCollection.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.WebSockets.Client.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.WebSockets.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Numerics.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ObjectModel.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\system.reactive\5.0.0\lib\netstandard2.0\System.Reactive.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Reflection.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Reflection.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Reflection.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Resources.Reader.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Resources.ResourceManager.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Resources.Writer.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\system.runtime.compilerservices.unsafe\4.5.3\ref\net461\System.Runtime.CompilerServices.Unsafe.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.CompilerServices.VisualC.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Handles.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.InteropServices.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.InteropServices.RuntimeInformation.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Numerics.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Runtime.Serialization.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Serialization.Formatters.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Serialization.Json.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Serialization.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Serialization.Xml.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Claims.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Cryptography.Algorithms.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Cryptography.Csp.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Cryptography.Encoding.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Cryptography.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Cryptography.X509Certificates.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Principal.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.SecureString.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Text.Encoding.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Text.Encoding.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Text.RegularExpressions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.Overlapped.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.Tasks.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\system.threading.tasks.extensions\4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.Tasks.Parallel.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.Thread.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.ThreadPool.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.Timer.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ValueTuple.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Windows.Controls.Ribbon.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Xaml.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Xml.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Xml.Linq.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.ReaderWriter.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.XDocument.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.XmlDocument.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.XmlSerializer.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.XPath.dll" />
|
||||
<ReferencePath Include="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.XPath.XDocument.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\UIAutomationClient.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\UIAutomationClientsideProviders.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\UIAutomationProvider.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\UIAutomationTypes.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\WindowsBase.dll" />
|
||||
<ReferencePath Include="C:\Users\Administrator\.nuget\packages\wpfanimatedgif\2.0.0\lib\net40\WpfAnimatedGif.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ComponentModel.Annotations.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.Emit.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.Emit.ILGeneration.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.Emit.Lightweight.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Runtime.InteropServices.WindowsRuntime.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Duplex.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Http.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.NetTcp.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Primitives.dll" />
|
||||
<ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Security.dll" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="F:\aistudio.-wpf.-diagram\AIStudio.Wpf.SFC\obj\Debug\net461\GeneratedInternalTypeHelper.g.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Analyzer Include="C:\Users\Administrator\.nuget\packages\wpfanalyzers\3.5.4\analyzers\dotnet\cs\Gu.Roslyn.Extensions.dll" />
|
||||
<Analyzer Include="C:\Users\Administrator\.nuget\packages\wpfanalyzers\3.5.4\analyzers\dotnet\cs\WpfAnalyzers.dll" />
|
||||
</ItemGroup>
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk.WindowsDesktop" />
|
||||
</Project>
|
||||
31
Extensions/AIStudio.Wpf.SFC/LinkPoint.cs
Normal file
31
Extensions/AIStudio.Wpf.SFC/LinkPoint.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
|
||||
namespace AIStudio.Wpf.SFC
|
||||
{
|
||||
public class LinkPoint: BindableBase
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
||||
private string _name;
|
||||
public string Name
|
||||
{
|
||||
get { return _name; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _name, value);
|
||||
}
|
||||
}
|
||||
public string Despcription { get; set; }
|
||||
|
||||
private double _value;
|
||||
public double Value
|
||||
{
|
||||
get { return _value; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _value, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
82
Extensions/AIStudio.Wpf.SFC/Models/SFCNodeDesignerItem.cs
Normal file
82
Extensions/AIStudio.Wpf.SFC/Models/SFCNodeDesignerItem.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using AIStudio.Wpf.SFC.ViewModels;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
using System.Xml.Serialization;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.Models
|
||||
{
|
||||
public class SFCNodeDesignerItem : DesignerItemBase
|
||||
{
|
||||
public SFCNodeDesignerItem()
|
||||
{
|
||||
|
||||
}
|
||||
public SFCNodeDesignerItem(SFCNode item) : base(item)
|
||||
{
|
||||
this.Connectors = new List<FullyCreatedConnectorInfoItem>();
|
||||
foreach (var fullyCreatedConnectorInfo in item.Connectors)
|
||||
{
|
||||
FullyCreatedConnectorInfoItem connector = new FullyCreatedConnectorInfoItem(fullyCreatedConnectorInfo);
|
||||
|
||||
this.Connectors.Add(connector);
|
||||
}
|
||||
Kind = item.Kind;
|
||||
Expression = item.Expression;
|
||||
|
||||
if (item is SFCActionNode actionNode)
|
||||
{
|
||||
LinkPoints = new List<LinkPoint> { actionNode.LinkPoint };
|
||||
}
|
||||
else if (item is SFCConditionNode sFCConditionNode)
|
||||
{
|
||||
LinkPoints = new List<LinkPoint>(sFCConditionNode.LinkPoint);
|
||||
}
|
||||
else if (item is Simulate_SolenoidViewModel simulate_SolenoidViewModel)
|
||||
{
|
||||
LinkPoints = new List<LinkPoint> { simulate_SolenoidViewModel.DILinkPoint, simulate_SolenoidViewModel.DOLinkPoint };
|
||||
}
|
||||
else if (item is Simulate_StartViewModel simulate_StartViewModel)
|
||||
{
|
||||
LinkPoints = new List<LinkPoint> { simulate_StartViewModel.LinkPoint };
|
||||
}
|
||||
else if (item is Simulate_TankViewModel simulate_TankViewModel)
|
||||
{
|
||||
LinkPoints = new List<LinkPoint> { simulate_TankViewModel.LinkPoint };
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[XmlArray]
|
||||
public List<FullyCreatedConnectorInfoItem> Connectors { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public SFCNodeKinds Kind { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public string Expression { get; set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public List<LinkPoint> LinkPoints { get; set; } = new List<LinkPoint>();
|
||||
|
||||
[JsonIgnore]
|
||||
[XmlElement("LinkPoint")]
|
||||
public string XmlLinkPoints
|
||||
{
|
||||
get
|
||||
{
|
||||
return SFCService.SerializeLinkPoint(LinkPoints);
|
||||
}
|
||||
set
|
||||
{
|
||||
LinkPoints = SFCService.DeserializeLinkPoint(value);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
21
Extensions/AIStudio.Wpf.SFC/Models/SFCToolBoxData.cs
Normal file
21
Extensions/AIStudio.Wpf.SFC/Models/SFCToolBoxData.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Windows.Media;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.Models
|
||||
{
|
||||
public class SFCToolBoxData : ToolBoxData
|
||||
{
|
||||
public SFCNodeKinds Kind
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
public SFCToolBoxData(SFCNodeKinds kind, Type type, double width = 32, double height = 32) : base(null, null, type, width, height)
|
||||
{
|
||||
Kind = kind;
|
||||
ColorViewModel.LineColor.Color = Colors.Gray;
|
||||
ColorViewModel.FillColor.Color = Colors.Blue;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
908
Extensions/AIStudio.Wpf.SFC/README.txt
Normal file
908
Extensions/AIStudio.Wpf.SFC/README.txt
Normal file
@@ -0,0 +1,908 @@
|
||||
mXparser - Math Parser Java Android C# .NET (CLS) Library
|
||||
A flexible mathematical expressions parser for JAVA and C# .NET (CLS)
|
||||
|
||||
*** Donation through PayPal ***
|
||||
*** Did you find the software useful? Please consider donation :-) ***
|
||||
Developing and maintaining MathParser.org-mXparser takes a lot of time,
|
||||
mainly my free time. I hope it saved some of your time. If yes, then
|
||||
buy me a cup coffee :-)
|
||||
*** http://mathparser.org/donate/ ***
|
||||
|
||||
*** Scalar Scientific Calculator, Charts & Scripts ***
|
||||
*** https://play.google.com/store/apps/details?id=org.mathparser.scalar.lite ***
|
||||
*** https://play.google.com/store/apps/details?id=org.mathparser.scalar.pro ***
|
||||
*** http://scalarmath.org/ ***
|
||||
|
||||
v.4.4.2 (2020-01-25): Gemoni - bugs fixing
|
||||
|
||||
* #200 System.OutOfMemoryException: Array dimensions exceeded supported range (https://github.com/mariuszgromada/MathParser.org-mXparser/issues/200)
|
||||
* #199 cancelCurrentCalculation does not stop for some expressions (https://github.com/mariuszgromada/MathParser.org-mXparser/issues/199)
|
||||
|
||||
v.4.4.0 (2020-01-14): Gemoni - API improvement
|
||||
|
||||
* Canonical rounding: Bye bye floating point arithmetic artifacts
|
||||
|
||||
ULP rounding is switched of as a default setting (can be enabled / disabled). As a default canonical rounding is switched on (can be disabled / enabled). New methods:
|
||||
|
||||
- mXparser.enableCanonicalRounding()
|
||||
- mXparser.disableCanonicalRounding()
|
||||
- mXparser.setCanonicalRounding(boolean)
|
||||
- mXparser.checkIfCanonicalRounding
|
||||
|
||||
Example 1
|
||||
|
||||
Expression e = new Expression("0.1 + 0.1 + 0.1");
|
||||
System.out.println("Pure Java : 0.1 + 0.1 + 0.1 = " + (0.1 + 0.1 + 0.1));
|
||||
System.out.println("mXparser : 0.1 + 0.1 + 0.1 = " + e.calculate());
|
||||
mXparser.disableCanonicalRounding();
|
||||
System.out.println("mXparser canonical off: 0.1 + 0.1 + 0.1 = " + e.calculate());
|
||||
===========
|
||||
Pure Java : 0.1 + 0.1 + 0.1 = 0.30000000000000004
|
||||
mXparser : 0.1 + 0.1 + 0.1 = 0.3
|
||||
mXparser canonical off: 0.1 + 0.1 + 0.1 = 0.30000000000000004
|
||||
|
||||
Example 2
|
||||
|
||||
Expression e = new Expression("(-1/6.2)^(-3)");
|
||||
System.out.println("Pure Java : (-1/6.2)^(-3) = " + Math.pow(-1/6.2, -3));
|
||||
System.out.println("mXparser : (-1/6.2)^(-3) = " + e.calculate());
|
||||
mXparser.disableCanonicalRounding();
|
||||
System.out.println("mXparser canonical off: (-1/6.2)^(-3) = " + e.calculate());
|
||||
===========
|
||||
Pure Java : (-1/6.2)^(-3) = -238.32800000000003
|
||||
mXparser : (-1/6.2)^(-3) = -238.328
|
||||
mXparser canonical off: (-1/6.2)^(-3) = -238.32800000000003
|
||||
|
||||
* Argument extension - analogy to Function Extension
|
||||
|
||||
Now you can define user arguments implementing your own algorithm in source code.
|
||||
|
||||
Example
|
||||
|
||||
class PiMultArgExt implements ArgumentExtension {
|
||||
private int multiple = 0;
|
||||
public double getArgumentValue() {
|
||||
multiple++;
|
||||
return MathConstants.PI * multiple;
|
||||
}
|
||||
public PiMultArgExt clone() {
|
||||
return new PiMultArgExt();
|
||||
}
|
||||
}
|
||||
|
||||
Argument x = new Argument("x", new PiMultArgExt());
|
||||
Expression e = new Expression("x/pi", x);
|
||||
System.out.println("1st calc exec: " + e.calculate());
|
||||
System.out.println("2nd calc exec: " + e.calculate());
|
||||
System.out.println("3rd calc exec: " + e.calculate());
|
||||
===========
|
||||
1st calc exec: 1.0
|
||||
2nd calc exec: 2.0
|
||||
3rd calc exec: 3.0
|
||||
|
||||
* Bugs fixed
|
||||
|
||||
- #168, #18 Exact special trigonometric values
|
||||
- #192, #178 Logical operators precedence
|
||||
- #172 "x + 4 * - 2"
|
||||
|
||||
v.4.3.3 (2019-01-27): Bug fix
|
||||
|
||||
* No Operator between Argumant and Parentheses #170 https://github.com/mariuszgromada/MathParser.org-mXparser/issues/170
|
||||
|
||||
v.4.3.2 (2019-01-25): Nuget package fix
|
||||
|
||||
* Could not load file or assembly MathParser.org-mXparser #171 https://github.com/mariuszgromada/MathParser.org-mXparser/issues/171
|
||||
|
||||
v.4.3.0 (2019-01-19): Caprica - API improvement
|
||||
|
||||
* Cancel ongoing calculation
|
||||
- mXparser.cancelCurrentCalculation()
|
||||
- mXparser.resetCancelCurrentCalculationFlag();
|
||||
|
||||
* Set default options
|
||||
- mXparser.setDefaultOptions()
|
||||
|
||||
* User defined constants / units
|
||||
- constant name can be surrounded by square bracket, i.e. [const]
|
||||
- Expression.getMissingUserDefinedUnits()
|
||||
|
||||
* Bug fixing
|
||||
- #153, #162 Endless Loop
|
||||
- #164 PrimeCache out of memory - handling error / exception
|
||||
|
||||
v.4.2.0 (2018-07-15): Aquaria - Major release
|
||||
|
||||
* Broader types of decimal number literals
|
||||
|
||||
- No leading zero, i.e.: .2, .312, -.21
|
||||
|
||||
* Fraction as number literals
|
||||
|
||||
- 1_2 is recognized as 1/2
|
||||
- 2_3_4 is recognized as 2 + 3/4
|
||||
- 17_5 is recognized as 17/5
|
||||
- Just use Expression e = new Expression("2_3_2 + 1_2")
|
||||
|
||||
* Double to fraction conversion
|
||||
|
||||
- mXparser.toFraction(double value) - double[]
|
||||
- mXparser.toMixedFraction(double value) - double[]
|
||||
- mXparser.fractionToString(double[] fraction) - String
|
||||
- mXparser.toFractionString(double value) - String
|
||||
- mXparser.toMixedFractionString(double value) - String
|
||||
|
||||
* Disable / enable almost int rounding
|
||||
|
||||
- mXparser.enableAlmostIntRounding()
|
||||
- mXparser.disableAlmostIntRounding()
|
||||
- mXparser.checkIfAlmostIntRounding()
|
||||
- mXparser.getEpsilon()
|
||||
- mXparser.setEpsilon()
|
||||
|
||||
* Variadic user defined functions
|
||||
|
||||
- Function f = new Function("f(...) = sum(i, 1, [npar], par(i)^2 )");
|
||||
- [npar] - number of available parameters
|
||||
- par(i) - parameter value
|
||||
- body extended is supported
|
||||
|
||||
* New special functions
|
||||
|
||||
- Gamma(x) - Gamma special function Γ(s)
|
||||
- LambW0(x) - Lambert-W special function, principal branch 0, also called the omega function or product logarithm
|
||||
- LambW1(x) - Lambert-W special function, branch -1, also called the omega function or product logarithm
|
||||
- sgnGamma(x) - Signum of Gamma special function, Γ(s)
|
||||
- logGamma(x) - Log Gamma special function, lnΓ(s)
|
||||
- diGamma(x) - Digamma function as the logarithmic derivative of the Gamma special function, ψ(x)
|
||||
- GammaL(s,x) - Lower incomplete gamma special function, γ(s,x)
|
||||
- GammaU(s,x) - Upper incomplete Gamma special function, Γ(s,x)
|
||||
- GammaP(s,x), GammaRegL(s,x) - Lower regularized P gamma special function, P(s,x)
|
||||
- GammaQ(s,x), GammaRegU(s,x) - Upper regularized Q Gamma special function, Q(s,x)
|
||||
- Beta(x,y) - The Beta special function B(x,y), also called the Euler integral of the first kind
|
||||
- logBeta(x,y) - The Log Beta special function ln B(x,y), also called the Log Euler integral of the first kind, ln B(x,y)
|
||||
- BetaInc(x,a,b) - The incomplete beta special function B(x; a, b), also called the incomplete Euler integral of the first kind
|
||||
- BetaI(x,a,b), BetaReg(x,a,b) - The regularized incomplete beta (or regularized beta) special function I(x; a, b), also called the regularized incomplete Euler integral of the first kind
|
||||
|
||||
* Degrees / Radians mode for trigonometrix
|
||||
|
||||
- mXparser.setDegreesMode()
|
||||
- mXparser.setRadiansMode()
|
||||
- mXparser.checkIfDegreesMode()
|
||||
- mXparser.checkIfRadiansMode()
|
||||
|
||||
* New operator - Tetration
|
||||
|
||||
- a^^n is recognized as a^a^a...^a - n times
|
||||
|
||||
* Bugs fixed
|
||||
|
||||
- Argument.checkSyntax() https://github.com/mariuszgromada/MathParser.org-mXparser/issues/145
|
||||
- Endless loop with factorial https://github.com/mariuszgromada/MathParser.org-mXparser/issues/136
|
||||
- StringIndexOutOfBoundsException asking for tokens of empty expression https://github.com/mariuszgromada/MathParser.org-mXparser/issues/135
|
||||
- Function.checkSyntax() always returns true https://github.com/mariuszgromada/MathParser.org-mXparser/issues/111
|
||||
- Syntax for unary complement https://github.com/mariuszgromada/MathParser.org-mXparser/issues/114
|
||||
- Iterative operators descending sequence https://github.com/mariuszgromada/MathParser.org-mXparser/issues/119
|
||||
- checkSyntax() bug https://github.com/mariuszgromada/MathParser.org-mXparser/issues/80
|
||||
- Very very very long processing time of gcd https://github.com/mariuszgromada/MathParser.org-mXparser/issues/91
|
||||
- Priorities of "if", "iff" and other calculus operations https://github.com/mariuszgromada/MathParser.org-mXparser/issues/82
|
||||
|
||||
* Other framework support (binaries)
|
||||
|
||||
- .NET Core: 2.0, 2.1
|
||||
- .NET Standard: 2.0
|
||||
- .NET Framework: 4.7, 4.7.2
|
||||
- JAVA: 1.9, 1.10
|
||||
|
||||
* New regression tests - current tests coverage:
|
||||
|
||||
- 1155 expression related tests
|
||||
- 245 syntax related tests
|
||||
- 65 API related tests
|
||||
- 20 performance tests
|
||||
|
||||
https://github.com/mariuszgromada/MathParser.org-mXparser/milestone/2
|
||||
|
||||
v.4.1.1 (2017-07-28): Aeries - checkSyntax() bug fixing
|
||||
|
||||
* Fixed: checkSyntax() returns true "already checked no errors" #75
|
||||
https://github.com/mariuszgromada/MathParser.org-mXparser/issues/75
|
||||
|
||||
v.4.1.0 (2017-06-30): Aeries
|
||||
|
||||
* Various numeral systems
|
||||
|
||||
- Binary numbers literals
|
||||
- Octal numbers literals
|
||||
- Hexadecimal numbers literals
|
||||
- Number literals with base between 1 and 36
|
||||
- base(b, digit1, ..., digitn) function to generate numbers in any given base
|
||||
|
||||
* Leading zeros support
|
||||
|
||||
- 0001
|
||||
- 0001.12e10
|
||||
- ...
|
||||
|
||||
* Working with digits
|
||||
|
||||
- ndig(number, targetBase) function - number of digits - specified numeral system base
|
||||
- ndig10(number) function - number of digits - base 10
|
||||
- dig(number, targetBase, position) - digit at position - specified numeral system base
|
||||
- dig10(number, position) - digit at position - base 10
|
||||
|
||||
* Prime factorization
|
||||
|
||||
- nfact(number) - number of prime factors
|
||||
- factval(number, factorId) - factor value
|
||||
- factexp(number, factorId) - factor exponent
|
||||
|
||||
* Not-a-Number
|
||||
|
||||
- [NaN] symbol
|
||||
- isNaN(x) function
|
||||
- coalesce(a1,...,an) function - first non-NaN value
|
||||
|
||||
* Statistics
|
||||
|
||||
- med(a1, a2, ..., an) - sample median
|
||||
- mode(a1, a2, ..., an) - sample mode
|
||||
|
||||
* Boolean logic
|
||||
|
||||
- [true] symbol
|
||||
- [false] symbol
|
||||
- or(a1,...an) - variadic or
|
||||
- and(a1,...an) - variadic and
|
||||
- xor(a1,...an) - variadic xor
|
||||
|
||||
* Other functions
|
||||
|
||||
- root(order, number) - root + support for negative numbers and odd-order
|
||||
- arcsec(x) - inverse trigonometric secant
|
||||
- arccsc(x) - inverse trigonometric cosecant
|
||||
- ndist(v1, v2, ... vn) - number of distinct values
|
||||
- argmin(v1, v2, ... vn) - index of minimum
|
||||
- argmax(v1, v2, ... vn) - index of maximum
|
||||
|
||||
* New operator
|
||||
|
||||
- % support (i.e. 2%, x%)
|
||||
|
||||
* Calculus
|
||||
|
||||
- der( f(x), x, x0 ) - alternative syntax for derivative (no need to define x as argument)
|
||||
|
||||
* Built-in tokens
|
||||
|
||||
- Option to override built-in tokens
|
||||
- Possibility to remove built-in tokens
|
||||
- Possibility to change built-in token
|
||||
- Key words: syntax + since
|
||||
- Get key words list
|
||||
|
||||
* Working with expression tokens
|
||||
|
||||
- Get missing user defined arguments
|
||||
- Get missing user defined functions
|
||||
|
||||
* Bugs fixed
|
||||
|
||||
- Dependent arguments and StackOverflowError #35 (introduction of recursion calls counter)
|
||||
- FunctionExtension.calculate #32
|
||||
|
||||
* New regression tests - current tests coverage:
|
||||
|
||||
- 829 expression related tests
|
||||
- 207 syntax related tests
|
||||
- 51 api related tests
|
||||
- 20 performance tests
|
||||
|
||||
https://github.com/mariuszgromada/MathParser.org-mXparser/milestone/1
|
||||
|
||||
|
||||
v.4.0.0.2 (2017-04-17): Port to various .NET frameworks
|
||||
- .NET Core
|
||||
- .NET Standard
|
||||
- .NET PCL
|
||||
- Xamarin.Android
|
||||
- Xamarin.iOS
|
||||
|
||||
v.4.0.0 (2017-03-27): Major update
|
||||
- Bitwise Operators
|
||||
- Numbers in scientific notation
|
||||
- Units, Physical & Astronomical Constants,
|
||||
- Equations solving via finding function root
|
||||
- Better tokens handling
|
||||
- Function Extensions - possibility of using your own implementation
|
||||
- Bugs fixed
|
||||
|
||||
* Bitwise Operators
|
||||
|
||||
- @~ Bitwise unary complement
|
||||
- @& Bitwise AND
|
||||
- @^ Bitwise exclusive OR
|
||||
- @| Bitwise inclusive OR
|
||||
- @<< Signed left shift
|
||||
- @>> Signed right shift
|
||||
|
||||
* Numbers in scientific notation
|
||||
|
||||
- 1.2e10
|
||||
- 1.2e-10
|
||||
- 1.2e+10
|
||||
- 1.2E10
|
||||
- 1.2E-10
|
||||
- 1.2E+10
|
||||
- ...
|
||||
|
||||
* Units
|
||||
|
||||
- [%] <Ratio, Fraction> Percentage = 0.01
|
||||
- [%%] <Ratio, Fraction> Promil, Per mille = 0.001
|
||||
- [Y] <Metric prefix> Septillion / Yotta = 10^24
|
||||
- [sept] <Metric prefix> Septillion / Yotta = 10^24
|
||||
- [Z] <Metric prefix> Sextillion / Zetta = 10^21
|
||||
- [sext] <Metric prefix> Sextillion / Zetta = 10^21
|
||||
- [E] <Metric prefix> Quintillion / Exa = 10^18
|
||||
- [quint] <Metric prefix> Quintillion / Exa = 10^18
|
||||
- [P] <Metric prefix> Quadrillion / Peta = 10^15
|
||||
- [quad] <Metric prefix> Quadrillion / Peta = 10^15
|
||||
- [T] <Metric prefix> Trillion / Tera = 10^12
|
||||
- [tril] <Metric prefix> Trillion / Tera = 10^12
|
||||
- [G] <Metric prefix> Billion / Giga = 10^9
|
||||
- [bil] <Metric prefix> Billion / Giga = 10^9
|
||||
- [M] <Metric prefix> Million / Mega = 10^6
|
||||
- [mil] <Metric prefix> Million / Mega = 10^6
|
||||
- [k] <Metric prefix> Thousand / Kilo = 10^3
|
||||
- [th] <Metric prefix> Thousand / Kilo = 10^3
|
||||
- [hecto] <Metric prefix> Hundred / Hecto = 10^2
|
||||
- [hund] <Metric prefix> Hundred / Hecto = 10^2
|
||||
- [deca] <Metric prefix> Ten / Deca = 10
|
||||
- [ten] <Metric prefix> Ten / Deca = 10
|
||||
- [deci] <Metric prefix> Tenth / Deci = 0.1
|
||||
- [centi] <Metric prefix> Hundredth / Centi = 0.01
|
||||
- [milli] <Metric prefix> Thousandth / Milli = 0.001
|
||||
- [mic] <Metric prefix> Millionth / Micro = 10^-6
|
||||
- [n] <Metric prefix> Billionth / Nano = 10^-9
|
||||
- [p] <Metric prefix> Trillionth / Pico = 10^-12
|
||||
- [f] <Metric prefix> Quadrillionth / Femto = 10^-15
|
||||
- [a] <Metric prefix> Quintillionth / Atoo = 10^-18
|
||||
- [z] <Metric prefix> Sextillionth / Zepto = 10^-21
|
||||
- [y] <Metric prefix> Septillionth / Yocto = 10^-24
|
||||
- [m] <Unit of length> Metre / Meter (m=1)
|
||||
- [km] <Unit of length> Kilometre / Kilometer (m=1)
|
||||
- [cm] <Unit of length> Centimetre / Centimeter (m=1)
|
||||
- [mm] <Unit of length> Millimetre / Millimeter (m=1)
|
||||
- [inch] <Unit of length> Inch (m=1)
|
||||
- [yd] <Unit of length> Yard (m=1)
|
||||
- [ft] <Unit of length> Feet (m=1)
|
||||
- [mile] <Unit of length> Mile (m=1)
|
||||
- [nmi] <Unit of length> Nautical mile (m=1)
|
||||
- [m2] <Unit of area> Square metre / Square meter (m=
|
||||
- [cm2] <Unit of area> Square centimetre / Square cent
|
||||
- [mm2] <Unit of area> Square millimetre / Square mill
|
||||
- [are] <Unit of area> Are (m=1)
|
||||
- [ha] <Unit of area> Hectare (m=1)
|
||||
- [acre] <Unit of area> Acre (m=1)
|
||||
- [km2] <Unit of area> Square kilometre / Square kilom
|
||||
- [mm3] <Unit of volume> Cubic millimetre / Cubic mill
|
||||
- [cm3] <Unit of volume> Cubic centimetre / Cubic cent
|
||||
- [m3] <Unit of volume> Cubic metre / Cubic meter (m=
|
||||
- [km3] <Unit of volume> Cubic kilometre / Cubic kilom
|
||||
- [ml] <Unit of volume> Millilitre / Milliliter (m=1)
|
||||
- [l] <Unit of volume> Litre / Liter (m=1)
|
||||
- [gall] <Unit of volume> Gallon (m=1)
|
||||
- [pint] <Unit of volume> Pint (m=1)
|
||||
- [s] <Unit of time> Second (s=1)
|
||||
- [ms] <Unit of time> Millisecond (s=1)
|
||||
- [min] <Unit of time> Minute (s=1)
|
||||
- [h] <Unit of time> Hour (s=1)
|
||||
- [day] <Unit of time> Day (s=1)
|
||||
- [week] <Unit of time> Week (s=1)
|
||||
- [yearj] <Unit of time> Julian year = 365.25 days (s=1)
|
||||
- [kg] <Unit of mass> Kilogram (kg=1)
|
||||
- [gr] <Unit of mass> Gram (kg=1)
|
||||
- [mg] <Unit of mass> Milligram (kg=1)
|
||||
- [dag] <Unit of mass> Decagram (kg=1)
|
||||
- [t] <Unit of mass> Tonne (kg=1)
|
||||
- [oz] <Unit of mass> Ounce (kg=1)
|
||||
- [lb] <Unit of mass> Pound (kg=1)
|
||||
- [b] <Unit of information> Bit (bit=1)
|
||||
- [kb] <Unit of information> Kilobit (bit=1)
|
||||
- [Mb] <Unit of information> Megabit (bit=1)
|
||||
- [Gb] <Unit of information> Gigabit (bit=1)
|
||||
- [Tb] <Unit of information> Terabit (bit=1)
|
||||
- [Pb] <Unit of information> Petabit (bit=1)
|
||||
- [Eb] <Unit of information> Exabit (bit=1)
|
||||
- [Zb] <Unit of information> Zettabit (bit=1)
|
||||
- [Yb] <Unit of information> Yottabit (bit=1)
|
||||
- [B] <Unit of information> Byte (bit=1)
|
||||
- [kB] <Unit of information> Kilobyte (bit=1)
|
||||
- [MB] <Unit of information> Megabyte (bit=1)
|
||||
- [GB] <Unit of information> Gigabyte (bit=1)
|
||||
- [TB] <Unit of information> Terabyte (bit=1)
|
||||
- [PB] <Unit of information> Petabyte (bit=1)
|
||||
- [EB] <Unit of information> Exabyte (bit=1)
|
||||
- [ZB] <Unit of information> Zettabyte (bit=1)
|
||||
- [YB] <Unit of information> Yottabyte (bit=1)
|
||||
- [J] <Unit of energy> Joule (m=1, kg=1, s=1)
|
||||
- [eV] <Unit of energy> Electronovolt (m=1, kg=1, s=1
|
||||
- [keV] <Unit of energy> Kiloelectronovolt (m=1, kg=1,
|
||||
- [MeV] <Unit of energy> Megaelectronovolt (m=1, kg=1,
|
||||
- [GeV] <Unit of energy> Gigaelectronovolt (m=1, kg=1,
|
||||
- [TeV] <Unit of energy> Teraelectronovolt (m=1, kg=1,
|
||||
- [m/s] <Unit of speed> Metre / Meter per second (m=1,
|
||||
- [km/h] <Unit of speed> Kilometre / Kilometer per hour
|
||||
- [mi/h] <Unit of speed> Mile per hour (m=1, s=1)
|
||||
- [knot] <Unit of speed> Knot (m=1, s=1)
|
||||
- [m/s2] <Unit of acceleration> Metre / Meter per squar
|
||||
- [km/h2] <Unit of acceleration> Kilometre / Kilometer p
|
||||
- [mi/h2] <Unit of acceleration> Mile per square hour (m
|
||||
- [rad] <Unit of angle> Radian (rad=1)
|
||||
- [deg] <Unit of angle> Degree of arc (rad=1)
|
||||
- ['] <Unit of angle> Minute of arc (rad=1)
|
||||
- [''] <Unit of angle> Second of arc (rad=1)
|
||||
|
||||
* Physical Constants
|
||||
|
||||
- [c] Light speed in vacuum [m/s] (m=1, s=1)
|
||||
- [G.] Gravitational constant (m=1, kg=1, s=1)]
|
||||
- [g] Gravitational acceleration on Earth [m/s^2] (m=1, s=1)
|
||||
- [hP] Planck constant (m=1, kg=1, s=1)
|
||||
- [h-] Reduced Planck constant / Dirac constant (m=1, kg=1, s=1)]
|
||||
- [lP] Planck length [m] (m=1)
|
||||
- [mP] Planck mass [kg] (kg=1)
|
||||
- [tP] Planck time [s] (s=1)
|
||||
|
||||
* Astronomical Constants
|
||||
|
||||
- [ly] Light year [m] (m=1)
|
||||
- [au] Astronomical unit [m] (m=1)
|
||||
- [pc] Parsec [m] (m=1)
|
||||
- [kpc] Kiloparsec [m] (m=1)
|
||||
- [Earth-R-eq] Earth equatorial radius [m] (m=1)
|
||||
- [Earth-R-po] Earth polar radius [m] (m=1)
|
||||
- [Earth-R] Earth mean radius (m=1)
|
||||
- [Earth-M] Earth mass [kg] (kg=1)
|
||||
- [Earth-D] Earth-Sun distance - semi major axis [m] (m=1)
|
||||
- [Moon-R] Moon mean radius [m] (m=1)
|
||||
- [Moon-M] Moon mass [kg] (kg=1)
|
||||
- [Moon-D] Moon-Earth distance - semi major axis [m] (m=1)
|
||||
- [Solar-R] Solar mean radius [m] (m=1)
|
||||
- [Solar-M] Solar mass [kg] (kg=1)
|
||||
- [Mercury-R] Mercury mean radius [m] (m=1)
|
||||
- [Mercury-M] Mercury mass [kg] (kg=1)
|
||||
- [Mercury-D] Mercury-Sun distance - semi major axis [m] (m=1)
|
||||
- [Venus-R] Venus mean radius [m] (m=1)
|
||||
- [Venus-M] Venus mass [kg] (kg=1)
|
||||
- [Venus-D] Venus-Sun distance - semi major axis [m] (m=1)
|
||||
- [Mars-R] Mars mean radius [m] (m=1)
|
||||
- [Mars-M] Mars mass [kg] (kg=1)
|
||||
- [Mars-D] Mars-Sun distance - semi major axis [m] (m=1)
|
||||
- [Jupiter-R] Jupiter mean radius [m] (m=1)
|
||||
- [Jupiter-M] Jupiter mass [kg] (kg=1)
|
||||
- [Jupiter-D] Jupiter-Sun distance - semi major axis [m] (m=1)
|
||||
- [Saturn-R] Saturn mean radius [m] (m=1)
|
||||
- [Saturn-M] Saturn mass [kg] (kg=1)
|
||||
- [Saturn-D] Saturn-Sun distance - semi major axis [m] (m=1)
|
||||
- [Uranus-R] Uranus mean radius [m] (m=1)
|
||||
- [Uranus-M] Uranus mass [kg] (kg=1)
|
||||
- [Uranus-D] Uranus-Sun distance - semi major axis [m] (m=1)
|
||||
- [Neptune-R] Neptune mean radius [m] (m=1)
|
||||
- [Neptune-M] Neptune mass [kg] (kg=1)
|
||||
- [Neptune-D] Neptune-Sun distance - semi major axis [m] (m=1)
|
||||
|
||||
* Equations solving via finding function root
|
||||
|
||||
- solve( f(x), x, a, b ) - solving f(x) = 0
|
||||
|
||||
* Function Extensions
|
||||
|
||||
- FileExtension interface + new constructor in Function class
|
||||
|
||||
* Better tokens handling
|
||||
|
||||
- Better handling of invalid / not known tokens
|
||||
- Looks like functionality
|
||||
|
||||
* Bugs fixed
|
||||
|
||||
- Exception thrown by getCopyOfInitialTokens() #21
|
||||
- System.format.exception - system.IO.EndOfStreamException #20
|
||||
- Expression relating factorial "!" cause the application to hang #17
|
||||
- Negative sign missing when is right of operators #16
|
||||
- Negative in if statement #12
|
||||
- Speed when debugging #11
|
||||
- User defined arguments ending in e #10
|
||||
|
||||
* New regression tests - current tests coverage:
|
||||
|
||||
- 622 expression related tests
|
||||
- 114 syntax related tests
|
||||
- 30 api related tests
|
||||
- 20 performance tests
|
||||
|
||||
|
||||
v.3.0.0 (2016-05-16): Major update
|
||||
Random numbers, Probability distributions & Random variables
|
||||
Double precision rounding, ULP rounding, epsilon comparison
|
||||
New special functions
|
||||
|
||||
* .NET: since v.3.0.0 dll I started to use different private key for signing.
|
||||
|
||||
* Random numbers - new functions
|
||||
- rUni(a, b) - Random number from uniform continuous distribution U(a,b)
|
||||
- rUnid(a, b) - Random number from uniform discrete distribution U{a,b}
|
||||
- rNor(m, s) - Random number from normal distribution N(m,s)
|
||||
- rList(a1, a2, ..., an) - Random number from given list of numbers
|
||||
|
||||
* Probability distributions - new functions
|
||||
- pUni(x, a, b) - Probability distribution function - Uniform continuous distribution U(a,b)
|
||||
- cUni(x, a, b) - Cumulative distribution function - Uniform continuous distribution U(a,b)
|
||||
- qUni(q, a, b) - Quantile function (inverse cumulative distribution function) -
|
||||
Uniform continuous distribution U(a,b)
|
||||
- pNor(x, a, b) - Probability distribution function - Normal distribution N(m,s)
|
||||
- cNor(x, a, b) - Cumulative distribution function - Normal distribution N(m,s)
|
||||
- qNor(q, m, s) - Quantile function (inverse cumulative distribution function) -
|
||||
Normal distribution N(m,s)
|
||||
|
||||
* Random variables (predefined) - acting as random constant (no parameters)
|
||||
|
||||
- [Uni] - Random variable - Uniform continuous distribution U(0,1)
|
||||
|
||||
- [Int] - Random variable - random integer
|
||||
- [Int1] - Random variable - random integer - Uniform discrete distribution U{-10^1, 10^1}
|
||||
- [Int2] - Random variable - random integer - Uniform discrete distribution U{-10^2, 10^2}
|
||||
- [Int3] - Random variable - random integer - Uniform discrete distribution U{-10^3, 10^3}
|
||||
- [Int4] - Random variable - random integer - Uniform discrete distribution U{-10^4, 10^4}
|
||||
- [Int5] - Random variable - random integer - Uniform discrete distribution U{-10^5, 10^5}
|
||||
- [Int6] - Random variable - random integer - Uniform discrete distribution U{-10^6, 10^6}
|
||||
- [Int7] - Random variable - random integer - Uniform discrete distribution U{-10^7, 10^7}
|
||||
- [Int8] - Random variable - random integer - Uniform discrete distribution U{-10^8, 10^8}
|
||||
- [Int9] - Random variable - random integer - Uniform discrete distribution U{-10^9, 10^9}
|
||||
|
||||
- [nat] - Random variable - random natural number including 0
|
||||
|
||||
- [nat1] - Random variable - random natural number including 0 - Uniform discrete distribution U{0, 10^1}
|
||||
- [nat2] - Random variable - random natural number including 0 - Uniform discrete distribution U{0, 10^2}
|
||||
- [nat3] - Random variable - random natural number including 0 - Uniform discrete distribution U{0, 10^3}
|
||||
- [nat4] - Random variable - random natural number including 0 - Uniform discrete distribution U{0, 10^4}
|
||||
- [nat5] - Random variable - random natural number including 0 - Uniform discrete distribution U{0, 10^5}
|
||||
- [nat6] - Random variable - random natural number including 0 - Uniform discrete distribution U{0, 10^6}
|
||||
- [nat7] - Random variable - random natural number including 0 - Uniform discrete distribution U{0, 10^7}
|
||||
- [nat8] - Random variable - random natural number including 0 - Uniform discrete distribution U{0, 10^8}
|
||||
- [nat9] - Random variable - random natural number including 0 - Uniform discrete distribution U{0, 10^9}
|
||||
|
||||
- [Nat] - Random variable - random natural number
|
||||
|
||||
- [Nat1] - Random variable - random natural number - Uniform discrete distribution U{1, 10^1}
|
||||
- [Nat2] - Random variable - random natural number - Uniform discrete distribution U{1, 10^2}
|
||||
- [Nat3] - Random variable - random natural number - Uniform discrete distribution U{1, 10^3}
|
||||
- [Nat4] - Random variable - random natural number - Uniform discrete distribution U{1, 10^4}
|
||||
- [Nat5] - Random variable - random natural number - Uniform discrete distribution U{1, 10^5}
|
||||
- [Nat6] - Random variable - random natural number - Uniform discrete distribution U{1, 10^6}
|
||||
- [Nat7] - Random variable - random natural number - Uniform discrete distribution U{1, 10^7}
|
||||
- [Nat8] - Random variable - random natural number - Uniform discrete distribution U{1, 10^8}
|
||||
- [Nat9] - Random variable - random natural number - Uniform discrete distribution U{1, 10^9}
|
||||
|
||||
- [Nor] - Random variable - Normal distribution N(0,1)
|
||||
|
||||
* Double precision rounding
|
||||
- round(value, places) - decimal rounding (half-up)
|
||||
|
||||
* New special functions
|
||||
- erf(x) - Gauss error function
|
||||
- erfc(x) - Gauss complementary error function
|
||||
- erfInv(x) - Inverse Gauss error function
|
||||
- erfcInv(x) - Inverse Gauss complementary error function
|
||||
|
||||
* Other functions
|
||||
- ulp(x) - Unit in The Last Place
|
||||
|
||||
* Binary relations - epsilon+ulp comparison - enabled as default
|
||||
If a rel b then applied epsilon is maximum from epsilon and ulp(b)
|
||||
a eq b if a \in [b-eps; b+eps] inclusive
|
||||
- mXparser.setExactComparison()
|
||||
- mXparser.setEpsilonComparison()
|
||||
- mXparser.setEpsilon(double epsilon)
|
||||
- mXparser.setDefaultEpsilon()
|
||||
- mXparser.getEpsilon()
|
||||
- mXparser.checkIfEpsilonMode()
|
||||
- mXparser.checkIfExactMode()
|
||||
|
||||
* Intelligent automatic double ULP rounding - enabled as default
|
||||
Try 0.1 + 0.1 + 0.1 - it will give exact 0.3 :-)
|
||||
- mXparser.enableUlpRounding()
|
||||
- mXparser.disableUlpRounding()
|
||||
- mXparser.checkIfUlpRounding()
|
||||
|
||||
* Parser tokens definition now public in API
|
||||
- mxparser.parsertokens.*
|
||||
|
||||
* Expression after tokenization now public in API
|
||||
- Expression.getCopyOfInitialTokens()
|
||||
- mxparser.parsertokens.*
|
||||
- mXparser.consolePrintTokens()
|
||||
|
||||
* Significant reorganization of code
|
||||
- Mainly mathcollection & parser tokens
|
||||
|
||||
* Backwards compatibility
|
||||
- is preserved for String API, Expression, Function, Argument,
|
||||
Constnat, ...
|
||||
- other public API was reorganized (mainly mxparser.mathcollection)
|
||||
|
||||
* Bugs fixed
|
||||
- bugs related to iterated operators
|
||||
|
||||
* Other changes
|
||||
- Many new regression tests
|
||||
|
||||
v.2.4.0 (2016-02-28): Average, variance and standard deviation.
|
||||
|
||||
* New functions with variadic parameters:
|
||||
- mean(a1, a2, ... , an) - sample average
|
||||
- var(a1, a2, ... , an) - bias-corrected sample variance
|
||||
- std(a1, a2, ... , an) - bias-corrected sample standard deviation
|
||||
|
||||
* New iterative operators:
|
||||
- mini(i, from, to, f(i), <by>) - minimum from function values
|
||||
- maxi(i, from, to, f(i), <by>) - maximum from function values
|
||||
- avg(i, from, to, f(i), <by>) - average from function values
|
||||
- vari(i, from, to, f(i), <by>) - bias-corrected sample variance from
|
||||
function values
|
||||
- stdi(i, from, to, f(i), <by>) - bias-corrected sample standard deviation
|
||||
from function values
|
||||
|
||||
* New regression tests to cover new functions
|
||||
* Small code reorganization
|
||||
* Added manifest to jar files containg version information
|
||||
* .dll files were signed
|
||||
|
||||
v.2.3.1 (2016-01-29): Trailing letter 'e' bug fix + some minor changes in the code.
|
||||
|
||||
v.2.3.0 (2016-01-17): Prime numbers supported! Multithreading performance tests!
|
||||
New functions: Exponential/Offset/Logarithmic integral!
|
||||
|
||||
* Prime numbers supported:
|
||||
- new class PrimesCache in mathcollection
|
||||
- MathFunctions extended with prime testes
|
||||
- ispr(n) - Prime test function supported in expressions
|
||||
- Pi(n) - Prime Counting function supported in expressions
|
||||
- mXparser.initPrimesCache() methods (and others) to initialize prime numbers cache
|
||||
|
||||
* Some special functions supported
|
||||
- Ei(x) - Exponential integral function supported in expressions
|
||||
- li(x) - Logarithmic integral function supported in expressions
|
||||
- Li(x) - Offset logarithmic integral function supported in expressions
|
||||
|
||||
* New constants
|
||||
- [G] - Gompertz Constant OEIS A073003 supported in expressions
|
||||
- [li2] - li(2) A069284 - supported in expressions
|
||||
|
||||
* Multithreading performance tests
|
||||
- Default number of cores taken from the environment
|
||||
- Possibility to change number of default threads:
|
||||
- PerformanceTests.start(int threadsNum)
|
||||
- mXparser.setThreadsNumber(int threadsNumber)
|
||||
|
||||
* New regression tests to cover new functionalities
|
||||
|
||||
|
||||
v.2.2.0 (2016-01-10): Android is coming!
|
||||
* mXparser_jdk1.7.jar - tested with Android !!!
|
||||
- all regression tests passed
|
||||
|
||||
* New public methods in the mXparser class
|
||||
- static String getConsoleOutput() - returns as string output
|
||||
produced by mXparser.consolePrin/ln() methods. Using this method
|
||||
you can capture the output to the string variable.
|
||||
- static void resetConsoleOutput() - resets the string
|
||||
representing console output
|
||||
- Added CONSOLE/PREFIX & CONSOLUE_OUTPUT_STRING/PREFIX + configuration
|
||||
|
||||
* Method modified in mXparser class
|
||||
- consolePrintln()
|
||||
- consolePrintln(Object o)
|
||||
- consolePrint(Object o)
|
||||
Above methods are outputing also to string representing
|
||||
console output.
|
||||
|
||||
* New RunTest method in regressiontesting, method executes
|
||||
specified scenario according to below params:
|
||||
- reg - Expression regression tests
|
||||
- api - mXparser API regression tests
|
||||
- syn - Syntax checking regression tests
|
||||
- perf - Performance tests
|
||||
|
||||
* Code clean-up
|
||||
- blank lines
|
||||
- trailing white spaces
|
||||
- src folders structure for c-sharp is now the same as in java
|
||||
|
||||
v.2.1.1-1 (2016-01-07):
|
||||
* Binaries for java: 1.5, 1.6, 1.7, 1.8
|
||||
* Binaries for .NET: 2.0, 3.0, 3.5, 4.0, 4.5, 4.6
|
||||
|
||||
v.2.1.1 (2016-01-04):
|
||||
* fixed bug w min/max function
|
||||
|
||||
v.2.1.0 (2016-01-02):
|
||||
* New static methods in class mxparser
|
||||
- mXparser.numberToHexString(number) + overloads: int, long, double
|
||||
- mXparser.hexString2AsciiString(String hexString)
|
||||
- mXparser.numberToAsciiString(number) + overloads: int, long, double
|
||||
- additional regression tests for the above methods
|
||||
|
||||
* Hello World examples of how to use mXparser binary library (manual includes:
|
||||
projects, code, screenshots) for:
|
||||
- JAVA (project done in Eclipse Mars 1)
|
||||
- C# (project done in Visual Studio 2015)
|
||||
- Visual Basic (project done in Visual Studio 2015)
|
||||
- C++/CLI (project done in Visual Studio 2015)
|
||||
- F# (project done in Visual Studio 2015)
|
||||
|
||||
v.2.0.0 (2015-12-31): Major update of the library providing more intuitive and
|
||||
much simpler to use API, no changes to the MathCollection.
|
||||
|
||||
* Methods removed: setRecursiveMode(), disableRecursiveMode()
|
||||
- No need to manually mark recursive mode, mXparser is recognizing this
|
||||
mode automatically.
|
||||
- New handy and super easy (natural to use) constructors:
|
||||
|
||||
* Constructors for user defined arguments (Argument / RecursiveArgument
|
||||
classes), user defined constant (Constant class), user defined functions
|
||||
(Function class).
|
||||
|
||||
Sample code:
|
||||
|
||||
Constant c = new Constant("c=5");
|
||||
Constant c = new Constant("c=5+2");
|
||||
Argument x = new Argument("x=5");
|
||||
Constant c = new Constant("c=5+x", x);
|
||||
Argument y = new Argument("y=2*x", x);
|
||||
RecursiveArgument f = new RecursiveArgument("f(n)=n*f(n-1)");
|
||||
Function f = new Function("f(x,y)=sin(x)+y");
|
||||
Function f = new Function("f(n)=if( n>0, n*f(n-1), 1)");
|
||||
|
||||
|
||||
* New methods: addDefinitions(PrimitiveElement... elements),
|
||||
removeDefinitions(PrimitiveElement... elements)
|
||||
|
||||
* New class PrimitiveElement introduced only to simplify constructors of
|
||||
arguments, constants, functions and expressions.
|
||||
|
||||
* Classes Argument, RecursiveArgument, Constant, Functions inherits now
|
||||
from PrimitiveElement class, it means you can call one method for
|
||||
adding / removing definitions by passing comma separated list of elements
|
||||
that can be different type (supported types: Argument, RecursiveArgument,
|
||||
Constant, Function).
|
||||
|
||||
* Method addArguments(), addConstants(), addFunctions(),removeArguments(),
|
||||
removeConstants(), removeFunctions() are still public, but this will
|
||||
change in the future.
|
||||
|
||||
Sample code:
|
||||
|
||||
Constant c = new Constant("c=5");
|
||||
Argument x = new Argument("x=10/2");
|
||||
Expression e = new Expression("c+x");
|
||||
e.addDefinitions(x,c);
|
||||
|
||||
* Modified constructors for classes Argument, RecursiveArgument, Constant,
|
||||
Function
|
||||
|
||||
* Constructors relying on directly given argument / constant / function
|
||||
name are now checking given name according to the predefined regular
|
||||
expression (the name must start with letters, and then
|
||||
digits / underscores/ letters are allowed).
|
||||
|
||||
* Constructors removed – all constructors relying on ArrayList/List
|
||||
of arguments, constants, functions or on varidic type Argument, Constant,
|
||||
Function were substituted based on comma separated prams list of
|
||||
PrimitiveElement type, where Argument, Constant, Functions
|
||||
extend / inherit PrimitiveElement).
|
||||
|
||||
* C# library is now Common Language Specification Compliant, it means
|
||||
mXparser is available right now to many other .NET languages
|
||||
(providing exactly the same API), including:
|
||||
|
||||
- C#
|
||||
- Visual Basic .NET
|
||||
- C++/CLI
|
||||
- F#
|
||||
|
||||
* Other changes
|
||||
|
||||
- New extended list of regression tests (to cover new methods,
|
||||
constructors, etc...)
|
||||
- Implemented Performance Tests
|
||||
- Source code converted from cp150 to UTF-8
|
||||
- Source code reorganization (some part of package level code of the
|
||||
Expression class was moved to the mXparser class)
|
||||
- Some bugs fixed (for sure there are others)
|
||||
|
||||
v.1.0.3 (2015-12-15):
|
||||
* Fixed bug during indirect recursion (infinite loops while syntax checking)
|
||||
Some minor modification of code making it more portable across platforms
|
||||
|
||||
v.1.0.2 (2015-12-06):
|
||||
* Fixed bug in user defined function related to RecursiveArguments
|
||||
|
||||
v.1.0.1 (2010-04-17):
|
||||
* Fixed BAG BIG Problem with evaluation without parenthesis
|
||||
ID: 2985722http://sourceforge.net/tracker/index.php?func=detail&aid=2985722&group_id=300839&atid=1268726
|
||||
|
||||
v.1.0.0 (2010-02-01):
|
||||
* Initial release
|
||||
|
||||
You may use this software under the condition of Simplified BSD License:
|
||||
|
||||
Copyright 2010-2017 MARIUSZ GROMADA. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are
|
||||
permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
of conditions and the following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY MARIUSZ GROMADA ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MARIUSZ GROMADA OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
The views and conclusions contained in the software and documentation are those of the
|
||||
authors and should not be interpreted as representing official policies, either expressed
|
||||
or implied, of MARIUSZ GROMADA.
|
||||
|
||||
If you have any questions/bugs feel free to contact:
|
||||
|
||||
Mariusz Gromada
|
||||
mariuszgromada.org@gmail.com
|
||||
http://mathspace.pl/
|
||||
http://mathparser.org/
|
||||
http://github.com/mariuszgromada/MathParser.org-mXparser
|
||||
http://mariuszgromada.github.io/MathParser.org-mXparser/
|
||||
http://mxparser.sourceforge.net/
|
||||
http://bitbucket.org/mariuszgromada/mxparser/
|
||||
http://mxparser.codeplex.com/
|
||||
|
||||
mXparser tutorial:
|
||||
doc/tutorial.html
|
||||
|
||||
mXparser API:
|
||||
doc/index.html
|
||||
|
||||
If you would like to run some regression testing just hit commands listed below:
|
||||
|
||||
JAVA:
|
||||
java -cp mxparser.jar org.mariuszgromada.math.mxparser.Tutorial
|
||||
java -cp mxparser.jar org.mariuszgromada.math.mxparser.regressiontesting.RunTest reg
|
||||
java -cp mxparser.jar org.mariuszgromada.math.mxparser.regressiontesting.RunTest api
|
||||
java -cp mxparser.jar org.mariuszgromada.math.mxparser.regressiontesting.RunTest syn
|
||||
java -cp mxparser.jar org.mariuszgromada.math.mxparser.regressiontesting.RunTest perf
|
||||
java -cp mxparser.jar org.mariuszgromada.math.mxparser.regressiontesting.RunTest reg api syn perf
|
||||
|
||||
Setting number of threads in performance tests:
|
||||
java -cp mxparser.jar org.mariuszgromada.math.mxparser.regressiontesting.PerformanceTests 4
|
||||
|
||||
C# (using PowerShell):
|
||||
[Reflection.Assembly]::LoadFile("full\exact\path\to\mxparser.dll")
|
||||
[org.mariuszgromada.math.mxparser.Tutorial]::Start()
|
||||
[org.mariuszgromada.math.mxparser.regressiontesting.RunTest]::Start("reg")
|
||||
[org.mariuszgromada.math.mxparser.regressiontesting.RunTest]::Start("api")
|
||||
[org.mariuszgromada.math.mxparser.regressiontesting.RunTest]::Start("syn")
|
||||
[org.mariuszgromada.math.mxparser.regressiontesting.RunTest]::Start("perf")
|
||||
|
||||
Setting number of threads in performance tests:
|
||||
[org.mariuszgromada.math.mxparser.regressiontesting.PerformanceTests]::Start(4)
|
||||
32
Extensions/AIStudio.Wpf.SFC/SFCNodeKinds.cs
Normal file
32
Extensions/AIStudio.Wpf.SFC/SFCNodeKinds.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Text;
|
||||
|
||||
namespace AIStudio.Wpf.SFC
|
||||
{
|
||||
public enum SFCNodeKinds
|
||||
{
|
||||
[Description("开始")]
|
||||
Start = 1,
|
||||
[Description("节点")]
|
||||
Node = 2,
|
||||
[Description("转移条件")]
|
||||
Condition = 3,
|
||||
[Description("动作")]
|
||||
Action = 4,
|
||||
[Description("并行开始")]
|
||||
COBegin = 5,
|
||||
[Description("并行结束")]
|
||||
COEnd = 6,
|
||||
|
||||
[Description("容器")]
|
||||
Simulate_Tank = 100,
|
||||
[Description("阀门")]
|
||||
Simulate_Solenoid = 101,
|
||||
[Description("开始")]
|
||||
Simulate_Start= 102,
|
||||
[Description("测定清单")]
|
||||
Simulate_List =103,
|
||||
}
|
||||
}
|
||||
220
Extensions/AIStudio.Wpf.SFC/SFCService.cs
Normal file
220
Extensions/AIStudio.Wpf.SFC/SFCService.cs
Normal file
@@ -0,0 +1,220 @@
|
||||
using AIStudio.Wpf.SFC.ViewModels;
|
||||
using org.mariuszgromada.math.mxparser;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Media;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
|
||||
namespace AIStudio.Wpf.SFC
|
||||
{
|
||||
public static class SFCService
|
||||
{
|
||||
public static List<LinkPoint> LinkPoint { get; set; }
|
||||
|
||||
static SFCService()
|
||||
{
|
||||
LinkPoint = new List<LinkPoint>();
|
||||
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("9943AC3B-5E19-4AF4-8CB0-26998FC31545"), Name = "S0", Despcription = "启动按钮", Value = 0 });
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("F60007E3-913B-43C4-B80B-9624B4BD95AC"), Name = "K1_DI", Despcription = "阀门1输入", Value = 0 });
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("8B2CBA04-A9C8-4FF0-BE95-27546292FB90"), Name = "K2_DI", Despcription = "阀门2输入", Value = 0 });
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("F213B720-ADC2-41C9-82B7-D77B56B99CB7"), Name = "K3_DI", Despcription = "阀门3输入", Value = 0 });
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("48BB7F62-A476-4A68-9DB4-5BD4201C1C26"), Name = "K4_DI", Despcription = "阀门4输入", Value = 0 });
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("5E52ACA8-8DB4-4D39-A3BF-73EE3A551253"), Name = "K1_DO", Despcription = "阀门1反馈", Value = 0 });
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("5B8C53FF-A4CA-40BA-9F36-5C228D9D0C5A"), Name = "K2_DO", Despcription = "阀门2反馈", Value = 0 });
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("29496600-74CF-4AB0-88D1-4C5BFAD4C405"), Name = "K3_DO", Despcription = "阀门3反馈", Value = 0 });
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("15733895-96E5-4F90-9BC2-3C7FF0A2B048"), Name = "K4_DO", Despcription = "阀门4反馈", Value = 0 });
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("BD593101-C759-4077-A3F2-F86AA2FC6DF8"), Name = "T1", Despcription = "容器1液位", Value = 100, });
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("2BCBD2C9-9BCE-4F10-B115-088DEE1F4E08"), Name = "T2", Despcription = "容器2液位", Value = 0 });
|
||||
LinkPoint.Add(new LinkPoint { Id = Guid.Parse("DBD10A3C-7E2E-4DAE-9CB0-A2132DC469DF"), Name = "T3", Despcription = "容器3液位", Value = 20 });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 流程数据
|
||||
/// </summary>
|
||||
public static Dictionary<IDiagramViewModel, List<SFCNode>> SFCNodes { get; set; } = new Dictionary<IDiagramViewModel, List<SFCNode>>();
|
||||
|
||||
/// <summary>
|
||||
/// 初始化数据
|
||||
/// </summary>
|
||||
/// <param name="json"></param>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
public static void InitData(List<SFCNode> nodes, List<ConnectionViewModel> connectors, IDiagramViewModel viewModel)
|
||||
{
|
||||
var start = nodes.FirstOrDefault(p => p.Kind == SFCNodeKinds.Start);
|
||||
if (start == null)
|
||||
throw new Exception("没有开始节点");
|
||||
|
||||
foreach (var edge in connectors)
|
||||
{
|
||||
if (edge.IsFullConnection == false) continue;
|
||||
|
||||
var source = nodes.FirstOrDefault(p => p == edge.SourceConnectorInfo.DataItem);
|
||||
if (source != null)
|
||||
{
|
||||
source.NextNode.Add(edge.SinkConnectorInfoFully.DataItem as SFCNode);
|
||||
(edge.SinkConnectorInfoFully.DataItem as SFCNode).PreNode.Add(source);
|
||||
}
|
||||
}
|
||||
|
||||
SFCNodes.Add(viewModel, nodes);
|
||||
ResetStatus(viewModel);
|
||||
}
|
||||
|
||||
private static void ResetStatus(IDiagramViewModel viewModel)
|
||||
{
|
||||
var nodes = SFCNodes[viewModel];
|
||||
var start = nodes.FirstOrDefault(p => p.Kind == SFCNodeKinds.Start);
|
||||
|
||||
SetStatus(start, 1);
|
||||
nodes.ForEach(p =>
|
||||
{
|
||||
if (p != start)
|
||||
{
|
||||
SetStatus(p, 0);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void Execute(IDiagramViewModel viewModel)
|
||||
{
|
||||
//仅T2进行计算
|
||||
var tank = SFCNodes[viewModel].OfType<Simulate_TankViewModel>().FirstOrDefault(p => p.Text == "T2");
|
||||
tank.Execute();
|
||||
|
||||
var startbtn = SFCNodes[viewModel].OfType<Simulate_StartViewModel>().FirstOrDefault();
|
||||
if (startbtn != null && startbtn.LinkPoint.Value == 0)//停止
|
||||
{
|
||||
ResetStatus(viewModel);
|
||||
}
|
||||
else//启动
|
||||
{
|
||||
var currentNodes = SFCNodes[viewModel].Where(p => p.Status == 1);
|
||||
foreach (var node in currentNodes)
|
||||
{
|
||||
if (node.NextNode.OfType<SFCConditionNode>().Count() > 1)//选择分支
|
||||
{
|
||||
foreach (var next in node.NextNode)
|
||||
{
|
||||
if (next is SFCConditionNode nextconditionNode)
|
||||
{
|
||||
List<Argument> args = new List<Argument>();
|
||||
for (int i = 0; i < nextconditionNode.LinkPoint.Count; i++)
|
||||
{
|
||||
Argument x = new Argument($"p{i}", nextconditionNode.LinkPoint[i].Value);
|
||||
args.Add(x);
|
||||
}
|
||||
Expression e = new Expression(nextconditionNode.Expression, args.ToArray());
|
||||
var result = e.calculate();
|
||||
if (result == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
SetStatus(node, 100);
|
||||
SetStatus(next, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (node is SFCConditionNode conditionNode)
|
||||
{
|
||||
List<Argument> args = new List<Argument>();
|
||||
for (int i = 0; i < conditionNode.LinkPoint.Count; i++)
|
||||
{
|
||||
Argument x = new Argument($"p{i}", conditionNode.LinkPoint[i].Value);
|
||||
args.Add(x);
|
||||
}
|
||||
Expression e = new Expression(conditionNode.Expression, args.ToArray());
|
||||
var result = e.calculate();
|
||||
if (result == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else if (node is SFCActionNode actionNode)
|
||||
{
|
||||
if (actionNode.LinkPoint != null)
|
||||
{
|
||||
Expression e = new Expression(actionNode.Expression);
|
||||
actionNode.LinkPoint.Value = e.calculate();
|
||||
SetStatus(actionNode, 100);
|
||||
}
|
||||
}
|
||||
else if (node is SFCCOEndNode cOEndNode)
|
||||
{
|
||||
//并行结束节点需要前面节点都完成
|
||||
if (cOEndNode.PreNode.Any(p => p.Status != 100))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
SetStatus(node, 100);
|
||||
foreach (var next in node.NextNode)
|
||||
{
|
||||
if (next is SFCStartNode startNode)
|
||||
{
|
||||
ResetStatus(viewModel);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetStatus(next, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置颜色
|
||||
/// </summary>
|
||||
/// <param name="flowNode"></param>
|
||||
/// <param name="status"></param>
|
||||
/// <param name="remark"></param>
|
||||
public static void SetStatus(SFCNode node, int status)
|
||||
{
|
||||
node.Status = status;
|
||||
switch (status)
|
||||
{
|
||||
case 100:
|
||||
node.ColorViewModel.FillColor.Color = Colors.Gray;
|
||||
break;
|
||||
case 0:
|
||||
node.ColorViewModel.FillColor.Color = Colors.Blue;
|
||||
break;
|
||||
case 1:
|
||||
node.ColorViewModel.FillColor.Color = Colors.Green;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static string SerializeLinkPoint(List<LinkPoint> points)
|
||||
{
|
||||
return string.Join(",", points.Select(p => p.Id));
|
||||
}
|
||||
|
||||
public static List<LinkPoint> DeserializeLinkPoint(string point)
|
||||
{
|
||||
List<LinkPoint> links = new List<LinkPoint>();
|
||||
string[] pieces = point.Split(new char[] { ',' });
|
||||
foreach (var piece in pieces)
|
||||
{
|
||||
links.Add(LinkPoint.FirstOrDefault(p => p.Id.ToString() == piece));
|
||||
}
|
||||
return links;
|
||||
}
|
||||
|
||||
public static void Dispose(IDiagramViewModel viewModel)
|
||||
{
|
||||
SFCNodes.Remove(viewModel);
|
||||
}
|
||||
}
|
||||
}
|
||||
360
Extensions/AIStudio.Wpf.SFC/Themes/SFCNode.xaml
Normal file
360
Extensions/AIStudio.Wpf.SFC/Themes/SFCNode.xaml
Normal file
@@ -0,0 +1,360 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram"
|
||||
xmlns:viewmodel="clr-namespace:AIStudio.Wpf.SFC.ViewModels"
|
||||
xmlns:local="clr-namespace:AIStudio.Wpf.SFC">
|
||||
|
||||
<dd:ColorBrushConverter x:Key="ColorBrushConverter"/>
|
||||
<dd:HalfConverter x:Key="HalfConverter"/>
|
||||
<dd:IntToBoolConverter x:Key="IntToBoolConverter"/>
|
||||
|
||||
<ControlTemplate x:Key="StartStyle" TargetType="{x:Type ContentControl}">
|
||||
<Grid IsHitTestVisible="False">
|
||||
<Border BorderThickness="1" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}">
|
||||
<Border BorderThickness="1" Margin="3" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
||||
<Grid>
|
||||
|
||||
</Grid>
|
||||
</Border>
|
||||
</Border>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
|
||||
<ControlTemplate x:Key="NodeStyle" TargetType="{x:Type ContentControl}">
|
||||
<Grid IsHitTestVisible="False">
|
||||
<Border BorderThickness="4" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
||||
<Grid>
|
||||
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
|
||||
<ControlTemplate x:Key="ConditionStyle" TargetType="{x:Type ContentControl}">
|
||||
<Grid IsHitTestVisible="False">
|
||||
<Border BorderThickness="3" HorizontalAlignment="Center" BorderBrush="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
||||
</Border>
|
||||
<Border BorderThickness="3" VerticalAlignment="Center" BorderBrush="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
||||
</Border>
|
||||
<TextBlock Text="{Binding Text}" RenderTransformOrigin="1,0.5" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="2">
|
||||
<TextBlock.RenderTransform>
|
||||
<TranslateTransform X="{Binding ItemWidth}"/>
|
||||
</TextBlock.RenderTransform>
|
||||
</TextBlock>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
|
||||
<ControlTemplate x:Key="ActionStyle" TargetType="{x:Type ContentControl}">
|
||||
<Grid IsHitTestVisible="False">
|
||||
<Ellipse StrokeThickness="1" Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}" />
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
|
||||
<ControlTemplate x:Key="COBeginStyle" TargetType="{x:Type ContentControl}">
|
||||
<Grid IsHitTestVisible="False">
|
||||
<Border BorderThickness="0,2,0,2" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
||||
<Grid>
|
||||
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
|
||||
<ControlTemplate x:Key="COEndStyle" TargetType="{x:Type ContentControl}">
|
||||
<Grid IsHitTestVisible="False">
|
||||
<Border BorderThickness="0,2,0,2" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
||||
<Grid>
|
||||
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
|
||||
<ControlTemplate x:Key="TankStyle" TargetType="{x:Type ContentControl}">
|
||||
<Grid IsHitTestVisible="False">
|
||||
<Rectangle RadiusX="5" RadiusY="5" StrokeThickness="1" Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}" />
|
||||
<ProgressBar Orientation="Vertical" Foreground="Green" Background="Red" Value="{Binding LinkPoint.Value,FallbackValue=50}" Width="5" HorizontalAlignment="Right" Margin="5" Maximum="100" Minimum="0"/>
|
||||
<TextBlock Text="{Binding LinkPoint.Value,StringFormat={}{0}%}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,30,0,0"/>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
|
||||
<Style TargetType="{x:Type ToggleButton}" x:Key="SolenoidControlToggleButtonStyle">
|
||||
<Setter Property="Background" Value="Red"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="True" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ToggleButton}">
|
||||
<Grid x:Name="Grid" Margin="{TemplateBinding Padding}">
|
||||
<Ellipse x:Name="path" Fill="Red" Stroke="Black" Stretch="Uniform"/>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Foreground" Value="{DynamicResource GrayBrush8}" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Foreground" Value="{DynamicResource Fluent.Ribbon.Brushes.HighlightBrush}" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter Property="Fill" TargetName="path" Value="Green" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter Property="Opacity" Value="0.6" TargetName="Grid"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="{x:Type ToggleButton}" x:Key="SolenoidToggleButtonStyle">
|
||||
<Setter Property="Background" Value="Red"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="True" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ToggleButton}">
|
||||
<Grid x:Name="Grid" Margin="{TemplateBinding Padding}">
|
||||
<Path x:Name="path1" Data="M192 128l128 128-128 128z" Fill="Red" Stroke="Black" Stretch="Fill" Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource Mode=TemplatedParent}, Converter={StaticResource HalfConverter}}" HorizontalAlignment="Left"/>
|
||||
<Path x:Name="path2" Data="M450 600L650 800V400z" Fill="Red" Stroke="Black" Stretch="Fill" Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource Mode=TemplatedParent}, Converter={StaticResource HalfConverter}}" HorizontalAlignment="Right"/>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Foreground" Value="{DynamicResource GrayBrush8}" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Foreground" Value="{DynamicResource Fluent.Ribbon.Brushes.HighlightBrush}" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter Property="Fill" TargetName="path1" Value="Green" />
|
||||
<Setter Property="Fill" TargetName="path2" Value="Green" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter Property="Opacity" Value="0.6" TargetName="Grid"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="{x:Type ToggleButton}" x:Key="StartToggleButtonStyle">
|
||||
<Setter Property="Background" Value="Red"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="True" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ToggleButton}">
|
||||
<Grid x:Name="Grid" Margin="{TemplateBinding Padding}" Background="{TemplateBinding Background}">
|
||||
<TextBlock x:Name="txt" Text="开始" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Foreground" Value="{DynamicResource GrayBrush8}" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Foreground" Value="{DynamicResource Fluent.Ribbon.Brushes.HighlightBrush}" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter Property="Background" TargetName="Grid" Value="Green" />
|
||||
<Setter Property="Text" TargetName="txt" Value="停止" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter Property="Opacity" Value="0.6" TargetName="Grid"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<ControlTemplate x:Key="SolenoidStyle" TargetType="{x:Type ContentControl}">
|
||||
<Grid Margin="0,5">
|
||||
<ToggleButton Style="{StaticResource SolenoidToggleButtonStyle}" IsChecked="{Binding DOLinkPoint.Value, Converter={StaticResource IntToBoolConverter}}" IsHitTestVisible="False" />
|
||||
<ToggleButton Style="{StaticResource SolenoidControlToggleButtonStyle}" IsChecked="{Binding DILinkPoint.Value, Converter={StaticResource IntToBoolConverter}}" HorizontalAlignment="Center" VerticalAlignment="Center" Width="16" Height="16"/>
|
||||
<TextBlock Text="{Binding Text}" RenderTransformOrigin="0.5,1" TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="2">
|
||||
<TextBlock.RenderTransform>
|
||||
<TranslateTransform Y="16"/>
|
||||
</TextBlock.RenderTransform>
|
||||
</TextBlock>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
|
||||
<ControlTemplate x:Key="StartBtnStyle" TargetType="{x:Type ContentControl}">
|
||||
<Grid Margin="0,5">
|
||||
<ToggleButton Style="{StaticResource StartToggleButtonStyle}" IsChecked="{Binding LinkPoint.Value, Converter={StaticResource IntToBoolConverter}}"/>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
|
||||
<ControlTemplate x:Key="ListStyle" TargetType="{x:Type ContentControl}">
|
||||
<Grid Margin="2">
|
||||
<ItemsControl ItemsSource="{x:Static local:SFCService.LinkPoint}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Orientation="Horizontal" Margin="2">
|
||||
<TextBlock Text="{Binding Name}" Width="45" VerticalAlignment="Center" />
|
||||
<TextBlock Text="{Binding Despcription}" Width="60" VerticalAlignment="Center" />
|
||||
<TextBox Text="{Binding Value,Mode=TwoWay}" Width="50" VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
|
||||
<Style x:Key="CustomSFCNodeStyle" TargetType="{x:Type ContentControl}">
|
||||
<Setter Property="Template" Value="{StaticResource StartStyle}" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding Kind}" Value="Start">
|
||||
<Setter Property="Template" Value="{StaticResource StartStyle}" />
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding Kind}" Value="Node">
|
||||
<Setter Property="Template" Value="{StaticResource NodeStyle}" />
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding Kind}" Value="Condition">
|
||||
<Setter Property="Template" Value="{StaticResource ConditionStyle}" />
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding Kind}" Value="Action">
|
||||
<Setter Property="Template" Value="{StaticResource ActionStyle}" />
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding Kind}" Value="COBegin">
|
||||
<Setter Property="Template" Value="{StaticResource COBeginStyle}" />
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding Kind}" Value="COEnd">
|
||||
<Setter Property="Template" Value="{StaticResource COEndStyle}" />
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding Kind}" Value="Simulate_Tank">
|
||||
<Setter Property="Template" Value="{StaticResource TankStyle}" />
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding Kind}" Value="Simulate_Solenoid">
|
||||
<Setter Property="Template" Value="{StaticResource SolenoidStyle}" />
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding Kind}" Value="Simulate_Start">
|
||||
<Setter Property="Template" Value="{StaticResource StartBtnStyle}" />
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding Kind}" Value="Simulate_List">
|
||||
<Setter Property="Template" Value="{StaticResource ListStyle}" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<DataTemplate DataType="{x:Type viewmodel:SFCNode}">
|
||||
<Grid>
|
||||
<ContentControl Style="{StaticResource CustomSFCNodeStyle}"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate DataType="{x:Type viewmodel:SFCConditionNodeData}">
|
||||
<Grid Background="{DynamicResource Fluent.Ribbon.Brushes.AccentBaseColorBrush}">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Grid.Column="0"
|
||||
Content="条件"
|
||||
Margin="5" />
|
||||
<TextBox Grid.Column="1"
|
||||
Text="{Binding Expression}" VerticalAlignment="Center"
|
||||
Margin="2"
|
||||
FontSize="12"/>
|
||||
<StackPanel Grid.Column="0" Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Top">
|
||||
<Label
|
||||
Content="绑定"
|
||||
Margin="5,5,0,5" />
|
||||
<Button Command="{Binding AddCommand}" Width="16" Height="16">
|
||||
<Path Stretch="Fill" Fill="Black" Data="M938.666667 426.666667h-341.333334V85.333333c0-46.933333-38.4-85.333333-85.333333-85.333333s-85.333333 38.4-85.333333 85.333333v341.333334H85.333333c-46.933333 0-85.333333 38.4-85.333333 85.333333s38.4 85.333333 85.333333 85.333333h341.333334v341.333334c0 46.933333 38.4 85.333333 85.333333 85.333333s85.333333-38.4 85.333333-85.333333v-341.333334h341.333334c46.933333 0 85.333333-38.4 85.333333-85.333333s-38.4-85.333333-85.333333-85.333333z"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Vertical" Grid.Column="1" Grid.Row="1" Margin="2">
|
||||
<ItemsControl
|
||||
ItemsSource="{Binding LinkPoint}" AlternationCount="{Binding LinkPoint.Count}" Background="{DynamicResource Fluent.Ribbon.Brushes.AccentBaseColorBrush}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<DockPanel >
|
||||
<Button DockPanel.Dock="Right" Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ItemsControl}}}" CommandParameter="{Binding .}" Width="16" Height="16">
|
||||
<Path Stretch="Fill" Fill="Black" Data="M512 620.544l253.3376 253.3376a76.6976 76.6976 0 1 0 108.544-108.544L620.6464 512l253.2352-253.3376a76.6976 76.6976 0 1 0-108.544-108.544L512 403.3536 258.6624 150.1184a76.6976 76.6976 0 1 0-108.544 108.544L403.3536 512 150.1184 765.3376a76.6976 76.6976 0 1 0 108.544 108.544L512 620.6464z"/>
|
||||
</Button>
|
||||
<TextBlock VerticalAlignment="Center" Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContentPresenter}, AncestorLevel=1}, Path=(ItemsControl.AlternationIndex),StringFormat={}p{0}}"/>
|
||||
<ComboBox SelectedValue="{Binding Name}" ItemsSource="{x:Static local:SFCService.LinkPoint}" VerticalAlignment="Center" SelectedValuePath="Name" DisplayMemberPath="Name" FontSize="12" Margin="2"/>
|
||||
</DockPanel>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate DataType="{x:Type viewmodel:SFCActionNodeData}">
|
||||
<Grid Background="{DynamicResource Fluent.Ribbon.Brushes.AccentBaseColorBrush}">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Grid.Column="0"
|
||||
Content="结果"
|
||||
Margin="5" />
|
||||
<TextBox Grid.Column="1"
|
||||
Text="{Binding Expression}" VerticalAlignment="Center"
|
||||
Margin="2"
|
||||
FontSize="12"/>
|
||||
<Label Grid.Column="0" Grid.Row="1"
|
||||
Content="测点"
|
||||
Margin="5" />
|
||||
<ComboBox Grid.Column="1" Grid.Row="1"
|
||||
SelectedItem="{Binding LinkPoint}" ItemsSource="{x:Static local:SFCService.LinkPoint}" VerticalAlignment="Center" DisplayMemberPath="Name"
|
||||
Margin="5"
|
||||
FontSize="12"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate DataType="{x:Type viewmodel:Simulate_SolenoidViewModelData}">
|
||||
<Grid Background="{DynamicResource Fluent.Ribbon.Brushes.AccentBaseColorBrush}">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Grid.Column="0"
|
||||
Content="输入"
|
||||
Margin="5" />
|
||||
<ComboBox Grid.Column="1" Grid.Row="0"
|
||||
SelectedItem="{Binding DILinkPoint}" ItemsSource="{x:Static local:SFCService.LinkPoint}" VerticalAlignment="Center" DisplayMemberPath="Name"
|
||||
Margin="5"
|
||||
FontSize="12"/>
|
||||
<Label Grid.Column="0"
|
||||
Grid.Row="1"
|
||||
Content="反馈"
|
||||
Margin="5" />
|
||||
<ComboBox Grid.Column="1" Grid.Row="1"
|
||||
SelectedItem="{Binding DOLinkPoint}" ItemsSource="{x:Static local:SFCService.LinkPoint}" VerticalAlignment="Center" DisplayMemberPath="Name"
|
||||
Margin="5"
|
||||
FontSize="12"/>
|
||||
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate DataType="{x:Type viewmodel:Simulate_TankViewModelData}">
|
||||
<Grid Background="{DynamicResource Fluent.Ribbon.Brushes.AccentBaseColorBrush}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Grid.Column="0"
|
||||
Content="液位"
|
||||
Margin="5" />
|
||||
<ComboBox Grid.Column="1" Grid.Row="0"
|
||||
SelectedItem="{Binding LinkPoint}" ItemsSource="{x:Static local:SFCService.LinkPoint}" VerticalAlignment="Center" DisplayMemberPath="Name"
|
||||
Margin="5"
|
||||
FontSize="12"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
</ResourceDictionary>
|
||||
53
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCActionNode.cs
Normal file
53
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCActionNode.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class SFCActionNode : SFCNode
|
||||
{
|
||||
public SFCActionNode() : base(SFCNodeKinds.Action)
|
||||
{
|
||||
FontViewModel.FontSize = 10;
|
||||
ItemWidth = 60;
|
||||
ItemHeight = 48;
|
||||
|
||||
ExecuteAddLeftInput(null);
|
||||
}
|
||||
|
||||
public SFCActionNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public SFCActionNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private LinkPoint _linkPoint;
|
||||
public LinkPoint LinkPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return _linkPoint;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _linkPoint, value);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void ExecuteEditCommand(object parameter)
|
||||
{
|
||||
SFCActionNodeData data = new SFCActionNodeData(LinkPoint, Expression);
|
||||
if (visualiserService.ShowDialog(data) == true)
|
||||
{
|
||||
this.LinkPoint = data.LinkPoint;
|
||||
this.Expression = data.Expression;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
60
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCActionNodeData.cs
Normal file
60
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCActionNodeData.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
/// <summary>
|
||||
/// This is passed to the PopupWindow.xaml window, where a DataTemplate is used to provide the
|
||||
/// ContentControl with the look for this data. This class is also used to allow
|
||||
/// the popup to be cancelled without applying any changes to the calling ViewModel
|
||||
/// whos data will be updated if the PopupWindow.xaml window is closed successfully
|
||||
/// </summary>
|
||||
public class SFCActionNodeData : BindableBase
|
||||
{
|
||||
private string _title;
|
||||
public string Title
|
||||
{
|
||||
get
|
||||
{
|
||||
return _title;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _title, value);
|
||||
}
|
||||
}
|
||||
|
||||
public SFCActionNodeData(LinkPoint linkPoint, string expression)
|
||||
{
|
||||
Title = "输出动作";
|
||||
|
||||
LinkPoint = linkPoint;
|
||||
Expression = expression;
|
||||
}
|
||||
|
||||
private string _expression;
|
||||
public string Expression
|
||||
{
|
||||
get
|
||||
{
|
||||
return _expression;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _expression, value);
|
||||
}
|
||||
}
|
||||
|
||||
private LinkPoint _linkPoint;
|
||||
public LinkPoint LinkPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return _linkPoint;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _linkPoint, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
56
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCCOBeginNode.cs
Normal file
56
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCCOBeginNode.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class SFCCOBeginNode : SFCNode
|
||||
{
|
||||
public SFCCOBeginNode() : this(null)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public SFCCOBeginNode(IDiagramViewModel root) : base(root, SFCNodeKinds.COBegin)
|
||||
{
|
||||
ItemWidth = 280;
|
||||
ItemHeight = 10;
|
||||
|
||||
ExecuteAddTopInput(null);
|
||||
ExecuteAddBottomOutput(null);
|
||||
ExecuteAddBottomOutput(null);
|
||||
}
|
||||
|
||||
public SFCCOBeginNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||
{
|
||||
}
|
||||
|
||||
public SFCCOBeginNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void ExecuteAddTopInput(object parameter)
|
||||
{
|
||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Top, true);
|
||||
connector.YRatio = 0;
|
||||
connector.XRatio = (40 + Input.Count * 200) / ItemWidth;
|
||||
Input.Add(Input.Count, connector);
|
||||
|
||||
AddConnector(connector);
|
||||
}
|
||||
|
||||
public override void ExecuteAddBottomOutput(object parameter)
|
||||
{
|
||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Bottom, true);
|
||||
connector.YRatio = 1;
|
||||
connector.XRatio = (40 + Output.Count * 200) / ItemWidth;
|
||||
Output.Add(Output.Count, connector);
|
||||
|
||||
|
||||
AddConnector(connector);
|
||||
}
|
||||
}
|
||||
}
|
||||
56
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCCOEndNode.cs
Normal file
56
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCCOEndNode.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class SFCCOEndNode : SFCNode
|
||||
{
|
||||
public SFCCOEndNode() : this(null)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public SFCCOEndNode(IDiagramViewModel root) : base(root, SFCNodeKinds.COEnd)
|
||||
{
|
||||
ItemWidth = 280;
|
||||
ItemHeight = 10;
|
||||
|
||||
ExecuteAddBottomOutput(null);
|
||||
ExecuteAddTopInput(null);
|
||||
ExecuteAddTopInput(null);
|
||||
}
|
||||
|
||||
public SFCCOEndNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||
{
|
||||
}
|
||||
|
||||
public SFCCOEndNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void ExecuteAddTopInput(object parameter)
|
||||
{
|
||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Top, true);
|
||||
connector.YRatio = 0;
|
||||
connector.XRatio = (40 + Input.Count * 200) / ItemWidth;
|
||||
Input.Add(Input.Count, connector);
|
||||
|
||||
AddConnector(connector);
|
||||
}
|
||||
|
||||
public override void ExecuteAddBottomOutput(object parameter)
|
||||
{
|
||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Bottom, true);
|
||||
connector.YRatio = 1;
|
||||
connector.XRatio = (40 + Output.Count * 200) / ItemWidth;
|
||||
Output.Add(Output.Count, connector);
|
||||
|
||||
AddConnector(connector);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
72
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCConditionNode.cs
Normal file
72
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCConditionNode.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Media;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class SFCConditionNode : SFCNode
|
||||
{
|
||||
public SFCConditionNode() : this(null)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public SFCConditionNode(IDiagramViewModel root) : base(root, SFCNodeKinds.Condition)
|
||||
{
|
||||
ColorViewModel.LineColor.Color = Colors.Black;
|
||||
ItemWidth = 30;
|
||||
ItemHeight = 30;
|
||||
|
||||
ExecuteAddTopInput(null);
|
||||
ExecuteAddBottomOutput(null);
|
||||
}
|
||||
|
||||
public SFCConditionNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||
{
|
||||
}
|
||||
|
||||
public SFCConditionNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
base.Init(root, initNew);
|
||||
CustomText = true;
|
||||
}
|
||||
|
||||
protected override void InitNew()
|
||||
{
|
||||
base.InitNew();
|
||||
}
|
||||
|
||||
private ObservableCollection<LinkPoint> _linkPoint = new ObservableCollection<LinkPoint>();
|
||||
public ObservableCollection<LinkPoint> LinkPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return _linkPoint;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _linkPoint, value);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void ExecuteEditCommand(object parameter)
|
||||
{
|
||||
SFCConditionNodeData data = new SFCConditionNodeData(LinkPoint, Expression);
|
||||
if (visualiserService.ShowDialog(data) == true)
|
||||
{
|
||||
this.LinkPoint = new ObservableCollection<LinkPoint>(data.LinkPoint.Select(p => SFCService.LinkPoint.FirstOrDefault(q => q.Name == p.Name)));
|
||||
this.Expression = data.Expression;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Windows.Input;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
/// <summary>
|
||||
/// This is passed to the PopupWindow.xaml window, where a DataTemplate is used to provide the
|
||||
/// ContentControl with the look for this data. This class is also used to allow
|
||||
/// the popup to be cancelled without applying any changes to the calling ViewModel
|
||||
/// whos data will be updated if the PopupWindow.xaml window is closed successfully
|
||||
/// </summary>
|
||||
public class SFCConditionNodeData : BindableBase
|
||||
{
|
||||
private string _title;
|
||||
public string Title
|
||||
{
|
||||
get
|
||||
{
|
||||
return _title;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _title, value);
|
||||
}
|
||||
}
|
||||
public SFCConditionNodeData(IEnumerable<LinkPoint> linkPoint, string expression)
|
||||
{
|
||||
Title = "转移条件";
|
||||
LinkPoint = new ObservableCollection<LinkPoint>(linkPoint);
|
||||
Expression = expression;
|
||||
}
|
||||
|
||||
private string _expression;
|
||||
public string Expression
|
||||
{
|
||||
get
|
||||
{
|
||||
return _expression;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _expression, value);
|
||||
}
|
||||
}
|
||||
|
||||
private ObservableCollection<LinkPoint> _linkPoint;
|
||||
public ObservableCollection<LinkPoint> LinkPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return _linkPoint;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _linkPoint, value);
|
||||
}
|
||||
}
|
||||
|
||||
private ICommand _addCommand;
|
||||
public ICommand AddCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._addCommand ?? (this._addCommand = new SimpleCommand(para => { return true; }, para => this.AddExecuted(para)));
|
||||
}
|
||||
}
|
||||
|
||||
private ICommand _deleteCommand;
|
||||
public ICommand DeleteCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._deleteCommand ?? (this._deleteCommand = new SimpleCommand(para => { return true; }, para => this.DeleteExecuted(para)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void AddExecuted(object para)
|
||||
{
|
||||
LinkPoint.Add(new SFC.LinkPoint());
|
||||
}
|
||||
|
||||
private void DeleteExecuted(object para)
|
||||
{
|
||||
LinkPoint.Remove(para as SFC.LinkPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
225
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs
Normal file
225
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs
Normal file
@@ -0,0 +1,225 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Windows.Media;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
using AIStudio.Wpf.DiagramDesigner.Services;
|
||||
using AIStudio.Wpf.SFC.Models;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class SFCNode : DesignerItemViewModelBase
|
||||
{
|
||||
protected IUIVisualizerService visualiserService;
|
||||
|
||||
public SFCNode(SFCNodeKinds kind) : this(null, kind)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public SFCNode(IDiagramViewModel root, SFCNodeKinds kind) : base(root)
|
||||
{
|
||||
ColorViewModel.FillColor.Color = Colors.Blue;
|
||||
Kind = kind;
|
||||
ItemWidth = 80;
|
||||
ItemHeight = 40;
|
||||
}
|
||||
|
||||
public SFCNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public SFCNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override SelectableItemBase GetSerializableObject()
|
||||
{
|
||||
return new SFCNodeDesignerItem(this);
|
||||
}
|
||||
|
||||
protected override void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
IsInnerConnector = true;
|
||||
ShowRotate = false;
|
||||
ShowArrow = false;
|
||||
ShowText = true;
|
||||
IsReadOnlyText = true;
|
||||
|
||||
base.Init(root, initNew);
|
||||
|
||||
visualiserService = ApplicationServicesProvider.Instance.Provider.VisualizerService;
|
||||
}
|
||||
|
||||
protected override void InitNew()
|
||||
{
|
||||
ClearConnectors();
|
||||
}
|
||||
|
||||
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
||||
{
|
||||
base.LoadDesignerItemViewModel(designerbase);
|
||||
|
||||
if (designerbase is SFCNodeDesignerItem designer)
|
||||
{
|
||||
this.Kind = designer.Kind;
|
||||
this.Expression = designer.Expression;
|
||||
|
||||
foreach (var connector in designer.Connectors)
|
||||
{
|
||||
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector);
|
||||
if (fullyCreatedConnectorInfo.Orientation == ConnectorOrientation.Left)
|
||||
{
|
||||
Input.Add(Input.Count, fullyCreatedConnectorInfo);
|
||||
}
|
||||
else if (fullyCreatedConnectorInfo.Orientation == ConnectorOrientation.Right)
|
||||
{
|
||||
Output.Add(Output.Count, fullyCreatedConnectorInfo);
|
||||
}
|
||||
AddConnector(fullyCreatedConnectorInfo);
|
||||
}
|
||||
|
||||
if (this is SFCActionNode actionNode)
|
||||
{
|
||||
actionNode.LinkPoint = designer.LinkPoints.FirstOrDefault();
|
||||
}
|
||||
else if (this is SFCConditionNode sFCConditionNode)
|
||||
{
|
||||
sFCConditionNode.LinkPoint = new System.Collections.ObjectModel.ObservableCollection<LinkPoint>(designer.LinkPoints);
|
||||
}
|
||||
else if (this is Simulate_SolenoidViewModel simulate_SolenoidViewModel)
|
||||
{
|
||||
simulate_SolenoidViewModel.DILinkPoint = designer.LinkPoints.FirstOrDefault();
|
||||
simulate_SolenoidViewModel.DOLinkPoint = designer.LinkPoints.LastOrDefault();
|
||||
}
|
||||
else if (this is Simulate_StartViewModel simulate_StartViewModel)
|
||||
{
|
||||
simulate_StartViewModel.LinkPoint = designer.LinkPoints.FirstOrDefault();
|
||||
}
|
||||
else if (this is Simulate_TankViewModel simulate_TankViewModel)
|
||||
{
|
||||
simulate_TankViewModel.LinkPoint = designer.LinkPoints.FirstOrDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Dictionary<int, FullyCreatedConnectorInfo> Input { get; set; } = new Dictionary<int, FullyCreatedConnectorInfo>();
|
||||
public Dictionary<int, FullyCreatedConnectorInfo> Output { get; set; } = new Dictionary<int, FullyCreatedConnectorInfo>();
|
||||
public Dictionary<int, FullyCreatedConnectorInfo> Action { get; set; } = new Dictionary<int, FullyCreatedConnectorInfo>();
|
||||
|
||||
public virtual void ExecuteAddLeftInput(object parameter)
|
||||
{
|
||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Left, true);
|
||||
connector.XRatio = 0;
|
||||
Input.Add(Input.Count, connector);
|
||||
for (int i = 0; i < Input.Values.Count; i++)
|
||||
{
|
||||
Input[i].YRatio = (i + 1.0) / (Input.Values.Count + 1.0);
|
||||
}
|
||||
AddConnector(connector);
|
||||
}
|
||||
|
||||
public virtual void ExecuteAddTopInput(object parameter)
|
||||
{
|
||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Top, true);
|
||||
connector.YRatio = 0;
|
||||
Input.Add(Input.Count, connector);
|
||||
for (int i = 0; i < Input.Values.Count; i++)
|
||||
{
|
||||
Input[i].XRatio = (i + 1.0) / (Input.Values.Count + 1.0);
|
||||
if (Output.ContainsKey(i))
|
||||
{
|
||||
Output[i].XRatio = Input[i].XRatio;
|
||||
}
|
||||
}
|
||||
AddConnector(connector);
|
||||
}
|
||||
|
||||
public virtual void ExecuteAddRightOutput(object parameter)
|
||||
{
|
||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Right, true);
|
||||
connector.XRatio = 1;
|
||||
Output.Add(Output.Count, connector);
|
||||
for (int i = 0; i < Output.Values.Count; i++)
|
||||
{
|
||||
Output[i].YRatio = (i + 1.0) / (Output.Values.Count + 1.0);
|
||||
}
|
||||
AddConnector(connector);
|
||||
}
|
||||
|
||||
public virtual void ExecuteAddBottomOutput(object parameter)
|
||||
{
|
||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Bottom, true);
|
||||
connector.YRatio = 1;
|
||||
Output.Add(Output.Count, connector);
|
||||
for (int i = 0; i < Output.Values.Count; i++)
|
||||
{
|
||||
Output[i].XRatio = (i + 1.0) / (Output.Values.Count + 1.0);
|
||||
if (Input.ContainsKey(i))
|
||||
{
|
||||
Input[i].XRatio = Output[i].XRatio;
|
||||
}
|
||||
}
|
||||
|
||||
AddConnector(connector);
|
||||
}
|
||||
|
||||
public virtual void ExecuteAddActionOutput(object parameter)
|
||||
{
|
||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Right, true);
|
||||
connector.XRatio = 1;
|
||||
Action.Add(Action.Count, connector);
|
||||
Action[Action.Count - 1].YRatio = 0.5;
|
||||
AddConnector(connector);
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
public SFCNodeKinds Kind { get; set; }
|
||||
|
||||
private double _value;
|
||||
public double Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return _value;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _value, value);
|
||||
}
|
||||
}
|
||||
|
||||
private string _expression;
|
||||
public string Expression
|
||||
{
|
||||
get
|
||||
{
|
||||
return _expression;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _expression, value);
|
||||
}
|
||||
}
|
||||
|
||||
#region 暂不保存
|
||||
private int _status;
|
||||
|
||||
public int Status
|
||||
{
|
||||
get { return _status; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _status, value);
|
||||
}
|
||||
}
|
||||
|
||||
public List<SFCNode> NextNode { get; set; } = new List<SFCNode>();
|
||||
public List<SFCNode> PreNode { get; set; } = new List<SFCNode>();
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
28
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCNodeNode.cs
Normal file
28
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCNodeNode.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class SFCNodeNode : SFCNode
|
||||
{
|
||||
public SFCNodeNode() : base(SFCNodeKinds.Node)
|
||||
{
|
||||
ExecuteAddTopInput(null);
|
||||
ExecuteAddBottomOutput(null);
|
||||
ExecuteAddActionOutput(null);
|
||||
}
|
||||
|
||||
public SFCNodeNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||
{
|
||||
}
|
||||
|
||||
public SFCNodeNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
31
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCStartNode.cs
Normal file
31
Extensions/AIStudio.Wpf.SFC/ViewModels/SFCStartNode.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class SFCStartNode : SFCNode
|
||||
{
|
||||
public SFCStartNode() : this(null)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public SFCStartNode(IDiagramViewModel root) : base(root, SFCNodeKinds.Start)
|
||||
{
|
||||
ExecuteAddTopInput(null);
|
||||
ExecuteAddBottomOutput(null);
|
||||
}
|
||||
|
||||
public SFCStartNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||
{
|
||||
}
|
||||
|
||||
public SFCStartNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Text;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class Simulate_ListViewModel : SFCNode
|
||||
{
|
||||
public Simulate_ListViewModel() : base(SFCNodeKinds.Simulate_List)
|
||||
{
|
||||
ItemWidth = 170;
|
||||
ItemHeight = 260;
|
||||
}
|
||||
|
||||
public Simulate_ListViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||
{
|
||||
}
|
||||
|
||||
public Simulate_ListViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Reactive.Linq;
|
||||
using System.Text;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class Simulate_SolenoidViewModel : SFCNode
|
||||
{
|
||||
private IDisposable diChangedSubscription;
|
||||
public Simulate_SolenoidViewModel() : this(null)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public Simulate_SolenoidViewModel(IDiagramViewModel root) : base(root, SFCNodeKinds.Simulate_Solenoid)
|
||||
{
|
||||
ItemWidth = 32;
|
||||
ItemHeight = 32;
|
||||
|
||||
ExecuteAddLeftInput(null);
|
||||
ExecuteAddRightOutput(null);
|
||||
}
|
||||
|
||||
public Simulate_SolenoidViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||
{
|
||||
}
|
||||
|
||||
public Simulate_SolenoidViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
base.Init(root, initNew);
|
||||
CustomText = true;
|
||||
|
||||
if (diChangedSubscription != null)
|
||||
{
|
||||
diChangedSubscription.Dispose();
|
||||
}
|
||||
Random random = new Random();
|
||||
diChangedSubscription = WhenPropertyChanged.Where(o => o.ToString() == "Value").Throttle(TimeSpan.FromSeconds(random.Next(1,10))).Subscribe(OnValueChanged);//Sample
|
||||
}
|
||||
|
||||
protected override void InitNew()
|
||||
{
|
||||
base.InitNew();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 输入
|
||||
/// </summary>
|
||||
private LinkPoint _dILinkPoint;
|
||||
public LinkPoint DILinkPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return _dILinkPoint;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (_dILinkPoint != null)
|
||||
{
|
||||
_dILinkPoint.PropertyChanged -= _dILinkPoint_PropertyChanged;
|
||||
}
|
||||
SetProperty(ref _dILinkPoint, value);
|
||||
if (_dILinkPoint != null)
|
||||
{
|
||||
_dILinkPoint.PropertyChanged += _dILinkPoint_PropertyChanged;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void _dILinkPoint_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == "Value")
|
||||
{
|
||||
if (DOLinkPoint != null)
|
||||
{
|
||||
Value = DILinkPoint.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnValueChanged(string propertyName)
|
||||
{
|
||||
if (DOLinkPoint != null)
|
||||
{
|
||||
DOLinkPoint.Value = Value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反馈
|
||||
/// </summary>
|
||||
private LinkPoint _dOLinkPoint;
|
||||
public LinkPoint DOLinkPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return _dOLinkPoint;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _dOLinkPoint, value);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void ExecuteEditCommand(object parameter)
|
||||
{
|
||||
Simulate_SolenoidViewModelData data = new Simulate_SolenoidViewModelData(DILinkPoint, DOLinkPoint);
|
||||
if (visualiserService.ShowDialog(data) == true)
|
||||
{
|
||||
this.DILinkPoint = data.DILinkPoint;
|
||||
this.DOLinkPoint = data.DOLinkPoint;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class Simulate_SolenoidViewModelData : BindableBase
|
||||
{
|
||||
private string _title;
|
||||
public string Title
|
||||
{
|
||||
get
|
||||
{
|
||||
return _title;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _title, value);
|
||||
}
|
||||
}
|
||||
|
||||
public Simulate_SolenoidViewModelData(LinkPoint dILinkPoint, LinkPoint dOLinkPoint)
|
||||
{
|
||||
Title = "阀门";
|
||||
DILinkPoint = dILinkPoint;
|
||||
DOLinkPoint = dOLinkPoint;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 输入
|
||||
/// </summary>
|
||||
private LinkPoint _dILinkPoint;
|
||||
public LinkPoint DILinkPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return _dILinkPoint;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _dILinkPoint, value);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反馈
|
||||
/// </summary>
|
||||
private LinkPoint _dOLinkPoint;
|
||||
public LinkPoint DOLinkPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return _dOLinkPoint;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _dOLinkPoint, value);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class Simulate_StartViewModel : SFCNode
|
||||
{
|
||||
public Simulate_StartViewModel() : this(null)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public Simulate_StartViewModel(IDiagramViewModel root) : base(root, SFCNodeKinds.Simulate_Start)
|
||||
{
|
||||
ItemWidth = 32;
|
||||
ItemHeight = 32;
|
||||
|
||||
ExecuteAddLeftInput(null);
|
||||
ExecuteAddRightOutput(null);
|
||||
}
|
||||
|
||||
public Simulate_StartViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||
{
|
||||
}
|
||||
|
||||
public Simulate_StartViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private LinkPoint linkPoint;
|
||||
public LinkPoint LinkPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return linkPoint;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref linkPoint, value);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class Simulate_TankViewModel : SFCNode
|
||||
{
|
||||
public Simulate_TankViewModel() : this(null)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public Simulate_TankViewModel(IDiagramViewModel root) : base(root, SFCNodeKinds.Simulate_Tank)
|
||||
{
|
||||
ItemWidth = 50;
|
||||
ItemHeight = 120;
|
||||
|
||||
ExecuteAddLeftInput(null);
|
||||
ExecuteAddLeftInput(null);
|
||||
ExecuteAddRightOutput(null);
|
||||
ExecuteAddRightOutput(null);
|
||||
}
|
||||
|
||||
public Simulate_TankViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||
{
|
||||
}
|
||||
|
||||
public Simulate_TankViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void ExecuteAddLeftInput(object parameter)
|
||||
{
|
||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Left, true);
|
||||
connector.XRatio = 0;
|
||||
connector.YRatio = (30 + Input.Count * 60) / ItemHeight;
|
||||
Input.Add(Input.Count, connector);
|
||||
|
||||
AddConnector(connector);
|
||||
}
|
||||
|
||||
public override void ExecuteAddRightOutput(object parameter)
|
||||
{
|
||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Right, true);
|
||||
connector.XRatio = 1;
|
||||
connector.YRatio = (30 + Output.Count * 60) / ItemHeight;
|
||||
Output.Add(Output.Count, connector);
|
||||
|
||||
|
||||
AddConnector(connector);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 液位
|
||||
/// </summary>
|
||||
private LinkPoint linkPoint;
|
||||
public LinkPoint LinkPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return linkPoint;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref linkPoint, value);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void ExecuteEditCommand(object parameter)
|
||||
{
|
||||
Simulate_TankViewModelData data = new Simulate_TankViewModelData(LinkPoint);
|
||||
if (visualiserService.ShowDialog(data) == true)
|
||||
{
|
||||
this.LinkPoint = data.LinkPoint;
|
||||
}
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
double input = PreNode.OfType<Simulate_SolenoidViewModel>().Sum(p => p.DOLinkPoint?.Value ?? 0);
|
||||
double output = NextNode.OfType<Simulate_SolenoidViewModel>().Sum(p => p.DOLinkPoint?.Value ?? 0);
|
||||
if (LinkPoint != null)
|
||||
{
|
||||
LinkPoint.Value += input - output;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
|
||||
namespace AIStudio.Wpf.SFC.ViewModels
|
||||
{
|
||||
public class Simulate_TankViewModelData : BindableBase
|
||||
{
|
||||
private string _title;
|
||||
public string Title
|
||||
{
|
||||
get
|
||||
{
|
||||
return _title;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _title, value);
|
||||
}
|
||||
}
|
||||
|
||||
public Simulate_TankViewModelData(LinkPoint linkPoint)
|
||||
{
|
||||
Title = "容器";
|
||||
LinkPoint = linkPoint;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 液位
|
||||
/// </summary>
|
||||
private LinkPoint linkPoint;
|
||||
public LinkPoint LinkPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return linkPoint;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref linkPoint, value);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user