V1.0 修复容错功能报错
This commit is contained in:
parent
30ff04ea77
commit
c5b2c70d84
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
LeatherProject/GeBoShi/Ge.ico
Normal file
BIN
LeatherProject/GeBoShi/Ge.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 134 KiB |
@ -14,7 +14,7 @@
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
@ -32,9 +32,62 @@
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>
|
||||
</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="BarTenderPrint">
|
||||
<HintPath>..\..\..\..\..\版博士\源码\标签打印模块\BarTender\BarTenderPrint\BarTenderPrint\bin\x64\Debug\BarTenderPrint.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="CSkin">
|
||||
<HintPath>..\..\..\..\..\..\模块化\Code\MaiMuControl\MaiMuControl\bin\x64\Debug\CSkin.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="HZH_Controls">
|
||||
<HintPath>..\..\..\..\..\版博士\源码\V2.0\halftoneproject-master\BanBoShi\Dlls\HZH_Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MaiMuControl">
|
||||
<HintPath>..\..\..\..\..\..\模块化\Code\MaiMuControl\MaiMuControl\bin\x64\Debug\MaiMuControl.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Models, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Models\bin\Debug\Models.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OpenCvSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6adad1e807fea099, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OpenCvSharp4.4.8.0.20230708\lib\net48\OpenCvSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OpenCvSharp.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6adad1e807fea099, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OpenCvSharp4.Extensions.4.7.0.20230115\lib\net48\OpenCvSharp.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Service">
|
||||
<HintPath>..\Service\bin\Debug\Service.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Design" />
|
||||
<Reference Include="System.Drawing.Common, Version=4.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Drawing.Common.5.0.3\lib\net461\System.Drawing.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security" />
|
||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Windows.Forms.DataVisualization" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
@ -46,6 +99,7 @@
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ImageDefect\DefectLib.cs" />
|
||||
<Compile Include="Main.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@ -54,6 +108,22 @@
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SysCtrl\ConfMgr.cs" />
|
||||
<Compile Include="SysCtrl\SysEnum.cs" />
|
||||
<Compile Include="SysCtrl\SysMgr.cs" />
|
||||
<Compile Include="UI\Load\InitFrm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UI\Load\InitFrm.Designer.cs">
|
||||
<DependentUpon>InitFrm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UI\SysSet\SysSetFrm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UI\SysSet\SysSetFrm.Designer.cs">
|
||||
<DependentUpon>SysSetFrm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UI\UIStyle.cs" />
|
||||
<EmbeddedResource Include="Main.resx">
|
||||
<DependentUpon>Main.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
@ -65,7 +135,15 @@
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="UI\Load\InitFrm.resx">
|
||||
<DependentUpon>InitFrm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UI\SysSet\SysSetFrm.resx">
|
||||
<DependentUpon>SysSetFrm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
@ -79,5 +157,8 @@
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Ge.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
697
LeatherProject/GeBoShi/ImageDefect/DefectLib.cs
Normal file
697
LeatherProject/GeBoShi/ImageDefect/DefectLib.cs
Normal file
@ -0,0 +1,697 @@
|
||||
using HZH_Controls.Controls;
|
||||
using MaiMuControl.Device;
|
||||
using Models;
|
||||
using OpenCvSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using static System.ComponentModel.Design.ObjectSelectorEditor;
|
||||
|
||||
namespace GeBoShi.ImageDefect
|
||||
{
|
||||
public class DefectLib
|
||||
{
|
||||
#region C++dll
|
||||
private const string dll_path = "yolo_trt.dll";
|
||||
[DllImport(dll_path, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)]
|
||||
static extern IntPtr CreateDetector(string model_path);
|
||||
|
||||
[DllImport(dll_path, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
|
||||
extern static bool DestroyDetector(IntPtr detector);
|
||||
|
||||
/// <summary>
|
||||
/// 非0值表示成功,0表示失败 返回小图张数
|
||||
/// </summary>
|
||||
/// <param name="detector"></param>
|
||||
/// <returns></returns>
|
||||
[DllImport(dll_path, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)]
|
||||
static extern int GetBatchSize(IntPtr detector);
|
||||
|
||||
[DllImport(dll_path, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)]
|
||||
static extern bool Detect(IntPtr detector, ref byte bgrs_data,
|
||||
int image_num, int width, int height, int channels,
|
||||
float conf_threshold, float iou_threshold,
|
||||
ref float output, int output_size, ref int object_num,
|
||||
int expand_pixel);
|
||||
#endregion
|
||||
|
||||
public Action<WarningEnum, string> WarningEvent;
|
||||
/// <summary>
|
||||
/// 检测结果JSON(原图,结果)
|
||||
/// </summary>
|
||||
public Action<DefectTask> finishEvent;
|
||||
/// <summary>
|
||||
/// 是否打开设备成功
|
||||
/// </summary>
|
||||
public bool IsInit { get; private set; } = false;
|
||||
|
||||
private IntPtr detector = IntPtr.Zero;
|
||||
|
||||
private Thread t_task, t_task_operation, t_task_maketag;
|
||||
//=======task list
|
||||
private List<DefectTask> taskList = new List<DefectTask>();
|
||||
private List<DefectTask> taskOperationList = new List<DefectTask>();
|
||||
private List<DefectTask> taskMakeTagList = new List<DefectTask>();
|
||||
|
||||
private string preModelName = "";
|
||||
|
||||
#region 图片处理参数
|
||||
private readonly int image_width = 2048;
|
||||
private readonly int image_hight = 2048;
|
||||
private readonly int image_channels = 3;
|
||||
private readonly int image_bytes = 2048 * 2048 * 3;
|
||||
private readonly int detect_elem_size = 7; //维度数据结果,x y w h conf classid
|
||||
private readonly int detect_max_object_num = 20;//这个指的是一张子图可能最多给你返回的目标个球
|
||||
|
||||
public Action<int, int> QueueCountEvent;//0/1/2, 数量
|
||||
#endregion
|
||||
public DefectLib()
|
||||
{
|
||||
}
|
||||
|
||||
public bool start()
|
||||
{
|
||||
try
|
||||
{
|
||||
//detector = CreateDetector(Config.model_path, Config.labels_path, true, 6);
|
||||
//if (detector == IntPtr.Zero)
|
||||
// throw new Exception("模型初始化失败!");
|
||||
preModelName = "";
|
||||
|
||||
IsInit = true;
|
||||
taskList.Clear();
|
||||
taskOperationList.Clear();
|
||||
taskMakeTagList.Clear();
|
||||
|
||||
t_task = new System.Threading.Thread(runStep);
|
||||
t_task.IsBackground = true;
|
||||
t_task.Start();
|
||||
|
||||
t_task_operation = new System.Threading.Thread(run2);
|
||||
t_task_operation.IsBackground = true;
|
||||
t_task_operation.Start();
|
||||
|
||||
t_task_maketag = new System.Threading.Thread(run3);
|
||||
t_task_maketag.IsBackground = true;
|
||||
t_task_maketag.Start();
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
WarningEvent?.Invoke(WarningEnum.High, ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void stop()
|
||||
{
|
||||
if (!IsInit) return;
|
||||
|
||||
try
|
||||
{
|
||||
IsInit = false;
|
||||
//timer.Elapsed -= Timer_Elapsed;
|
||||
preModelName = "";
|
||||
//释放模型
|
||||
if (detector != IntPtr.Zero)
|
||||
{
|
||||
DestroyDetector(detector);
|
||||
detector = IntPtr.Zero;
|
||||
}
|
||||
if (t_task != null)
|
||||
{
|
||||
bool b = t_task.Join(5000);
|
||||
if (!b) t_task.Abort();
|
||||
t_task = null;
|
||||
}
|
||||
|
||||
if (t_task_operation != null)
|
||||
{
|
||||
bool b = t_task_operation.Join(5000);
|
||||
if (!b) t_task_operation.Abort();
|
||||
t_task_operation = null;
|
||||
}
|
||||
|
||||
if (t_task_maketag != null)
|
||||
{
|
||||
bool b = t_task_maketag.Join(5000);
|
||||
if (!b) t_task_maketag.Abort();
|
||||
t_task_maketag = null;
|
||||
}
|
||||
taskList.Clear();
|
||||
taskOperationList.Clear();
|
||||
taskMakeTagList.Clear();
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 切割(先左右,后上下)
|
||||
/// </summary>
|
||||
/// <param name="mat"></param>
|
||||
/// <param name="width"></param>
|
||||
/// <param name="height"></param>
|
||||
/// <returns></returns>
|
||||
private Mat[] OpenCVToCutsMat(Mat mat, int width, int height)
|
||||
{
|
||||
Mat[] array = new Mat[mat.Width / width * mat.Height / height];
|
||||
int num = 0;
|
||||
for (int i = 0; i < mat.Height / height; i++)
|
||||
{
|
||||
for (int j = 0; j < mat.Width / width; j++)
|
||||
{
|
||||
int x = j * width;
|
||||
int y = i * height;
|
||||
System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(x, y, width, height);
|
||||
Rect roi = new Rect(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height);
|
||||
array[num] = new Mat(mat, roi).Clone();
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
private void runStep()
|
||||
{
|
||||
int step = 0;
|
||||
while (IsInit)
|
||||
{
|
||||
if (taskList.Count < 1)
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
step = 1;
|
||||
var task = pop();
|
||||
try
|
||||
{
|
||||
if (task != null)
|
||||
{
|
||||
Stopwatch stopwatch = Stopwatch.StartNew();
|
||||
step = 2;
|
||||
if (preModelName != task.modelName)
|
||||
{
|
||||
step = 3;
|
||||
//先释放模型
|
||||
if (detector != IntPtr.Zero)
|
||||
{
|
||||
step = 4;
|
||||
DestroyDetector(detector);
|
||||
detector = IntPtr.Zero;
|
||||
}
|
||||
step = 5;
|
||||
detector = CreateDetector($"./models/{task.modelName}");
|
||||
if (detector == IntPtr.Zero)
|
||||
throw new Exception($"模型({task.modelName})初始化失败!");
|
||||
step = 6;
|
||||
preModelName = task.modelName;
|
||||
}
|
||||
//源图
|
||||
//Bitmap bmp = yolo1.Read2Bmp(file_path);
|
||||
//切割图像,输入图像格式14208*10640
|
||||
stopwatch.Start();
|
||||
//task.resizeBmp = OpenCVUtil.resize( task.bmp.Clone(), task.resize.Width, task.resize.Height);//在外面已做了resize
|
||||
|
||||
//Cv2.CvtColor(task.bmp, task.bmpBgr2rgb, ColorConversionCodes.BGR2RGB);
|
||||
//task.bmps_cut = OpenCVToCutsMat(task.bmpBgr2rgb, image_width, image_hight); //这里cut时之前加的clone
|
||||
step = 7;
|
||||
task.bmps_cut = OpenCVToCutsMat(task.bmp, image_width, image_hight); //这里cut时之前加的clone
|
||||
stopwatch.Stop();
|
||||
task.stopwatch[0] = stopwatch.ElapsedMilliseconds;
|
||||
|
||||
//Resize图像
|
||||
//stopwatch.Restart();
|
||||
//task.bmps_resize = yolo1.OpenCVToResizesMat(task.bmps_cut, task.resize.Width, task.resize.Height);
|
||||
//stopwatch.Stop();
|
||||
//task.stopwatch[1] = stopwatch.ElapsedMilliseconds;
|
||||
|
||||
//预处理模型
|
||||
//stopwatch.Restart();
|
||||
//task.tensors = yolo1.PreprocessImageMat(task.bmps_resize);
|
||||
//stopwatch.Stop();
|
||||
//task.stopwatch[2] = stopwatch.ElapsedMilliseconds;
|
||||
step = 8;
|
||||
lock (taskOperationList)
|
||||
{
|
||||
taskOperationList.Add(task);
|
||||
QueueCountEvent?.BeginInvoke(1, taskOperationList.Count, null, null);
|
||||
}
|
||||
step = 9;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
WarningEvent?.Invoke(WarningEnum.Low, $"DefectLib task1 err({step}):" + ex.Message);
|
||||
task.isSucceed = false;
|
||||
task.resultInfo = ex.Message;
|
||||
callback(task);
|
||||
}
|
||||
}
|
||||
}
|
||||
//推理
|
||||
private void run2()
|
||||
{
|
||||
QualifiedLimit qualifiedLimit;
|
||||
while (IsInit)
|
||||
{
|
||||
if (taskOperationList.Count < 1)
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
var task = pop2();
|
||||
int cut_count = 0, step = 0;
|
||||
try
|
||||
{
|
||||
if (task != null && task.bmps_cut.Count() > 0)
|
||||
{
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, "DefectLib tasks 运行推理...");
|
||||
cut_count = task.bmps_cut.Count();
|
||||
Stopwatch stopwatch = Stopwatch.StartNew();
|
||||
//====推理(必需单队列)
|
||||
stopwatch.Start();
|
||||
// 把数据转为byte数组,【h, w, c】的bgr格式,第一张在前,第二张在后
|
||||
byte[] imgData = new byte[image_bytes * cut_count];
|
||||
for (int i = 0; i < cut_count; i++)
|
||||
Marshal.Copy(task.bmps_cut[i].Data, imgData, image_bytes * i, image_bytes);
|
||||
step = 1;
|
||||
stopwatch.Stop();
|
||||
task.stopwatch[1] = stopwatch.ElapsedMilliseconds;
|
||||
stopwatch.Restart();
|
||||
|
||||
task.output = new float[cut_count * detect_elem_size * detect_max_object_num];
|
||||
task.output_num = new int[cut_count];
|
||||
//执行推理
|
||||
step = 2;
|
||||
bool ok = Detect(detector, ref imgData[0], cut_count, image_width, image_hight, image_channels,
|
||||
0.25f, 0.45f, ref task.output[0], task.output.Length, ref task.output_num[0], task.expand_pixel);
|
||||
//bool ok = Detect(_detector, ref imgData[0], imgs.Count, ImageWidth, image_hight, image_channels,
|
||||
// 0.25f, 0.45f, ref output[0], output.Length, ref output_num[0]);
|
||||
step = 3;
|
||||
stopwatch.Stop();
|
||||
task.stopwatch[2] = stopwatch.ElapsedMilliseconds;
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"DefectLib tasks 结果推理={ok}");
|
||||
for (int i = 0; i < cut_count; i++)
|
||||
task.bmps_cut[i].Dispose();
|
||||
if (ok == false)
|
||||
throw new Exception($"推理失败或者输入数组太小({cut_count})");
|
||||
|
||||
//
|
||||
lock (taskMakeTagList)
|
||||
{
|
||||
taskMakeTagList.Add(task);
|
||||
QueueCountEvent?.BeginInvoke(2, taskMakeTagList.Count, null, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
WarningEvent?.Invoke(WarningEnum.Low, $"DefectLib task2 err({step}):({cut_count}){ex.Message}");
|
||||
task.isSucceed = false;
|
||||
task.resultInfo = ex.Message;
|
||||
callback(task);
|
||||
}
|
||||
}
|
||||
}
|
||||
//打标
|
||||
private void run3()
|
||||
{
|
||||
QualifiedLimit qualifiedLimit;
|
||||
while (IsInit)
|
||||
{
|
||||
if (taskMakeTagList.Count < 1)
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
var task = pop3();
|
||||
int liStep = 0;
|
||||
try
|
||||
{
|
||||
Stopwatch stopwatch = Stopwatch.StartNew();
|
||||
stopwatch.Restart();
|
||||
int cut_count = task.bmps_cut.Count();//上面bmps_cut已销毁
|
||||
int colNum = task.bmp.Width / image_width;
|
||||
int rowNum = task.bmp.Height / image_hight;
|
||||
int count = 0;
|
||||
liStep = 3;
|
||||
|
||||
//车用革去除接头处横档误判
|
||||
bool haveJieTou = false;
|
||||
List<DefectLabelInfo> DefectLabelInfoList = new List<DefectLabelInfo>();
|
||||
|
||||
for (int i = 0; i < cut_count; i++)
|
||||
{
|
||||
liStep = i * 100;
|
||||
task.resultInfo += $"第 {i}/{cut_count} 张小图(大图索引{task.photoIndex}): 缺陷数 = {task.output_num[i]}\n";
|
||||
//task.resultInfo +=$"大图({task.tag})[{task.bmp.Width}*{task.bmp.Height}],第 {i + 1}/{cut_count} 张小图[{task.bmps_cut[i].Width}*{task.bmps_cut[i].Height}]: 瑕疵output_num = {output_num[i]}\n";
|
||||
#region 检测信息汇总
|
||||
for (int j = 0; j < task.output_num[i]; j++)//缺陷数
|
||||
{
|
||||
liStep += j;//0
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"-------");
|
||||
int index = count * detect_elem_size;
|
||||
|
||||
// 打印输出信息(示例代码,根据实际情况进行修改和格式化)
|
||||
// 获取输出信息
|
||||
int x = (int)task.output[index];
|
||||
int y = (int)task.output[index + 1];
|
||||
int w = (int)task.output[index + 2];
|
||||
int h = (int)task.output[index + 3];
|
||||
int classId = (int)task.output[index + 4];
|
||||
double confidence = Math.Round(task.output[index + 5], 2); //置信度
|
||||
double contrast = Math.Round(task.output[index + 6], 3);//对比度
|
||||
//y = image_hight-y-h;//转到右下角为原点
|
||||
count++;
|
||||
|
||||
var cmW = Math.Round(w * task.widthRatio / task.cm2px_x, 2);
|
||||
var cmH = Math.Round(h * task.widthRatio / task.cm2px_y, 2);
|
||||
// 打印输出信息
|
||||
task.resultInfo += $"----{i}----col:{i % colNum}/{colNum} row:{i / colNum}/{colNum}-----------\n目标:{j + 1} 类别ID:{classId} 置信度:{confidence} 对比度:{contrast} 坐标:({x},{y})-({x + w},{y + h}) 宽高:w={w},h={h}; \n";
|
||||
|
||||
DefectLabelInfoList.Add(new DefectLabelInfo()
|
||||
{
|
||||
x = (int)task.output[index],
|
||||
y = (int)task.output[index + 1],
|
||||
w = (int)task.output[index + 2],
|
||||
h = (int)task.output[index + 3],
|
||||
classId = (int)task.output[index + 4],
|
||||
confidence = Math.Round(task.output[index + 5], 2), //置信度
|
||||
contrast = Math.Round(task.output[index + 6], 3),//对比度
|
||||
cmW = Math.Round(w * task.widthRatio / task.cm2px_x, 2),
|
||||
cmH = Math.Round(h * task.widthRatio / task.cm2px_y, 2),
|
||||
i = i,
|
||||
j = j,
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
//结果过滤
|
||||
#region 结果过滤
|
||||
//降序排序,先得到是否有接头检出
|
||||
List<DefectLabelInfo> DefectLabelInfoListByClassID = DefectLabelInfoList.OrderByDescending(t => t.classId).ToList();//降序
|
||||
for (int q = 0; q < DefectLabelInfoList.Count; q++)
|
||||
{
|
||||
//是否满足此产品标准
|
||||
if (task.qualifiedLimitList != null && task.qualifiedLimitList.Count > 0)
|
||||
{
|
||||
qualifiedLimit = task.qualifiedLimitList.FirstOrDefault(m => m.Code == task.labelDic[DefectLabelInfoList[q].classId]);
|
||||
if (qualifiedLimit != null)
|
||||
{
|
||||
//if ((qualifiedLimit.ZXD > 0 && qualifiedLimit.ZXD > confidence)
|
||||
// || (qualifiedLimit.ContrastTop + qualifiedLimit.ContrastLower > 0 && x> qualifiedLimit.ContrastLower && x < qualifiedLimit.ContrastTop)
|
||||
// || (qualifiedLimit.Area > 0 && qualifiedLimit.Area > cmW * cmH))
|
||||
if (DefectLabelInfoList[q].confidence <= qualifiedLimit.ZXD)//confidence > qualifiedLimit.ZXD 是瑕疵 才继续判断下面的两个条件
|
||||
{
|
||||
task.resultInfo += $" 置信度不满足此产品瑕疵标准,跳过! \n";
|
||||
continue;
|
||||
}
|
||||
|
||||
//下限<对比度<上限:不是瑕疵
|
||||
var ContrastTotal = qualifiedLimit.ContrastTop + qualifiedLimit.ContrastLower;
|
||||
if (qualifiedLimit.IsOR)
|
||||
{
|
||||
if (!(
|
||||
(qualifiedLimit.Area <= 0 || DefectLabelInfoList[q].cmW * DefectLabelInfoList[q].cmH >= qualifiedLimit.Area) ||
|
||||
(ContrastTotal <= 0 || (DefectLabelInfoList[q].contrast < qualifiedLimit.ContrastLower || DefectLabelInfoList[q].contrast > qualifiedLimit.ContrastTop))))
|
||||
{
|
||||
task.resultInfo += $" 不满足此产品瑕疵标准,跳过! \n";
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"判断不是瑕疵:类别ID:{classId}; 置信度({confidence},[{qualifiedLimit.ZXD}]); isOr({qualifiedLimit.IsOR}); 面积({cmW * cmH},[{ qualifiedLimit.Area}]); 对比度({contrast},[{qualifiedLimit.ContrastLower}-{qualifiedLimit.ContrastTop}])");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!(
|
||||
(qualifiedLimit.Area <= 0 || DefectLabelInfoList[q].cmW * DefectLabelInfoList[q].cmH >= qualifiedLimit.Area) &&
|
||||
(ContrastTotal <= 0 || (DefectLabelInfoList[q].contrast < qualifiedLimit.ContrastLower || DefectLabelInfoList[q].contrast > qualifiedLimit.ContrastTop))))
|
||||
{
|
||||
task.resultInfo += $" 不满足此产品瑕疵标准,跳过! \n";
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"判断不是瑕疵:类别ID:{classId}; 置信度({confidence},[{qualifiedLimit.ZXD}]); isOr({qualifiedLimit.IsOR}); 面积({cmW * cmH},[{ qualifiedLimit.Area}]); 对比度({contrast},[{qualifiedLimit.ContrastLower}-{qualifiedLimit.ContrastTop}])");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (task.labelDic[DefectLabelInfoList[q].classId] == "jietou")
|
||||
haveJieTou = true;
|
||||
if (haveJieTou && (task.labelDic[DefectLabelInfoList[q].classId] == "hengdang"))
|
||||
{
|
||||
task.resultInfo += $" 判断为接头处横档,跳过! \n";
|
||||
continue;
|
||||
}
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"判断是瑕疵:类别ID:{classId}; 置信度({confidence},[{qualifiedLimit.ZXD}]); isOr({qualifiedLimit.IsOR}); 面积({cmW * cmH},[{ qualifiedLimit.Area}]); 对比度({contrast},[{qualifiedLimit.ContrastLower}-{qualifiedLimit.ContrastTop}])");
|
||||
}
|
||||
}
|
||||
liStep++;//1
|
||||
//打标
|
||||
var point1 = new OpenCvSharp.Point((DefectLabelInfoList[q].i % colNum) * image_width + DefectLabelInfoList[q].x, (DefectLabelInfoList[q].i / colNum) * image_hight + DefectLabelInfoList[q].y);
|
||||
var point2 = new OpenCvSharp.Point(point1.X + DefectLabelInfoList[q].w, point1.Y + DefectLabelInfoList[q].h);
|
||||
liStep++;//2
|
||||
task.resultInfo += $" 转换到大图坐标(px):p1={point1.X},{point1.Y}; p2={point2.X},{point2.Y}\n";
|
||||
Cv2.Rectangle(task.bmpTag, point1, point2, new Scalar(0.0, 0.0, 255.0), 1);//画打标点
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"保存第 {count} 行缺陷信息;");
|
||||
var cmX = Math.Round(point1.X * task.widthRatio / task.cm2px_x, 2);
|
||||
var cmY = Math.Round((task.bmp.Height - point1.Y - DefectLabelInfoList[q].h) * task.widthRatio / task.cm2px_y, 2);//外面计Y从右下角为原点
|
||||
liStep++;//3
|
||||
task.resultInfo += $" 转换到大图坐标(cm)[widthRatio={task.widthRatio}]:x={cmX},y={cmY}; w={DefectLabelInfoList[q].cmW},h={DefectLabelInfoList[q].cmH}\n";
|
||||
task.excelTable.Rows.Add($"{task.photoIndex}", cmX, cmY, DefectLabelInfoList[q].cmW, DefectLabelInfoList[q].cmH, DefectLabelInfoList[q].j + 1, DefectLabelInfoList[q].classId, DefectLabelInfoList[q].confidence, DefectLabelInfoList[q].contrast);
|
||||
|
||||
liStep++;//4
|
||||
//切缺陷小图
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"保存第 {count} 个缺陷小图;");
|
||||
int left, top, decX, decY;
|
||||
decX = (DefectLabelInfoList[q].w > 236 ? 20 : 256 - DefectLabelInfoList[q].w) / 2;
|
||||
decY = (DefectLabelInfoList[q].h > 236 ? 20 : 256 - DefectLabelInfoList[q].h) / 2;
|
||||
left = point1.X - decX;
|
||||
top = point1.Y - decY;
|
||||
if (left < 0) left = 0;
|
||||
if (top < 0) top = 0;
|
||||
|
||||
int width = DefectLabelInfoList[q].w + decX * 2;
|
||||
int height = DefectLabelInfoList[q].h + decY * 2;
|
||||
if (left + width > task.bmp.Width - 1) width = task.bmp.Width - left - 1;
|
||||
if (top + height > task.bmp.Height - 1) height = task.bmp.Height - top - 1;
|
||||
liStep++;//5
|
||||
Rect roi = new Rect(left, top, width, height);
|
||||
liStep++;//6
|
||||
if (height < 1 || width < 1)
|
||||
{
|
||||
task.resultInfo += $" 打标到大图坐标Rect(px):left={left},top={top}; width={width},height={height}\n";
|
||||
task.resultInfo += $" test point1.Y={point1.Y},h={DefectLabelInfoList[q].h}; top={top},mat.Height={task.bmp.Height}\n================\n";
|
||||
WarningEvent?.Invoke(WarningEnum.Normal, task.resultInfo);
|
||||
}
|
||||
|
||||
//保存
|
||||
//string filename = $"{Config.appBasePath}\\temp\\{task.tag}\\{task.tag}_X{mmX.ToString()}_Y{mmY.ToString()}_W{mmW.ToString()}_H{mmH.ToString()}_目标{j + 1}_类别{classId}_置信度{confidence}.bmp";
|
||||
//OpenCvSharp.Extensions.BitmapConverter.ToBitmap(new Mat(task.bmp, roi)).Save(filename, ImageFormat.Jpeg);
|
||||
|
||||
task.lstDefectBmp.Add(new Mat(task.bmpTag, roi).Clone());
|
||||
liStep++;//7
|
||||
}
|
||||
#endregion
|
||||
liStep = 99;
|
||||
stopwatch.Stop();
|
||||
task.stopwatch[3] = stopwatch.ElapsedMilliseconds;
|
||||
|
||||
task.isSucceed = true;
|
||||
callback(task);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
WarningEvent?.Invoke(WarningEnum.Low, $"DefectLib task3 err({liStep}):" + ex.Message);
|
||||
task.isSucceed = false;
|
||||
task.resultInfo = ex.Message;
|
||||
callback(task);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region 结果回调
|
||||
private void callback(DefectTask task)
|
||||
{
|
||||
//返回成功/失败,异步调用
|
||||
if (task.finishEvent != null || (task.finishEvent = finishEvent) != null)
|
||||
//task.finishEvent.BeginInvoke(result, errInfo, res => task.finishEvent.EndInvoke(res), null);
|
||||
System.Threading.ThreadPool.QueueUserWorkItem(waitCallback, task);
|
||||
}
|
||||
//异步回调
|
||||
WaitCallback waitCallback = new WaitCallback(o =>
|
||||
{
|
||||
var task = (DefectTask)o;
|
||||
task.finishEvent(task);
|
||||
});
|
||||
#endregion
|
||||
|
||||
#region 处理队列
|
||||
public void add(DefectTask task)
|
||||
{
|
||||
lock (taskList)
|
||||
{
|
||||
taskList.Add(task);
|
||||
QueueCountEvent?.BeginInvoke(0, taskList.Count, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private DefectTask pop()
|
||||
{
|
||||
lock (taskList)
|
||||
{
|
||||
if (taskList.Count < 1)
|
||||
return null;
|
||||
|
||||
//int index = 0;// taskList.FindIndex(p => { return p.isSync; });
|
||||
//if (index < 0) index = 0;
|
||||
var task = taskList[0];
|
||||
taskList.RemoveAt(0);
|
||||
QueueCountEvent?.BeginInvoke(0, taskList.Count, null, null);
|
||||
return task;
|
||||
}
|
||||
}
|
||||
private DefectTask pop2()
|
||||
{
|
||||
lock (taskOperationList)
|
||||
{
|
||||
if (taskOperationList.Count < 1)
|
||||
return null;
|
||||
|
||||
//int index = 0;// taskList.FindIndex(p => { return p.isSync; });
|
||||
//if (index < 0) index = 0;
|
||||
var task = taskOperationList[0];
|
||||
taskOperationList.RemoveAt(0);
|
||||
QueueCountEvent?.BeginInvoke(1, taskOperationList.Count, null, null);
|
||||
return task;
|
||||
}
|
||||
}
|
||||
private DefectTask pop3()
|
||||
{
|
||||
lock (taskMakeTagList)
|
||||
{
|
||||
if (taskMakeTagList.Count < 1)
|
||||
return null;
|
||||
|
||||
//int index = 0;// taskList.FindIndex(p => { return p.isSync; });
|
||||
//if (index < 0) index = 0;
|
||||
var task = taskMakeTagList[0];
|
||||
taskMakeTagList.RemoveAt(0);
|
||||
QueueCountEvent?.BeginInvoke(2, taskMakeTagList.Count, null, null);
|
||||
return task;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
stop();
|
||||
}
|
||||
|
||||
private class DefectLabelInfo
|
||||
{
|
||||
public int x { get; set; }
|
||||
public int y { get; set; }
|
||||
public int w { get; set; }
|
||||
public int h { get; set; }
|
||||
public int classId { get; set; }
|
||||
public double confidence { get; set; } //置信度
|
||||
public double contrast { get; set; }//对比度
|
||||
|
||||
public double cmW { get; set; }
|
||||
public double cmH { get; set; }
|
||||
|
||||
public int i { get; set; }//小图index
|
||||
public int j { get; set; }//缺陷index
|
||||
}
|
||||
}
|
||||
|
||||
public class DefectTask
|
||||
{
|
||||
public DefectTask()
|
||||
{
|
||||
// 创建一个 DataTable 对象来存储数据
|
||||
excelTable = new DataTable("MyData");
|
||||
// 添加列到 DataTable
|
||||
excelTable.Columns.Add("FileName", typeof(string));
|
||||
excelTable.Columns.Add("X", typeof(decimal));
|
||||
excelTable.Columns.Add("Y", typeof(decimal));
|
||||
excelTable.Columns.Add("W", typeof(decimal));
|
||||
excelTable.Columns.Add("H", typeof(decimal));
|
||||
excelTable.Columns.Add("目标", typeof(int));
|
||||
excelTable.Columns.Add("类别", typeof(int));
|
||||
excelTable.Columns.Add("置信度", typeof(decimal));
|
||||
excelTable.Columns.Add("对比度", typeof(decimal));
|
||||
// 向 DataTable 中添加数据行
|
||||
//excelTable.Rows.Add("John Doe", 30);
|
||||
//excelTable.Rows.Add("Jane Smith", 25);
|
||||
}
|
||||
/// <summary>
|
||||
/// 处理参数
|
||||
/// </summary>
|
||||
public int expand_pixel;
|
||||
public int cm2px_x;
|
||||
public int cm2px_y;
|
||||
|
||||
public Dictionary<int, string> labelDic;
|
||||
/// <summary>
|
||||
/// 模型名字
|
||||
/// </summary>
|
||||
public string modelName;
|
||||
|
||||
public Models.Records record;
|
||||
//public string bmpPath;//源图路径(仅目录)
|
||||
/// <summary>
|
||||
/// 源图(resize后的)
|
||||
/// </summary>
|
||||
public Mat bmp;
|
||||
//public Mat bmpBgr2rgb=new Mat();
|
||||
|
||||
public System.Drawing.Size resize = new System.Drawing.Size(224, 224);
|
||||
//public Mat resizeBmp;//resize后 BGR2RGB图,只用于识别
|
||||
public Mat bmpTag;
|
||||
/// <summary>
|
||||
/// 图片索引0-n
|
||||
/// </summary>
|
||||
public int photoIndex;//excel中对应的图像路径标识
|
||||
public float widthRatio;//宽度比例,resize前/resize后
|
||||
//切割后
|
||||
public Mat[] bmps_cut;
|
||||
|
||||
//用于比对参数 }//置信度 面积 对比度
|
||||
public List<QualifiedLimit> qualifiedLimitList;
|
||||
|
||||
//推理后结果用于打标
|
||||
public float[] output;
|
||||
public int[] output_num;
|
||||
|
||||
//
|
||||
/// <summary>
|
||||
/// 完成后回调
|
||||
/// </summary>
|
||||
public Action<DefectTask> finishEvent;
|
||||
//==结果返回
|
||||
public bool isSucceed;//转换是否成功
|
||||
public string resultInfo = "";//成功或失败信息
|
||||
|
||||
public List<Mat> lstDefectBmp = new List<Mat>();
|
||||
/// <summary>
|
||||
/// fileIndex,x_mm,y_mm,w_mm,h_mm,目标,类别ID,置信度
|
||||
/// </summary>
|
||||
public DataTable excelTable = new DataTable();
|
||||
public long[] stopwatch = new long[4];
|
||||
}
|
||||
}
|
1375
LeatherProject/GeBoShi/Main.Designer.cs
generated
1375
LeatherProject/GeBoShi/Main.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,16 @@
|
||||
using System;
|
||||
using GeBoShi.SysCtrl;
|
||||
using GeBoShi.UI;
|
||||
using GeBoShi.UI.Load;
|
||||
using GeBoShi.UI.SysSet;
|
||||
using HZH_Controls.Forms;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
@ -15,6 +21,262 @@ namespace GeBoShi
|
||||
public Main()
|
||||
{
|
||||
InitializeComponent();
|
||||
UIStyle.SetUIStyle(this);
|
||||
|
||||
this.uiTitel1.FatherForm = this;
|
||||
this.uiTitel1.UserMenuStrip = this.menuStrip1;
|
||||
this.uiTitel1.ShowContrlBox(true, true, true);
|
||||
this.uiTitel1.ShowMenu();
|
||||
|
||||
this.DoubleBuffered = true;//设置本窗体
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
|
||||
SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲
|
||||
}
|
||||
|
||||
#region 初始化
|
||||
/// <summary>
|
||||
/// 初始化
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private bool InitSystem()
|
||||
{
|
||||
//进入初始化,初始化失败则中断
|
||||
InitFrm initFrm = new InitFrm();
|
||||
initFrm.ShowDialog();
|
||||
if (initFrm.DialogResult == DialogResult.OK)
|
||||
{
|
||||
//初始化成功
|
||||
}
|
||||
else
|
||||
{
|
||||
initFrm.Dispose();
|
||||
return false;
|
||||
}
|
||||
initFrm.Dispose();
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 界面刷新
|
||||
private void ResetUI(bool clearSN)
|
||||
{
|
||||
|
||||
//保持产品名称和料号
|
||||
//txtProductName.Text = txtProductCode.Text = txtProductSN.Text = "";
|
||||
if (clearSN)
|
||||
cbPdtSN.Text = "";
|
||||
|
||||
this.lstLog.Items.Clear();
|
||||
|
||||
this.tsbtnImpStop.Enabled = false;
|
||||
this.tsbtnStart.Enabled = true;
|
||||
this.tsbtnStop.Enabled = false;
|
||||
|
||||
this.cbPdtSN.Enabled = true;
|
||||
this.cbProductCode.Enabled = true;
|
||||
this.cbProductBatch.Enabled = true;
|
||||
this.cbProductReelNum.Enabled = true;
|
||||
this.cbProductNum.Enabled = true;
|
||||
|
||||
tslabelTime.Text = "实时测试:0.00s";
|
||||
|
||||
this.Refresh();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 权限判断
|
||||
private void UserRightCheck()
|
||||
{
|
||||
this.tsmPdtMgr.Enabled = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.Product);
|
||||
this.tsmSysDataFind.Visible = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.Statistics);
|
||||
|
||||
this.tsmUserList.Enabled = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.User);
|
||||
this.tsmUserRight.Enabled = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.Role);
|
||||
if (this.tsmUserList.Enabled == false && this.tsmUserRight.Enabled == false)
|
||||
this.tsmSysUserMgr.Visible = false;
|
||||
else
|
||||
this.tsmSysUserMgr.Visible = true;
|
||||
|
||||
this.tsmDebug.Enabled = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.Debug);
|
||||
this.tsmSysSet.Enabled = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.ParamsSetting);
|
||||
|
||||
if (this.tsmDebug.Enabled == false && this.tsmSysSet.Enabled == false)
|
||||
this.stmSysSet.Visible = false;
|
||||
else
|
||||
this.stmSysSet.Visible = true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 运行判断
|
||||
/// <summary>
|
||||
/// 系统是否在运行
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private bool SystemIsRun()
|
||||
{
|
||||
if (SysMgr.Instance.IsRuning)
|
||||
{
|
||||
FrmDialog.ShowDialog(this, "设备正在运行中!", "警告", false);
|
||||
//MessageBox.Show("设备正在运行中!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 界面事件
|
||||
private void Main_Load(object sender, EventArgs e)
|
||||
{
|
||||
//登入
|
||||
if (SysMgr.Instance.LoginSystem())
|
||||
{
|
||||
//登入成功
|
||||
if (InitSystem())
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
|
||||
//this.WindowState = FormWindowState.Normal;
|
||||
this.Top = 0;
|
||||
this.Left = 0;
|
||||
this.Width = SystemInformation.WorkingArea.Width;
|
||||
this.Height = SystemInformation.WorkingArea.Height;
|
||||
//this.WindowState = FormWindowState.Maximized;
|
||||
//this.splitContainer1.SplitterDistance = this.Width / 3;
|
||||
|
||||
ResetUI(true);
|
||||
this.Show();
|
||||
this.tsslLoginInfo.Text = $"操作员:{SysMgr.Instance.UserMgr.LoginUser.Code}({SysMgr.Instance.UserMgr.LoginUser.Name})";
|
||||
this.statusStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow;
|
||||
this.tsslLoginTime.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
|
||||
this.tsslLoginInfo.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
|
||||
this.tsAxisState.Text = "";
|
||||
|
||||
|
||||
|
||||
//更新数据库格式
|
||||
Service.InitDB.initDB(ConfMgr.Instance.DBConStr);
|
||||
//权限判断
|
||||
UserRightCheck();
|
||||
//开启后台
|
||||
//timer1.Enabled = true;
|
||||
//backgroundWorkerDo = true;
|
||||
//backgroundWorker1.RunWorkerAsync();
|
||||
//s_BackWorker = true;
|
||||
//backgroundWorker.RunWorkerAsync();
|
||||
|
||||
//开启云端连接
|
||||
//SysMgr.Instance.InitCloudConnect();
|
||||
//开启产品服务
|
||||
//SysMgr.Instance.InitPdtService();
|
||||
//开启处理事件反馈
|
||||
//SysMgr.Instance.InitDefectEvent();
|
||||
//加载产品料号
|
||||
//SysMgr.Instance.LoadProductCodeList();
|
||||
//加载产品选择
|
||||
//LoadPdtList(SysMgr.Instance.ProductCodeList);
|
||||
//LoadSNList(SysMgr.Instance.ProductSNList);
|
||||
this.Cursor = Cursors.Default;
|
||||
|
||||
//运行前检测磁盘空间
|
||||
SysMgr.CheckDisk(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
Application.Exit();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Application.Exit();
|
||||
}
|
||||
}
|
||||
|
||||
private void Main_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
//backgroundWorkerDo = false;
|
||||
Thread.Sleep(300);
|
||||
if (SystemIsRun())
|
||||
{
|
||||
DialogResult dr = DialogResult.Cancel;
|
||||
if (SysMgr.Instance.IsInit)
|
||||
{
|
||||
dr = FrmDialog.ShowDialog(this, "确定要退出当前系统?", "警告", true);
|
||||
}
|
||||
else
|
||||
dr = DialogResult.OK;
|
||||
if (dr == DialogResult.Cancel)
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Thread.Sleep(300);
|
||||
if (SysMgr.Instance.IsInit)
|
||||
SysMgr.Instance.Close();
|
||||
//SysMgr.Instance.MainRuning -= main_running;
|
||||
}
|
||||
}
|
||||
else
|
||||
e.Cancel = true;
|
||||
}
|
||||
|
||||
private void Main_SizeChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (this.WindowState == FormWindowState.Maximized)
|
||||
{
|
||||
this.WindowState = FormWindowState.Normal;
|
||||
this.Top = 0;
|
||||
this.Left = 0;
|
||||
this.Width = SystemInformation.WorkingArea.Width;
|
||||
this.Height = SystemInformation.WorkingArea.Height;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 菜单
|
||||
|
||||
#region 退出
|
||||
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 用户
|
||||
private void tsmUserRight_Click(object sender, EventArgs e)
|
||||
{
|
||||
SysMgr.Instance.UserPermissiomMgr();
|
||||
}
|
||||
private void tsmUserList_Click(object sender, EventArgs e)
|
||||
{
|
||||
SysMgr.Instance.UserListMgr();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 系统设置
|
||||
private void MainFrm_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
this.tsbtnReset.Visible = ConfMgr.Instance.SysConfigParams.ShowResetBtn;
|
||||
}
|
||||
|
||||
private void tsmSysSet_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SystemIsRun())
|
||||
{
|
||||
SysMgr.Instance.StatusMgr.GotoSetParams();
|
||||
SysMgr.Instance.SendStatus();
|
||||
SysSetFrm frm = new SysSetFrm();
|
||||
frm.ShowDialog();
|
||||
MainFrm_Paint(null, null);
|
||||
SysMgr.Instance.StatusMgr.GotoNormalStandby();
|
||||
SysMgr.Instance.SendStatus();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -117,4 +117,330 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>241, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="tsbtnImpStop.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFISURBVFhH1VftEYIwDOWOQ4fgUEdxFDfpKIziGPjPUTAp
|
||||
EWhJv1t7vrt3Ak2TZ5o20Pwdpuv59rqcBHEkimnoHlPf3sksL3ZBZyf79g2/I86h6fEICqxzESLIVThk
|
||||
8KF7HhyHEoQEZwPXknUWSxThWx+Udt5RCn0zkSXtJoIICsMDjHBL8ZPzcaRwKqypp4qWe92TNIf1xS4F
|
||||
DBr/PTokM29IEYwv4jELRsXA7AL0WnCoLZGBWdmWVQTsfcID63FbQgBwO6bhxrr9CgnYChFvtEGFvxBQ
|
||||
dwlcxiUEKD5dDaiIAP00tDWhEgLIbAM8NNZBAQHHo9jVjNChL2GOsB7tXDNCwGDc+18Y+XaMkFmwKE+m
|
||||
3oQ4uHZECuu9F2INhX60ZFuOmOBfUCZSCjP+w2SPVYhPRhabPIE5oJh1ry9dFInXIjrV9dA0H/ABIzl5
|
||||
lqSJAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsbtnStart.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAH3SURBVFhHvVfbbcMwDPQo3aFo8ttN7E06ij+LxkN0lI7S
|
||||
8mhSpqwXpRg9gEgikdTxSKno1IP75/xyeywfb1/L9+u2/Ny25RefMKzR7/W+ze/ifg30UBzmNSZHMYiV
|
||||
NGPIHSyVr7wHNR7zwr93S33JR9L5AeYi6ZEQFTnkzSkGIm41OIEJBpERKc9EXCTgIBLvBEbkO6GLhJX9
|
||||
ymmWOQkkZDlG1LdC5SA10g4gyk8DK8sHdBMqyFICBLIPVSRLXVCFk1ZoYlitQuuH771qwN/Gy/JRfbSY
|
||||
AfaNb9/1EmiOMAt2QFrJNPhsPS3BHGkcDzp9CUnFpwjrmzF3S2yMvXpV+QH4iG/WvC3RM3ngESQJniag
|
||||
1mqJXkmegxBYuPsW5OciwFbJ9y8Equ+JEIAdLbiQQOsZJx/OwwpEA9GABpYMCT1/Q8iX8/CZUT8a0MCc
|
||||
eQpQBNUpX/owVIAA9bXmqVoRPXyIK77PGWDf+Lolt7A5ZOlYbCW0wT2SK4rFelXAHvs4bkwOOvCw5MW0
|
||||
vSkdAJ9eyRX27mfzg5FlOFplDiCteautAwlzRS4hYSv3XPWEBBgn/XLgrGjXjUEwBYWJF0Ku//s41vab
|
||||
rCp7CblEMCUD48GFz+4XCEdGe5JyDCUiNWOSzx58BojINK+QVOcEnzDuNx3ad02n6Q9WpF/OirtI5AAA
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsbtnStop.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFoSURBVFhH3VfbDcIwDIyEgCEQj1EYhU0ySkZhjPaPUcDn
|
||||
mAKNG5w2kRCWToTGta9n10pdiXXH7ak/bHy/X1/73epG6zv/Arh22IRutzqLex0bkiKZFZGcx70SZp4h
|
||||
yEfgUggRCWc3fuooqR64FETErIZIrgdaAgsJTh5l04MsxTcSVWWfApGQdJ9Gm8sargxB0r5McWqHcSno
|
||||
YkicdPhuv75k+gQqWpV8qaBsahhuoHWSBMRk29ZLz17gJ9IcUtQlQOCxTQur/NUJEHyJc30C5OcyDTVG
|
||||
fQLoA3VDxx8SIPxACexsGzWhEmwCLUoQHIaBsqGhOgEeROYDCOQSo//a8BqOXta+EvfJgBrw5HrJKClU
|
||||
oHVxSdsdwzJITkbCXnVugPSkzCrYu3c+3nopMSZhH0zlwOD5Zs1IoEmtn23VSeRknzImYX+lcij/NHu3
|
||||
WUSiessSjw1EZGwHflueJcIvEN8gb64zm3MPKind9AUiYpEAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsbtnWarning.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAZHSURBVFhH1Zd5TFRXFIdRZh4yLANapTbiUiurtsjqwAAG
|
||||
FwRkEVSQQlWEIKigzkCriSiKAkWURVExosEF12rFpbU2NdJamyoDiBQQUbHQAuKCWtf29Jw3b3DAN4Oa
|
||||
/tOTfMnlvt8958495y7o/K9siYdwjEzKpMilTBlySW7DvGShNvbRN9Jw8v/OlroxiUulurWFCwdD5Vlv
|
||||
uN+yAh62r4N/XpSyUJv66BtpSEtjuOHvbjKpMHKplLlwcrMtPLqTCX8/3QUvH2fCi84keH5vPjzrmM1C
|
||||
beqjb6QhbWmeNU6EuUA+OHdvZzI3YVpO5ADouCWDFw/Xw/M7CfDkj3B40jJTO6ghLY3puCmDrFATkLsJ
|
||||
Uzm3b2ZyqTBnd/JQeNy2Bp62yeHxrVnw6Mb0t4LGPG1Lgketq4F8kU/OvXaj2RbLzeFJ6yr4qykOOutC
|
||||
oLN22ruBY8kH+SpKHNL7SlC+soLFcK9hEXQ2RMHdikAk4DVSJhjCtmlGXWwJMoIMHzGvlnx0NkSzPtMD
|
||||
jWkS4Vy4142Kpv4bX3hQOw/af/GH9ot+vOQHGMHJOSZdlH5mAjvC+vNqWdDXg9oYuHbGF1PBlHHhuhtt
|
||||
m6KIQdBxORJaf/SHP89N0Ui2nyEciRB3cThcDAXTTXm1KtrQ593KKCicNRBkbnoLubBKmzFDRzfJnYHy
|
||||
HEdoOesPzacnaSV9iiHsCxN3sSdUDBsCTXi16rSeD4HLG+xBLtG9yoVWmsxdzys3uD/UbpFAQ5E7NB31
|
||||
0krqJCMomm7cxfYQY8jwN+XVqtO4xxNjuEI2TlbuKpBw4dniSz8UMwxq8lygKsMBbpR4aiU9cABsClQW
|
||||
H5GHNZETOpBXq86VLx3ZGAdjzDENwjQuPO17puzcMiuo3uAE5Ss+YVfi2k6pRjaGvQ9Zvhh0qpIMHwMo
|
||||
mDOEV6uibpsr67s62xm+T7Kkc+EMFx5XwJlpK8+0h8q19qxIscoOagvGQd1WCS9b5ppD6kQDyPQxZFmF
|
||||
7aLYEbxaFvxBFavHsr6r1jnAr2vt8JgW3OLC6+jES5lnV3NcQLHSjhURFaljoQb7anJfZ3vsh7BsvAjW
|
||||
TDZkSfYUQXHCKF4tUbFGGVz146pwpRPcmPtceOUEKDeKlFcTYMU4oSuZDlCd5diN4gQLWCwV4YFkwJLo
|
||||
JoL9ckxhDx2NpYDdfNIEcnpMgFJQlevclYKeKFLtoDJNmSLioMwa4l1EuAoGLHHYPv65bdd30tIK8vli
|
||||
Y2Q7dE8BFeFPa8dA9XplEWpCkaJclRPJNhDtpA9JHiKWKKd+cHb5aPYbafjGqqjOdoLzK217FCFuw2OL
|
||||
hkPNJhfeQT35YfkYCLDRg4ix/VgCrPXg514Cq6AYRxcO674Nk6QCz7xgU6jf4aZx6dShir5xAPe2GuoF
|
||||
rAkaV18kZU/NZHeBMxdeafSMqixwgt82j+MdrM7pRGtY7j0IVvqasVD7+AJLXq06tQUSUOQ74o3IVHFh
|
||||
XxldRjsjzOB6iQdbRHwOVBzGYOF2/SBunD7Lp9jeGzuKV6uCfF7f5wGFYe9h/gVxXNjuRtexIs+ePbm0
|
||||
LelXiVYw10EfluBWJKIc9aFkgQWvliBf13ZJoTzXTvN1TEYPErrpGg954OmFqdBQWEcSrCBIrQin2erB
|
||||
3ngNE0AfdYUSaDzsAWmTRdofJGT0bNo6sz/cPj0Rz2/MGc9KVKXjhdWjCOmi6amjQ6duuyv8/u1EyA9+
|
||||
i8cpPSALQ3ESpyZAQ7G015rgg8Y07Mar/YQXbA4xpX3/Zo9SldFs0/GiaSyRQMsZb/ZSUV0o2iAN3Xwt
|
||||
33lDQ4kLkA/6j4lz26v1QXQRfUQc7ShYsFjCXDowzwyaT3ni284Pmr72gnpcVjrRKBUEtamv6bgXq2k+
|
||||
NR72zzWDJRLmYpyzcB760kP6IuRfq5HIEBmK0EERjMROGiU4FussbMsPEkNZyki4eQjzWuoB9xT+LNSm
|
||||
Pvq20d8I7wlhi5+lYDeO9UPskMEI/Sjyr9VIIEI+QByQIGQ+8gWSOtykzw4fi74XIu0FzbMdhe3xrswz
|
||||
IsZR2DbbXnB7qmXf88PEffJRm4xEI77Ix8ggRLUKWo2WiEQkNkZooDkyAvkIsUCsEBtktBr0N/XT95EI
|
||||
6YcgAxEjhEF4guvo/AsMq/UIa/uj/AAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsbtnReset.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGGSURBVFhH7VftcYMwDGWUbkDZoKP0Lsl1jI7SUTIKySSp
|
||||
nlCoLGwsgZP+aN/du4At68uyTLp/7MH40b+A8vp4wNjl+Pp5PQ1n4m3mYRiZNI55EW8HGF4YXSM5czkN
|
||||
X7nsXI/9uzz6IBHnDdUIR1RG4BSNn+W1DggnCkUpxqF4PPRvnB2KChQDqTzRbJvPAbUgUSTTRXCdFBwR
|
||||
1h1YpJ2iRrQy7QJnZsqWNg6uOyAF97OAlMhUGDCW6Jq47gAE9IJo5HdYPYpVB2Zh7KUMhwAjWo9h2QGu
|
||||
ZiWcO8ceYF2JIpKHrV4Zfh7I6Jy6renfBX1sPGe+OZIM/LYDeJbh5yEpwh0NaDPQdFQGNjehHO4X0upR
|
||||
xKR2oNVJgGG3TtsLwh8QBjarVQdsFvgmrHWwAliXvhG9dWVbMjsRvY5N5GBIx+KbgOjpDYg6uzZaTyVF
|
||||
yAaUYQ4RQQ6/eM/KEzEuauMoKfUyunVZcDGlXbJKzhCtExVtoLZl6cxU7Y/5Y1IC73/rKP8Yuu4b4r2U
|
||||
wFZ1ZhkAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsbGoHome.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAcLSURBVFhH1ZZ5UNVVFMdfOdooy3u/9x4osiiKpChGrrii
|
||||
LMqiiCixCOKCIhBqpmJiKogj5KgoDIop5iBkOi65kmZTbriAIqioyZhgmJATmSOR1ul7fvwevt8DAZ3+
|
||||
6cx85v3eveeec++55557Ff8r2aUyd8xRaZfnmmrO5AraghWC9gXD39zGfawjqf93AsPzclXaW2ds7ahy
|
||||
YgjVbtxGdVm76Z+bt0X4m9u4j3VYl8dIw99cvlRpwnKV2vM3Bg6huuyv6e+zF+nF7sP0fEMm/bUimeoW
|
||||
LhPhb27jPtZh3ZJ+g4jHsg3J3OtJrqBJOmndlZ4mb6Ln+/KoLmUjPZsfR89iFjQPdOpS0uj5gTx6umYj
|
||||
He9sTbCVIJltnWBA6gV7B/pzx16qXZ9JT2MX0x+R814LHlObupVqt39FbIttSuabF57tefveVIt9fZqQ
|
||||
QjWzY6kmIubNmD0XNj4TbZ3t0bPlSPB+HUXInqxOpd8/WUWPp8+hx9MiZVSFzaAydy+67DSA9nW3pyM9
|
||||
HKgQ39xWHT6rQa8yYArtRD/beBKfJNo8ZGFF8BEiuWssnDQVIdOpZtkqqoKxR2EzZZT5+NMWS2vapDaj
|
||||
rRpz+hzwb4bGjFLRlmreiUpGuNLDkKmUZdON4k3V4ji2VbNsNT2AbT6ukju58LE5gRlXL1xKv2BAZXC4
|
||||
jPwBg2m1WktpcLQBv4mCmrKhn43QZiJZkwWtOLF1+N3SsTNl4DtBqW4YzzYfx62gPNselKNSfyi5rZc9
|
||||
CkUbFBMqdh1DDxC+coRPn/whLpSg0tB6GF1j1pEKx/nTrwviqSp2EVhI1fPi6G54JO2x70XpiEamFJlP
|
||||
VWqZncqIWCoa5cHH84bkul5ylRrXwza2dH3seLrl40f3JgY2cMd3Eq0wM6cUTDDJrBPdmzGHKkJnyHSY
|
||||
Uuh90c0O0TETo8TEKQWZzp3xk0Qfhyy7UI4gDJHci3u/5jsHRyr28KIrLm70I4zpON5/MMXD0DKVQKcQ
|
||||
oTK/D2T9TP4od5qv0dIS6K1EpBIlok2UMr2rWP01+DjVy5FPRJLkHhNAYuSj2hW5jqWLQ0fS9TE+dMt7
|
||||
gki6nT0txV4uQUjvTgpuaNfnwABn2uHoRLve6y9jR99+DTo3xo4TbRdhEfnQ36XSnpDcKxTZgrqq0MWd
|
||||
Cka6iUqXh4/CJLwxyIeWI+s/xsqSbbuL/5vijl8AlWGP9Sn2nSz+6nQujxgt2i6Ej0J85xhr70vuFYp0
|
||||
QVtX7O5Jl4a5iEq6SVxDRBZZWVOosQlt6tWHit08W0UGkjEYYz7q2En8XyA5Z9gHR2GnoK2R3Osm4C2b
|
||||
gE65FCs55+lLt3396epoj1aR2MWWYkxUFIm8uISFGNoscvWUT4C34JrBTHUkIvQrYTABsGFmuU1XykBE
|
||||
Cke6NkkkTkAEEnBuZ6tG9rifj6JsCzgJC4a6iLM3HBBgrKRpxqY0XSLMyIQmw/jegc7iNunDq8txfJ+m
|
||||
QCcMW7DBoW8je+zjsvNweRLyMTyDLC7x8G40YIqpiubAYRSIBNFaczqLaPFxNdT9fvAwmokqyRMNgu65
|
||||
JnTYxw99nOTHEGXY5SjK6U0cF16J/gCeADvmCcwGCy0s6RhWr6/D5GLl7DwczoMRgc04hob7zyeBfRyy
|
||||
QiFSqwdJ7uuFn1HXcaMZRiEEE+AVRaCshsKwzsEsOItChYwGQWjjsHNfoJExrcIpuOZWX1P04fpSgpOF
|
||||
LS+W3L4UvoxOdn9XLL36yRiIGjBda0ZXUEiy8MwKUapEZ1Oxx7rc4F+xTdDQfuQS1xB9x0wBbkm2ndfV
|
||||
DpeRJkpyKxe+jq+PHkOlCJPuSEYgk7/FXnI4uS7cQF9Wv8GUgFswFvd7FG6+eDxEt2FyRZ7j6QrKsqFz
|
||||
tsXVsMQFF9GrrmMWfpAc7GhJZRMCUL3qS2eply8qpKvMGJdsDmep18syy5PTTdoQ7meb+80tmn+QsPCz
|
||||
6Rs8Ju5PDhZL6KuMtgYey87LA0LoGJK8xSeZTqCYeqJLNyrnywfXc1MFqiV4z29jbLl/EB23tm39o1Qn
|
||||
PFvejvt4hlUEhonRMDyiTcFHjVf9AGN+8vIjtoEEXy6ZbVHeAm1Ae6DcaKqK2SkIBaeRcJUTg+hR6Ezx
|
||||
YXETyVaEZC1EcjL8zW33sFp+A1ZC57RdT9qh0l7YrFTPhK13wNuA7TcrrGQMbAAXCn8QOauD0UEYqjpm
|
||||
aUPF/Z2pwmciPcTD5Ldps0X4m9u474iFNaUplZXR7Y2zMdYHOAELwIti+80KK3QAnUF/4AfmgCUgwalN
|
||||
u+1RRkbn15qa/pyqFKrTVZo6Zq1SqFpnYlIR3cHkdO+2bdOguxhEAG/QF5gDXRSaFQ4RK7GyKeCB1sAW
|
||||
2AF70BM4gD568H9u5/7ugPWtgBkwAe1AE84Vin8BLf0+DUMI9pQAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>353, 17</value>
|
||||
</metadata>
|
||||
<data name="tsmPdtMgr.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAW1JREFUWEft
|
||||
ldFxgzAMhhkhJQtklI7STTJF4TGjdIzexbnrKMSypEgIYxsHv/T47ziMZev/LAzuDtXoNP5e+tFd+8FN
|
||||
/XD/68fH7TS6Twq3Exo/bmLsIV7P/moFEjOmUJBUxMf2BMkZW+0GIonKjK0WIP4OfRROC4hrja3mIIUQ
|
||||
5+/7l5SvkDohXcmifELNVagDkRxu+hjcz+YctSBS8grj2PsvBUkZ6/nJr+I1cGa4DhL2S+hLGWMMxut8
|
||||
UbEBtJeGFoQSh/t8ZVhJjGsonScqDcBCQ/kZwaopFGLUDIJnMOSxttxVAKxl8rl5ypj1FgArVAQS+Yu6
|
||||
yDyT3GsXABBCuIlXCm39atbUBMDCpHQAHABZAD6KISl1RVUPkPlaMJmnzJBuBYAY54Xx1B0XDNB/tRhx
|
||||
KYDNlTXXWk4WgxyAnVvyk1oVTLYgawChrQ6u5IbbKtyg8B7xiLUAzYy1cIXuigByGEFfU+N/rK57Armc
|
||||
yzE7MZQkAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="退出ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAZdJREFUWEft
|
||||
ldFxAjEMRK+UlEIplMEfpVBKSkkpZJ9ZzZE5Y8t3Jl/szA4jWdbKOmEvHxzB/XK5Qpv/D4nfoM35UPKv
|
||||
1gl7BbCXHDbHwEbxG9q1gdZ6BbD/RxwrQhtO4l1stpf1ZEy+CAJFxLvDpZjUDJBLzBWhoGbbn6G4VAFA
|
||||
cRTQPpQCzgTa7AJxaLMJxdFZijjbtYUWOX36f63YdAGA3GjY/AstlG9vMwXEoc0uQoNfu1bIWQbFZgqK
|
||||
HyoAKL7e5ZcLDSAObaaARnWPnBTwekAqIFE1WQNooGVzhZx8m5PNFBCHNlNAAy2bK+QcvjIVTztHPxsF
|
||||
bGcNJ4s23wZp1O8aOYdnYA+kUb8LvDD0PfcAcbRsrpAzXsCxp3MA5G5qaKH/YBwAudGwuUUEiNO7QE6R
|
||||
07fnzAVM74Jy8u37V72C4tmcVgS5UuIBBZf/6owiLD58y7Kx3FhOsGsmtK+0Xdx3wSHsJGV4sL3UhOLi
|
||||
1Ow9PtBKEt2IpAjgC1JceeXEiJl/rZNURBwBCnouipcx3aUPHliWX+WksNj7r3wlAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="本地数据库查询ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAKBJREFUWEdj
|
||||
GAWjAB10P/P63/3Mcz+US38w6gBCDmh/7qHQ/dSrHoZBfKgUdQAhB3Q/93GAqIFiIB8qRR0w6gBqOgBk
|
||||
DkItbjNRALJicIIDWQjFYHl6OgCc0uEGeP0Hiw1WByBnTbgYXR2ALAbUBxEbdcCoA0YdMOqAoe6AAQEw
|
||||
B4B9SgNMsAmHCDIaYWj04ATgeKclBoYC1KpRMBgAAwMAqk+AdECToL8AAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsmUserRight.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAYxJREFUWEft
|
||||
l9FtwzAMRD1Gmq+OkjH8mU06SkbxKJ4g7Qgpn8EL5EqyLFUuWqAHHMCYR+pCy3Iy/CPEfTy9vY8vj86c
|
||||
6etL5HHQ4k/ex/PNl0rDRDPCj/F08UtdYP1e3cTsl9Jw0cM/dkXYmy9o8RR90T0GrOhKsZFpQRpdPZ0F
|
||||
fSGxbnW0L0JRCpZj4UXzlaVNJh1xkwEVbXHLhDTETQaUK3ByeQRpiKsNBLu4SLRetoLyxNUGVLCHUVOH
|
||||
8sQNBs435UrMHTbKE1cb8EdvtVCOpk0eYsoTVxsAe6YQNQwgDXGTAd+Iy1Gd4eYxKx1xkwHgtyJpIjd6
|
||||
QTriZgOAhUwTmphLiwPpib81ARWH5BomjMkzAEhLXGWApjWPoZGXU2REeeIqA/Z5a+PlGB3JyhHXTuDi
|
||||
BeErOFxM5PrEtKjx8iekI64y0At/xsAyXhth8RdODbgluwwocRS1YNYAj89BJlb/C7IGfgo6V3YZ0FR6
|
||||
UpNJPa4RKk/BGmZ/P67ABIzLO6AX6entfwOG4RPOwTWlOwT6PQAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsmUserList.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQFJREFUWEft
|
||||
lcENwjAMRTtGjozCKGzCKAxAK0boKJ6gZASwJYdD6gQndiSQ+qV3afNtJ3Xc6dDfKT7CaVvC9TmHFXkh
|
||||
sM3hRs/oHS8bo3gPZ05aAqgQXu4r3rWUdId7EYqd5wB52G4XBkzfuwVgu11CcBVstyku4SIF1+DyGUwF
|
||||
oJfD9KujAT/4FIDDRQquwW0wYbDmW0DTke129ZyC6xwgtTSje/IkTUMO+RdwYsiTVQDPG9AzhhPQfRMs
|
||||
1y+jvQjH5Im2ItBgOfYSur+jZfZ/Q9WYktGR+imM3H2iego0vyWTJ9VBhQtGNF/Oyun2wpct066Xch8I
|
||||
i4fA6Q79gqbpDVvluAR1f2kTAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsmSysSet.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAXJJREFUWEft
|
||||
VsFtwzAM9Cix2wEKxP13lG7SUfwskAzhUTpKStJHiZIlRWrs9lEfcEAsieTpREjpDlhcx+HjMg633Xge
|
||||
vrgGyoXYvbhhUgSrkwVQeR2f37bk5fXp3dZAWQ+nkBZiaHOICNTBkIdOsFoMbQ5x4hBwCDgE/KWAz5fT
|
||||
SeqULqI9BTBYBH6G+C0BWagAsmda3oI8a65rsbvlWncCKpm1EtCHp9pRl1wC+7lEdgFhDvraqTAVoC6I
|
||||
c6nmU6iAn/bAIg4b0OL6rXOl/HcX3IGcuS2cIvUXlq/hF/YzhprhBfQzC2KK9chd3Jy1SRKVaERy0iCW
|
||||
GDeom0d8qofqLDTU3dh/OUpJaEB5p2AN1cFUiMUy2hEnzRFJVIAIX82FO/QbIydoXexQE2IBFoGDuNDs
|
||||
WCqmGblkttmyzFmfgx6JpSaLBZhGm+xxLE5QHJyI47IIkiQYJ1Kx+FzdhDzfdPaiOirqWGGlnv9DDfcP
|
||||
0HXfsvKIP/AcQ5QAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsmDebug.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAXdJREFUWEft
|
||||
VtsRwjAM6xg8fhiFUdiEURiFUXLwTxkB7KAGp3XSxGl/OHSn4xpkWW0ebfeHFU+3OTzv+5On2xwxvD64
|
||||
cX/fXvvb7iX5uO0u/B9k64GauXFzQQfZOqC7PCtNI7IG8uVBDXJ3/yFND+Q2YH6dNp+TZjon08BevEaY
|
||||
GEpDLLBJCL4uIeQefD14FgXwBd9HrT6JUsDr82RqpkamXoQ1zQdE6RsJy3poZhbCrh6amYWwq4dmZiHs
|
||||
6qGZWQi7efDCk9TMJElzLNRFvmgXg4Tzx+yIKLU8qelLCy8aDiGpFQeitCRA5MvfECjNA8VJQlasq4Zm
|
||||
JgnZigFmjmPI8gEsx/AAfnuppiBk2QBFb8AU5rYYZNkA5NH2wUomyd0ASS5A2zfiImvAGkI09/uWf3Ed
|
||||
CKkWYFxTHsLPu2yOOeRxHFahkS8gyDG56rGGQgi+xl9pyOYYihCCiEas5bEhrEQUQtQkga3XtnhG8CGo
|
||||
edOW/FF03RtcMcE7miFSggAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsmReadLog.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAA0FJREFUeF7t
|
||||
Wu1t3DAMvZ8F7oboKB2lm2SUjtJBmkN+Fsh1h5aPRxmOTH1YIiO70AMeEJwpmnykKCWXy8TExEQNHr9u
|
||||
397v1x+P++3vEfnnfn17vN5+0s8vErId4HT9sqMTYvx++/JVwu8DOTxV8oEQQVJoB9pec34Wvr9ev0sq
|
||||
bSAnp6z+QpoJkkobjjz0ati9DWSqqs7Pwq5hOAWYAhQEwHOcFKNYMaTdBDA5Zw1QGtR+HUDPxGwocNar
|
||||
8QldOwBtKKZDgOSyRSL6zgAiCwG7EVTiiekuwNE5BZgCTAH8BOAB+LyMjGFFgVwFELOhGHYRwovFbCiG
|
||||
XoTEbCjGXYWJEEEC0PdoLXfeKJEU1skMUmMLdBWgm+S/NcAgwsZnxEMKwJUz+j2ChcjEeTwByKe4z4IT
|
||||
I5FqEmDbRDccS4BM8iGJ1L4O8yb3p26y24jgLgAHDLsCU8dmrnop5rYQPf/gy1eAzn2M9arfem6+B2RB
|
||||
V3G7CdB7ESpdYGqpxSFdxc/dBEAbitlu1FQ+7PliFz656YQgsOsW4ACRTIbiasG6OjE5aWXIYQ3Ie19Z
|
||||
B8brwntcBaihuFrAoil2NVtKklIHptaRiH+oAHFSoSoluxJojSpC3AXowLECRAFp1W+ZJSykElvsC3ZD
|
||||
BYhfru1hbc/XgGdM5IupzJ1mdAlAa8XNAs2utULcBYq/zxag+h+SUgHL4yYk4rP7J6msAEqFc1BbdqeP
|
||||
GIkT5ZgCaB3QMgDX0GYK8ZMEeHLsFlD8tQ5VFRUCJKlVV7NrHVpIVPPXOlRV9AjAjJKzugcAqdjksQ26
|
||||
BYi2iDoIiWY3wZ1+iugVQN0GaZ9V8wR20bqFpu0PGHTAZhukugDkqZ6YCfg8MfWZ5tUHLATQAqPPk1UE
|
||||
kSjIM6Myhpx4zTDpAGJ8NPGRaOR7TXMRrIJEYOJygdwLsp3QQlMRLKuU2qP0rOorrjXFPvsndBMRyJl1
|
||||
hdRJj27gi01B8JC4LON1riJIm26c9xCBiXsV/E4KXG56KAB/eYrPxeQD3EUgRy77NJVQC3IioKvErA1c
|
||||
EScRMBeshJA4t+/qFSAAL9hzLtcyCGExtFQRDPyeCqFQLKzlr8YTExP/IS6Xf0foDWqW/njVAAAAAElF
|
||||
TkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsmHelpInfo.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAfJJREFUWEft
|
||||
VjtOA0EMTY+QECfgKByFU1AlkJ5D5CKgFLChpoQmBQUou1KOEPxsz8zO7nw3ocuTXKzHYz8/e6LMzqjB
|
||||
8v3nZt60j4tNu2Zr2sOi6bZs9I2z+Wt7q+GnA5JKIRQssW57EiLo2HWqiaFAs7szBRDDceQjWw2J4IyT
|
||||
1UKS+oX1KAncE5JHkBDJNQEpoO4qqCqqSMVI/M53K3V7sF3yeLAbu1WoSxunJEIxI9iZRzqXWRuCfQuP
|
||||
iRvK5LToS68uD/1zFMP3sMuQ1EzC3EuNwjKlLtXlwcw01KklkVWu26prDAkIdw/IvNtDaJauy3CBrAqO
|
||||
YXjxAFYg0qEdT2LORuGQgpJcCATlzyE3PiBJMiVvDq54Yr6EfyHQL567m9yTKQQgtyTMPK8eTLx+OphO
|
||||
ShMBtXuTHsEkApFuInCKBV6a+zWLP8MhJhCIK5ZckAg4YUjOCLJ75jZ62m9BCsjJuVOE7ZJUqFAKyVuw
|
||||
Y1aFjLTLzfc1xX2RfS7X+yt1B1GakyG7ILPCjNU9AiV7kBhYN1f3CLZ4japuIeMX79/aSzp/IXt++vi9
|
||||
ULcF57DF6543w1ei/E8p4J603q0tbjDsQgjhLcvfcpwbw7dfmKxk5iVAcp9Izo7oOgUZC71nkGFCUESN
|
||||
vqEAYjT8jALMZn/kcXbr5nSkbgAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsmInfoUS.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAipJREFUWEfF
|
||||
VztSw0AMTcc1UlBT2qGCE3AGSs5Ak4OkgFPQ5iDMJDeIXRAMVdDbPI3lz3q1hgxvRon9pNXTaj+ZLOag
|
||||
qVZL2r2xJd2XAQSOVbH+rMrThO2PVfmCgjjs90AyJO4L0bbGrD/EyNhHpskHZixJbGKZXbEGz5AB4GOX
|
||||
bMEoJG95KK5JgjBdLowU4i+C4lr9lvQs9Cci7+m9YQYkxY/V6gHG11GYbqQ7AVGveFOXb4w94Zn0KNiJ
|
||||
6dxojyYkFcXp/fpKY9XA0T0KFhG6Cy3SLcQRKhSn6+hI7A7xtB3pSSA34/ekzog6JtBUt3eytq8wPJOe
|
||||
BLugE227gNsLZO5xmwPdkNAk1e58VEjqYmAXut0mkdx8fTR18QzjqxsQh16YMNaCBWRdOtLKDcdh6Tak
|
||||
XYAWxoV9IB9hA3bWxAEVVyPtgsR3CpjVAY6ZVYBuekx+fFM4oMJqpF2AFsZA+/8LIDG8HBJAvDXSSUBj
|
||||
MKa9HPwXkSYZJEtg9CIyVbmXQYXVSCcBDcR3uo21EDL3xyi7AORm/PDE2S6gINJRSNyB8bAD6Sg4yRAP
|
||||
LdJdiDN0QSy5FF/16kkT4pl0FCZ3/L5hlWGNPDfj90d5A+NrFEY8vcdsqzDAsxwxMJeK+4+57QS+c46n
|
||||
Qo+b5nCLK1CE3tmaBEmnEp3HBGEtHpb1GzOAJMXRsQlDMTS0V836Q0z2rGPAzJCMHekXYy3ZpT8BC+r8
|
||||
PacrE4vFDyempcfTTYR5AAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="skinTabImage.PageArrowDown" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAYAAACwaJKDAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAD9SURBVEhL1dO7CoJQGMDxtu73+1CBzY31Ck0NvkOb
|
||||
gzi6+QaCEDgLTqKCEPQIIUGbb+Gui+YXBIc4WcP3DQ0/OJfv/LdTyfO8iu2/ojVsZNE6NrJoAxtZtIkN
|
||||
oi1sZNE2NrJoBxtEu9gg2vvE9/2JLMtrURQ3LEmSBMdxprw3oDQKwTiOT8X6zirOTAjDDA9E+58EQTBV
|
||||
FGWbJMm52D+DaZpeVFXdeZ43Y2dZEB2UMQxjaVnWPsuya+Hmuu5B1/UVb/blaxRomiaEYXiMokiBNW+G
|
||||
BdHhL2zbXpimueTdvYPoCBtZdIwNohNsZFH4bqjIovDdUJFF59j+JZrPH4oDa+C9e8hUAAAAAElFTkSu
|
||||
QmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="skinTabImage.PageArrowHover" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAYAAACwaJKDAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEwSURBVEhLtdNNS4RAAMbxvkBtLxu9UFT0skUv1rZ7
|
||||
7h77HfZkH0QPeu0mePQgnsSrhCCCN+8e99DVayKhNk+wUDFWh2eFH8yMzh9kmKW2bZfZEF1hW1i0x4bo
|
||||
Khuia2yIrrMhusGGaJ8N0U02RLfYEN1mQ3SHDdFdNkT32BDd7xLH8amu6/eqqj58JdZGURSdyfYAogdd
|
||||
TNMcFUXxIsbfHrEWGYYxFkPpPkQPu6RpOtA07bEsy5mYfz5VVb2K4CRJknMxle5D9Og3rusqnudN67p+
|
||||
a5rmPQiCJ8dxbmXfziF6/BfbtsdZlml5nj9bloXfln43h+jJf4RhqPi+fyd79xOiOEUqRAdsiOIUqRC9
|
||||
YEP0kg3RKzZEr9kQvWFDVGFDFPeYClFcPSpEh2wLiLbDDwVKnf7UO7t5AAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="skinTabImage.PageCloseHover" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABGdBTUEAALGPC/xhBQAAAH9JREFUKFNj
|
||||
+P//P0kYmcMKxXjFYIwzaBiXGFgDyIQzHB2n/4MwiA3DaGJgm1A0cHad+88//T6Q+/8MiAbxsWmAWw9S
|
||||
JLH653+p9f/BNEwzFMOdhKIJpBiGYWJADFeHophYG0j2A1wDkiQYo4lhehoJ4xJD8TTIBLApuMX+MwAA
|
||||
JO7ByqoT8QIAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="skinTabImage.PageCloseNormal" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABGdBTUEAALGPC/xhBQAAAItJREFUKFOd
|
||||
kbENgDAMBCNRIFExAAUtbYoMQc8A7EHBFKxrfJGxUERjkJ7E9r/fSZKIhMCvUwyK0cC+/8jBqwKCSZEV
|
||||
RbEoZluJyVOHVwV0yOtxCdBvV2ysrxwieC4oT9EIZxPj5AKssPeODRlH6j4SB2Rmxmg7n5anDu+fQ/gM
|
||||
bEK3hFXoHQIvLekGBLunGoMvIJEAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="skinTabImage.PageDown" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAADsAAAAiCAYAAADh/KHgAAAABGdBTUEAALGPC/xhBQAAAOZJREFUaEPl
|
||||
2KsKQlEURdHrG996BYNgMBgMFoPBYrAYDBaDwWAwGARBEAT//bpXWHC+YXpghhVHPDuLVyqKokFPTmOb
|
||||
9FJsm16K7dJLsQN6KXZEL8WO6RlbjjGhJ6exU3opdkYvxc7pGVuJsaAnp7FLesZWY6zoyWnsmp6xtRgb
|
||||
enIKW4+xpSensPrc7ujJaeyenrH6yR/oySlsK8aRnpzC6mxxoiensJ0YZ3pyCqsbzYWenML2YlzpySls
|
||||
P8aNnpzG3ukZq1Pjg56cwg5jPOnJaeyLnrF5jDc9OY390EuxX3p/hs3yH+t9kV6QtrMcAAAAAElFTkSu
|
||||
QmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="skinTabImage.PageHover" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAADsAAAAiCAYAAADh/KHgAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEISURBVGhD3dirTkNRFEXRy7NAICGkaaAhvIpC4ZB1
|
||||
lTgsEolF1lZWIrFIHBKHw2FQqIoKfuGyptjJ/YZ5kimWHHKfJm+lbdtdezgLu2+vi+3bK+xqxpE9nIU9
|
||||
sdfFXtrrYq/sFXYt49oezsLe2CvsesbYHs7CTuwVdiPj1h5OsJsZd/Zwgu1l3NvDCXYr48EeTrDbGY/2
|
||||
cILdyXiyhxMsx+3UHk6wexkzezjBcsnP7eEEe5DxbA8nWL4tXuzhBDvIeLWHE+xhxps9nGCHGe/2cII9
|
||||
zviwh7Own/YKy1fjlz2cYE8zvu3hBHuW8WMPJ9jzjF97OMFeZCzs4Szs0l5hRxl/9pqmGf0Dp89NtaTt
|
||||
b1AAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>474, 17</value>
|
||||
</metadata>
|
||||
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>597, 17</value>
|
||||
</metadata>
|
||||
</root>
|
@ -1,49 +1,44 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本: 4.0.30319.42000
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能导致不正确的行为,如果
|
||||
// 重新生成代码,则所做更改将丢失。
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace GeBoShi.Properties
|
||||
{
|
||||
namespace GeBoShi.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 强类型资源类,用于查找本地化字符串等。
|
||||
/// 一个强类型的资源类,用于查找本地化的字符串等。
|
||||
/// </summary>
|
||||
// 此类是由 StronglyTypedResourceBuilder
|
||||
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
||||
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
||||
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 返回此类使用的缓存 ResourceManager 实例。
|
||||
/// 返回此类使用的缓存的 ResourceManager 实例。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GeBoShi.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
@ -56,16 +51,23 @@ namespace GeBoShi.Properties
|
||||
/// 使用此强类型资源类的所有资源查找执行重写。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon Ge {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Ge", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -46,7 +46,7 @@
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
@ -60,6 +60,7 @@
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@ -68,9 +69,10 @@
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
@ -85,9 +87,10 @@
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
@ -109,9 +112,13 @@
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="Ge" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Ge.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
774
LeatherProject/GeBoShi/SysCtrl/ConfMgr.cs
Normal file
774
LeatherProject/GeBoShi/SysCtrl/ConfMgr.cs
Normal file
@ -0,0 +1,774 @@
|
||||
using MaiMuControl.SysStatusMgr.UserMgr;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using ToolKits.Ini;
|
||||
using ToolKits.mAPI;
|
||||
|
||||
namespace GeBoShi.SysCtrl
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备参数
|
||||
/// </summary>
|
||||
public class ConfMgr
|
||||
{
|
||||
#region 实例化
|
||||
/// <summary>
|
||||
/// 实例
|
||||
/// </summary>
|
||||
private static ConfMgr _instance;
|
||||
private static readonly object _lock = new object();
|
||||
|
||||
public static ConfMgr Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
lock (_lock)
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
_instance = new ConfMgr();
|
||||
}
|
||||
}
|
||||
}
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 私有字段
|
||||
private readonly string _rootPath;
|
||||
private readonly string _configFile;
|
||||
private readonly string _projectDir;
|
||||
private readonly string _pointsPath;
|
||||
private readonly string _markPicPath;
|
||||
#endregion
|
||||
|
||||
private ConfMgr()
|
||||
{
|
||||
_rootPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles");
|
||||
_configFile = Path.Combine(_rootPath, "SysParamsConfig.ini");
|
||||
_devConfigPath = Path.Combine(_rootPath, "DevParamsConfig.ini");
|
||||
_projectDir = Path.Combine(_rootPath, "Project");
|
||||
_pointsPath = Path.Combine(_rootPath, "PointsConfig.ini");
|
||||
_markPicPath = Path.Combine(_rootPath, "MarkPic");
|
||||
_specificationPath = Path.Combine(_rootPath, "版博士软件操作说明.docx");
|
||||
|
||||
DBConStr = "server = localhost; Database = LeatherDB; Uid = root; Pwd = " + ConteolUserDB.GetSqlDBCode() + "; AllowLoadLocalInfile = true;";
|
||||
}
|
||||
|
||||
#region 公开字段
|
||||
//DB
|
||||
//有些服务器防火墙有问题需要加上 min pool size=1 避免认为是恶意请求
|
||||
//如果用到bulkCopy需要加: AllowLoadLocalInfile=true
|
||||
public string DBConStr = "server=localhost;Database=LeatherDB;Uid=root;Pwd=123456; AllowLoadLocalInfile=true";
|
||||
/// <summary>
|
||||
/// 系统配置参数
|
||||
/// </summary>
|
||||
public SysConfigParams SysConfigParams { get; set; }
|
||||
|
||||
private string _devConfigPath;
|
||||
/// <summary>
|
||||
/// 获取驱动配制文件路径
|
||||
/// </summary>
|
||||
public string DevConfigPath { get { return _devConfigPath; } }
|
||||
|
||||
//public string ProjectDir { get { return _projectDir; } }
|
||||
public string ProjectDir { get { return SysConfigParams.ProductPath; } }
|
||||
|
||||
public string MarkPicPath { get { return _markPicPath; } }
|
||||
|
||||
/// <summary>
|
||||
/// 说明书路径
|
||||
/// </summary>
|
||||
public string SpecificationPath { get { return _specificationPath; } }
|
||||
private string _specificationPath;
|
||||
|
||||
/// <summary>
|
||||
/// 上料位X1
|
||||
/// </summary>
|
||||
public double LoadPoint_X1 { get; set; }
|
||||
/// <summary>
|
||||
/// 上料位X2
|
||||
/// </summary>
|
||||
public double LoadPoint_X2 { get; set; }
|
||||
/// <summary>
|
||||
/// 上料位Y
|
||||
/// </summary>
|
||||
public double LoadPoint_Y { get; set; }
|
||||
/// <summary>
|
||||
/// 上料位Z
|
||||
/// </summary>
|
||||
public double LoadPoint_Z { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 测厚气缸到位等待时间
|
||||
/// </summary>
|
||||
public int HeightDoWait { get; set; }
|
||||
/// <summary>
|
||||
/// 加紧气缸到位等待时间
|
||||
/// </summary>
|
||||
public int ProductDoWait { get; set; }
|
||||
#endregion
|
||||
|
||||
#region 公开文件操作
|
||||
|
||||
#region 系统配置参数
|
||||
/// <summary>
|
||||
/// 写入ini
|
||||
/// </summary>
|
||||
/// <param name="SocketParams"></param>
|
||||
public void WriteSysConfParams(SysConfigParams SysParams)
|
||||
{
|
||||
|
||||
//XmlHelper.Serialize<SysConfParams>(_configFile, sysConfParams);
|
||||
IniHelper iniHelper = new IniHelper(_configFile);
|
||||
|
||||
iniHelper.WriteBool("SaveAllImg", "SaveAllImg", SysParams.SaveAllImg);
|
||||
|
||||
iniHelper.WriteString("DefectSrcImag", "SavePath", SysParams.DefectSrcImag.SavePath);
|
||||
iniHelper.WriteBool("DefectSrcImag", "AutoSave", SysParams.DefectSrcImag.AutoSave);
|
||||
iniHelper.WriteBool("DefectSrcImag", "AutoDelete", SysParams.DefectSrcImag.AutoDelete);
|
||||
iniHelper.WriteDouble("DefectSrcImag", "AutoDeleteDays", SysParams.DefectSrcImag.AutoDeleteDays);
|
||||
|
||||
iniHelper.WriteString("DefectSmallImag", "SavePath", SysParams.DefectSmallImag.SavePath);
|
||||
iniHelper.WriteBool("DefectSmallImag", "AutoSave", SysParams.DefectSmallImag.AutoSave);
|
||||
iniHelper.WriteBool("DefectSmallImag", "AutoDelete", SysParams.DefectSmallImag.AutoDelete);
|
||||
iniHelper.WriteDouble("DefectSmallImag", "AutoDeleteDays", SysParams.DefectSmallImag.AutoDeleteDays);
|
||||
|
||||
iniHelper.WriteString("DefectSplicImag", "SavePath", SysParams.DefectSplicImag.SavePath);
|
||||
iniHelper.WriteBool("DefectSplicImag", "AutoSave", SysParams.DefectSplicImag.AutoSave);
|
||||
iniHelper.WriteBool("DefectSplicImag", "AutoDelete", SysParams.DefectSplicImag.AutoDelete);
|
||||
iniHelper.WriteDouble("DefectSplicImag", "AutoDeleteDays", SysParams.DefectSplicImag.AutoDeleteDays);
|
||||
|
||||
iniHelper.WriteString("Log", "SavePath", SysParams.LogPath);
|
||||
iniHelper.WriteBool("Log", "AutoDelete", SysParams.AutoDeleteLog);
|
||||
iniHelper.WriteDouble("Log", "AutoDeleteDays", SysParams.AutoDeleteLogData);
|
||||
|
||||
iniHelper.WriteBool("SysFunction", "OpenBuzzer", SysParams.OpenBuzzer);
|
||||
iniHelper.WriteBool("SysFunction", "OpenDoor", SysParams.OpenDoor);
|
||||
|
||||
iniHelper.WriteString("Dev", "LightCom", SysParams.LightCom);
|
||||
iniHelper.WriteInteger("Dev", "LightComBaud", SysParams.LightComBaud);
|
||||
iniHelper.WriteString("Dev", "IODevName", SysParams.IODevName);
|
||||
iniHelper.WriteString("Dev", "IOCfgPath", SysParams.IOCfgPath);
|
||||
|
||||
iniHelper.WriteString("Sys", "AIModelPath", SysParams.AIModelPath);
|
||||
iniHelper.WriteString("Sys", "ProductPath", SysParams.ProductPath);
|
||||
|
||||
iniHelper.WriteBool("ShowMainWin", "ShowResetBtn", SysParams.ShowResetBtn);
|
||||
iniHelper.WriteBool("ShowMainWin", "ShowBuzz", SysParams.ShowBuzz);
|
||||
iniHelper.WriteBool("ShowMainWin", "ShowDoorAlm", SysParams.ShowDoorAlm);
|
||||
|
||||
iniHelper.WriteBool("CloudAndMES", "OpenCloud", SysParams.OpenCloud);
|
||||
iniHelper.WriteString("CloudAndMES", "CloudThisName", SysParams.CloudThisName);
|
||||
iniHelper.WriteString("CloudAndMES", "CloudServerIP", SysParams.CloudServerIP);
|
||||
iniHelper.WriteInteger("CloudAndMES", "CloudServerPort", SysParams.CloudServerPort);
|
||||
iniHelper.WriteString("CloudAndMES", "CloudUser", SysParams.CloudUser);
|
||||
iniHelper.WriteString("CloudAndMES", "CloudPassword", SysParams.CloudPassword);
|
||||
|
||||
iniHelper.WriteBool("CloudAndMES", "OpenPdtServer", SysParams.OpenPdtServer);
|
||||
iniHelper.WriteString("CloudAndMES", "PdtServerIP", SysParams.PdtServerIP);
|
||||
iniHelper.WriteInteger("CloudAndMES", "PdtServerPort", SysParams.PdtServerPort);
|
||||
iniHelper.WriteBool("CloudAndMES", "IsPdtServer", SysParams.IsPdtServer);
|
||||
|
||||
|
||||
iniHelper.WriteBool("LabelPrint", "EnableLabelPrint", SysParams.EnableLabelPrint);
|
||||
iniHelper.WriteString("LabelPrint", "LabelPrinterName", SysParams.LabelPrinterName);
|
||||
|
||||
iniHelper.WriteBool("ExcelPrint", "EnableExcelPrint", SysParams.EnableExcelPrint);
|
||||
iniHelper.WriteString("ExcelPrint", "ExcelPrinterName", SysParams.ExcelPrinterName);
|
||||
|
||||
SysConfigParams = SysParams;
|
||||
}
|
||||
/// <summary>
|
||||
/// 读取ini
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public SysConfigParams ReadSysConfParams()
|
||||
{
|
||||
|
||||
//return XmlHelper.Deserialize<SysConfParams>(_configFile);
|
||||
SysConfigParams sysParams = new SysConfigParams();
|
||||
IniHelper iniHelper = new IniHelper(_configFile);
|
||||
string sValue = "";
|
||||
int iValue = 0;
|
||||
double dValue = 0;
|
||||
bool bValue = false;
|
||||
|
||||
iniHelper.ReadBool("SaveAllImg", "SaveAllImg", out bValue);
|
||||
sysParams.SaveAllImg = bValue;
|
||||
|
||||
iniHelper.ReadString("DefectSrcImag", "SavePath", out sValue);
|
||||
sysParams.DefectSrcImag.SavePath = sValue.Replace("\0", "");
|
||||
iniHelper.ReadBool("DefectSrcImag", "AutoSave", out bValue);
|
||||
sysParams.DefectSrcImag.AutoSave = bValue;
|
||||
iniHelper.ReadBool("DefectSrcImag", "AutoDelete", out bValue);
|
||||
sysParams.DefectSrcImag.AutoDelete = bValue;
|
||||
iniHelper.ReadDouble("DefectSrcImag", "AutoDeleteDays", out dValue);
|
||||
sysParams.DefectSrcImag.AutoDeleteDays = dValue;
|
||||
|
||||
iniHelper.ReadString("DefectSmallImag", "SavePath", out sValue);
|
||||
sysParams.DefectSmallImag.SavePath = sValue.Replace("\0", "");
|
||||
iniHelper.ReadBool("DefectSmallImag", "AutoSave", out bValue);
|
||||
sysParams.DefectSmallImag.AutoSave = bValue;
|
||||
iniHelper.ReadBool("DefectSmallImag", "AutoDelete", out bValue);
|
||||
sysParams.DefectSmallImag.AutoDelete = bValue;
|
||||
iniHelper.ReadDouble("DefectSmallImag", "AutoDeleteDays", out dValue);
|
||||
sysParams.DefectSmallImag.AutoDeleteDays = dValue;
|
||||
|
||||
iniHelper.ReadString("DefectSplicImag", "SavePath", out sValue);
|
||||
sysParams.DefectSplicImag.SavePath = sValue.Replace("\0", "");
|
||||
iniHelper.ReadBool("DefectSplicImag", "AutoSave", out bValue);
|
||||
sysParams.DefectSplicImag.AutoSave = bValue;
|
||||
iniHelper.ReadBool("DefectSplicImag", "AutoDelete", out bValue);
|
||||
sysParams.DefectSplicImag.AutoDelete = bValue;
|
||||
iniHelper.ReadDouble("DefectSplicImag", "AutoDeleteDays", out dValue);
|
||||
sysParams.DefectSplicImag.AutoDeleteDays = dValue;
|
||||
|
||||
iniHelper.ReadString("Log", "SavePath", out sValue);
|
||||
sysParams.LogPath = sValue.Replace("\0", "");
|
||||
iniHelper.ReadBool("Log", "AutoDelete", out bValue);
|
||||
sysParams.AutoDeleteLog = bValue;
|
||||
iniHelper.ReadDouble("Log", "AutoDeleteDays", out dValue);
|
||||
sysParams.AutoDeleteLogData = dValue;
|
||||
|
||||
iniHelper.ReadBool("SysFunction", "OpenBuzzer", out bValue);
|
||||
sysParams.OpenBuzzer = bValue;
|
||||
iniHelper.ReadBool("SysFunction", "OpenDoor", out bValue);
|
||||
sysParams.OpenDoor = bValue;
|
||||
|
||||
iniHelper.ReadString("Dev", "LightCom", out sValue);
|
||||
sysParams.LightCom = sValue.Replace("\0", "");
|
||||
iniHelper.ReadInteger("Dev", "LightComBaud", out iValue);
|
||||
sysParams.LightComBaud = iValue;
|
||||
|
||||
iniHelper.ReadString("Dev", "IODevName", out sValue);
|
||||
sysParams.IODevName = sValue.Replace("\0", "");
|
||||
iniHelper.ReadString("Dev", "IOCfgPath", out sValue);
|
||||
sysParams.IOCfgPath = sValue.Replace("\0", "");
|
||||
|
||||
iniHelper.ReadString("Sys", "AIModelPath", out sValue);
|
||||
sysParams.AIModelPath = sValue.Replace("\0", "");
|
||||
iniHelper.ReadString("Sys", "ProductPath", out sValue);
|
||||
sysParams.ProductPath = sValue.Replace("\0", "");
|
||||
iniHelper.ReadString("Sys", "HttpServerIP", out sValue);
|
||||
|
||||
iniHelper.ReadBool("ShowMainWin", "ShowResetBtn", out bValue);
|
||||
sysParams.ShowResetBtn = bValue;
|
||||
iniHelper.ReadBool("ShowMainWin", "ShowBuzz", out bValue);
|
||||
sysParams.ShowBuzz = bValue;
|
||||
iniHelper.ReadBool("ShowMainWin", "ShowDoorAlm", out bValue);
|
||||
sysParams.ShowDoorAlm = bValue;
|
||||
|
||||
iniHelper.ReadBool("CloudAndMES", "OpenCloud", out bValue);
|
||||
sysParams.OpenCloud = bValue;
|
||||
iniHelper.ReadString("CloudAndMES", "CloudThisName", out sValue);
|
||||
sysParams.CloudThisName = sValue.Replace("\0", string.Empty);
|
||||
iniHelper.ReadString("CloudAndMES", "CloudServerIP", out sValue);
|
||||
sysParams.CloudServerIP = sValue;
|
||||
iniHelper.ReadInteger("CloudAndMES", "CloudServerPort", out iValue);
|
||||
sysParams.CloudServerPort = iValue;
|
||||
iniHelper.ReadString("CloudAndMES", "CloudUser", out sValue);
|
||||
sysParams.CloudUser = sValue;
|
||||
iniHelper.ReadString("CloudAndMES", "CloudPassword", out sValue);
|
||||
sysParams.CloudPassword = sValue;
|
||||
|
||||
iniHelper.ReadBool("CloudAndMES", "OpenPdtServer", out bValue);
|
||||
sysParams.OpenPdtServer = bValue;
|
||||
iniHelper.ReadString("CloudAndMES", "PdtServerIP", out sValue);
|
||||
sysParams.PdtServerIP = sValue;
|
||||
iniHelper.ReadInteger("CloudAndMES", "PdtServerPort", out iValue);
|
||||
sysParams.PdtServerPort = iValue;
|
||||
iniHelper.ReadBool("CloudAndMES", "IsPdtServer", out bValue);
|
||||
sysParams.IsPdtServer = bValue;
|
||||
|
||||
iniHelper.ReadBool("LabelPrint", "EnableLabelPrint", out bValue);
|
||||
sysParams.EnableLabelPrint = bValue;
|
||||
iniHelper.ReadString("LabelPrint", "LabelPrinterName", out sValue);
|
||||
sysParams.LabelPrinterName = sValue;
|
||||
|
||||
iniHelper.ReadBool("ExcelPrint", "EnableExcelPrint", out bValue);
|
||||
sysParams.EnableExcelPrint = bValue;
|
||||
iniHelper.ReadString("ExcelPrint", "ExcelPrinterName", out sValue);
|
||||
sysParams.ExcelPrinterName = sValue;
|
||||
|
||||
SysConfigParams = sysParams;
|
||||
return sysParams;
|
||||
}
|
||||
/// <summary>
|
||||
/// 写入系统默认配置
|
||||
/// </summary>
|
||||
public void WriteDefaultSystemConfig()
|
||||
{
|
||||
SysConfigParams = new SysConfigParams();
|
||||
|
||||
WriteSysConfParams(SysConfigParams);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载系统配置
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool LoadSystemConfig()
|
||||
{
|
||||
bool ret = false;
|
||||
|
||||
if (!Directory.Exists(_rootPath))
|
||||
{
|
||||
Directory.CreateDirectory(_rootPath);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(_projectDir))
|
||||
{
|
||||
Directory.CreateDirectory(_projectDir);
|
||||
}
|
||||
|
||||
if (File.Exists(_configFile))
|
||||
{
|
||||
SysConfigParams = ReadSysConfParams();
|
||||
if (null != SysConfigParams)
|
||||
{
|
||||
ret = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// write default value
|
||||
WriteDefaultSystemConfig();
|
||||
ret = true;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 文件选择
|
||||
/// <summary>
|
||||
/// 选择目录
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string SelectFolder(string defaultPath = "")
|
||||
{
|
||||
FolderBrowserDialog dlg = new FolderBrowserDialog();
|
||||
dlg.SelectedPath = (defaultPath != "" ? defaultPath : Path.GetFullPath("."));
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
return dlg.SelectedPath;
|
||||
|
||||
return "";
|
||||
}
|
||||
/// <summary>
|
||||
/// 选择文件
|
||||
/// </summary>
|
||||
/// <param name="filter">如 图像文件|*.jpg|图像文件|*.png|所有文件|*.*</param>
|
||||
/// <returns></returns>
|
||||
public static string SelectFile(string filter = "所有文件|*.*", string defaultPath = "")
|
||||
{
|
||||
OpenFileDialog fie = new OpenFileDialog();
|
||||
fie.Title = "选择文件";
|
||||
//fie.InitialDirectory = (defaultPath != "" ? defaultPath : Path.GetFullPath("."));
|
||||
fie.Filter = filter; //设置文件类型
|
||||
if (fie.ShowDialog() == DialogResult.OK)
|
||||
return fie.FileName;
|
||||
|
||||
return "";
|
||||
}
|
||||
/// <summary>
|
||||
/// 删除指定目录下文件
|
||||
/// </summary>
|
||||
/// <param name="defaultPath"></param>
|
||||
/// <param name="fileExtend"></param>
|
||||
/// <returns></returns>
|
||||
public static bool DelFilesInFolder(string FolderPath, string fileExtend = "*")
|
||||
{
|
||||
if (!Directory.Exists(FolderPath))
|
||||
return false;
|
||||
string[] files = Directory.GetFiles(FolderPath, fileExtend, SearchOption.TopDirectoryOnly);
|
||||
foreach (string file in files)
|
||||
API.DeleteFile(file);
|
||||
return true;
|
||||
}
|
||||
/// <summary>
|
||||
/// 另存为
|
||||
/// </summary>
|
||||
/// <param name="defaultFileName">默认文件名</param>
|
||||
/// <param name="filter">如 图像文件|*.jpg|图像文件|*.png|所有文件|*.*</param>
|
||||
/// <returns></returns>
|
||||
public static string SaveAsFile(string defaultFileName, string filter = "所有文件|*.*")
|
||||
{
|
||||
SaveFileDialog s = new SaveFileDialog();
|
||||
s.Title = "保存文件";
|
||||
s.Filter = filter; //"图像文件|*.jpg|图像文件|*.png|所有文件|*.*";
|
||||
//s.DefaultExt = "图像文件|*.jpg"; //默认扩展名
|
||||
//s.InitialDirectory = @"C:\Users\Administrator\Desktop"; //保存的初始目录
|
||||
|
||||
s.FileName = defaultFileName;//默认文件名
|
||||
if (s.ShowDialog() == DialogResult.OK)
|
||||
return s.FileName;
|
||||
|
||||
return "";
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region json操作
|
||||
//public static void addKey(JObject obj, string key, JToken value)
|
||||
//{
|
||||
// if (obj.ContainsKey(key))
|
||||
// obj[key] = value;
|
||||
// else
|
||||
// obj.Add(key, value);
|
||||
//}
|
||||
#endregion
|
||||
|
||||
#region enum名称
|
||||
public static ArrayList GetArrayList<T>()
|
||||
{
|
||||
ArrayList list = new ArrayList();
|
||||
Type type = typeof(T);
|
||||
//list.Add(new DictionaryEntry("start", "启动按钮"));
|
||||
foreach (int value in Enum.GetValues(type))
|
||||
{
|
||||
string strName = Enum.GetName(type, value);//获取名称
|
||||
list.Add(new DictionaryEntry(value, strName));
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 生产数据记录
|
||||
public bool SetDailyOutputAdd(out int tDailyOutput)
|
||||
{
|
||||
bool ret = true;
|
||||
try
|
||||
{
|
||||
//读取数据
|
||||
string tempFile = Path.Combine(_rootPath, "DailyOutput.ini");
|
||||
IniHelper iniHelper = new IniHelper(tempFile);
|
||||
int iValue = 0;
|
||||
|
||||
iniHelper.ReadInteger("TempData", "DailyOutput", out iValue);
|
||||
tDailyOutput = iValue;
|
||||
iniHelper.ReadInteger("TempData", "Date", out iValue);
|
||||
int dateNum = iValue;
|
||||
|
||||
int nowDateNum = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
|
||||
|
||||
if (dateNum == nowDateNum)
|
||||
{
|
||||
//同一天,生产数量+1
|
||||
tDailyOutput++;
|
||||
}
|
||||
else if (dateNum < nowDateNum)
|
||||
{
|
||||
//昨天数据,为1
|
||||
tDailyOutput = 1;
|
||||
}
|
||||
//重新记录
|
||||
iniHelper.WriteInteger("TempData", "DailyOutput", tDailyOutput);
|
||||
iniHelper.WriteInteger("TempData", "Date", nowDateNum);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
tDailyOutput = 0;
|
||||
ret = false;
|
||||
string tempFile = Path.Combine(_rootPath, "DailyOutput.ini");
|
||||
IniHelper iniHelper = new IniHelper(tempFile);
|
||||
int nowDateNum = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
|
||||
//重新记录
|
||||
iniHelper.WriteInteger("TempData", "DailyOutput", tDailyOutput);
|
||||
iniHelper.WriteInteger("TempData", "Date", nowDateNum);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public bool GetDailyOutput(out int tDailyOutput)
|
||||
{
|
||||
bool ret = true;
|
||||
try
|
||||
{
|
||||
//读取数据
|
||||
string tempFile = Path.Combine(_rootPath, "DailyOutput.ini");
|
||||
IniHelper iniHelper = new IniHelper(tempFile);
|
||||
int iValue = 0;
|
||||
|
||||
iniHelper.ReadInteger("TempData", "DailyOutput", out iValue);
|
||||
tDailyOutput = iValue;
|
||||
iniHelper.ReadInteger("TempData", "Date", out iValue);
|
||||
int dateNum = iValue;
|
||||
|
||||
int nowDateNum = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
|
||||
|
||||
if (dateNum == nowDateNum)
|
||||
{
|
||||
//同一天,生产数量+1
|
||||
//tDailyOutput++;
|
||||
}
|
||||
else if (dateNum < nowDateNum)
|
||||
{
|
||||
//昨天数据,为1
|
||||
tDailyOutput = 0;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
tDailyOutput = 0;
|
||||
ret = false;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
#region 参数类型
|
||||
/// <summary>
|
||||
/// 图片保存参数
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class ImageSaveParam
|
||||
{
|
||||
/// <summary>
|
||||
/// 保存路径
|
||||
/// </summary>
|
||||
public string SavePath { get; set; }
|
||||
/// <summary>
|
||||
/// 自动保存
|
||||
/// </summary>
|
||||
public bool AutoSave { get; set; }
|
||||
/// <summary>
|
||||
/// 自动删除
|
||||
/// </summary>
|
||||
public bool AutoDelete { get; set; }
|
||||
/// <summary>
|
||||
/// 自动删除日期
|
||||
/// </summary>
|
||||
public double AutoDeleteDays { get; set; }
|
||||
|
||||
public ImageSaveParam()
|
||||
{
|
||||
SavePath = "D:\\AllImageSave";
|
||||
AutoSave = true;
|
||||
AutoDelete = true;
|
||||
AutoDeleteDays = 3;
|
||||
}
|
||||
public ImageSaveParam(string path)
|
||||
{
|
||||
SavePath = path;
|
||||
AutoSave = true;
|
||||
AutoDelete = true;
|
||||
AutoDeleteDays = 3;
|
||||
}
|
||||
}
|
||||
[Serializable]
|
||||
public class SysConfigParams
|
||||
{
|
||||
#region 缺陷图
|
||||
/// <summary>
|
||||
/// 保存所有图片
|
||||
/// </summary>
|
||||
public bool SaveAllImg { get; set; }
|
||||
/// <summary>
|
||||
/// 缺陷原大图
|
||||
/// </summary>
|
||||
public ImageSaveParam DefectSrcImag { get; set; }
|
||||
/// <summary>
|
||||
/// 缺陷合并图
|
||||
/// </summary>
|
||||
public ImageSaveParam DefectSplicImag { get; set; }
|
||||
/// <summary>
|
||||
/// 缺陷小图
|
||||
/// </summary>
|
||||
public ImageSaveParam DefectSmallImag { get; set; }
|
||||
#endregion
|
||||
|
||||
#region 功能
|
||||
/// <summary>
|
||||
/// 开启蜂鸣器
|
||||
/// </summary>
|
||||
public bool OpenBuzzer { get; set; }
|
||||
/// <summary>
|
||||
/// 开启门磁
|
||||
/// </summary>
|
||||
public bool OpenDoor { get; set; }
|
||||
#endregion
|
||||
|
||||
#region 硬件传感器通信
|
||||
/// <summary>
|
||||
/// 光源串口
|
||||
/// </summary>
|
||||
//public LightParams LightCfg { get; set; }
|
||||
public string LightCom { get; set; }
|
||||
/// <summary>
|
||||
/// 光源波特率
|
||||
/// </summary>
|
||||
public int LightComBaud { get; set; }
|
||||
#endregion
|
||||
|
||||
#region IO/电机/相机
|
||||
/// <summary>
|
||||
/// 是否使用PLC代替io
|
||||
/// </summary>
|
||||
public bool IsPLC { get; set; }
|
||||
/// <summary>
|
||||
/// 西门子PLC IP
|
||||
/// </summary>
|
||||
public string PLC_IP { get; set; }
|
||||
/// <summary>
|
||||
/// 西门子PLC 端口
|
||||
/// </summary>
|
||||
public int PLC_Rack { get; set; }
|
||||
/// <summary>
|
||||
/// 西门子PLC 端口
|
||||
/// </summary>
|
||||
public int PLC_Solt { get; set; }
|
||||
/// <summary>
|
||||
/// IO驱动名称
|
||||
/// </summary>
|
||||
//public IOParams IOCfg { get; set; }
|
||||
public string IODevName { get; set; }
|
||||
/// <summary>
|
||||
/// IO配置文件路径
|
||||
/// </summary>
|
||||
public string IOCfgPath { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region 系统
|
||||
public string AIModelPath { get; set; }
|
||||
public string ProductPath { get; set; }
|
||||
public string LogPath { get; set; }
|
||||
public bool AutoDeleteLog { get; set; }
|
||||
public double AutoDeleteLogData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 调试:主界面显示复位按钮
|
||||
/// </summary>
|
||||
public bool ShowResetBtn { get; set; }
|
||||
/// <summary>
|
||||
/// 调试:主界面显示蜂鸣器控制
|
||||
/// </summary>
|
||||
public bool ShowBuzz { get; set; }
|
||||
/// <summary>
|
||||
/// 调试:主界面显示门磁报警控制
|
||||
/// </summary>
|
||||
public bool ShowDoorAlm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 1cm X方向像素
|
||||
/// </summary>
|
||||
public int Cm2px_x = 1;
|
||||
/// <summary>
|
||||
/// 1cm Y方向像素
|
||||
/// </summary>
|
||||
public int Cm2px_y = 1;
|
||||
/// <summary>
|
||||
/// 对比度范围阔算
|
||||
/// </summary>
|
||||
public int Expand_pixel = 50;
|
||||
#endregion
|
||||
|
||||
#region Http/MES
|
||||
|
||||
#endregion
|
||||
|
||||
#region MQTT本地云/产品服务器
|
||||
/// <summary>
|
||||
/// 开启局域网云端
|
||||
/// </summary>
|
||||
public bool OpenCloud { get; set; }
|
||||
public string CloudThisName { get; set; }
|
||||
public string CloudServerIP { get; set; }
|
||||
public int CloudServerPort { get; set; }
|
||||
public string CloudUser { get; set; }
|
||||
public string CloudPassword { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 开启产品转发
|
||||
/// </summary>
|
||||
public bool OpenPdtServer { get; set; }
|
||||
public string PdtServerIP { get; set; }
|
||||
public int PdtServerPort { get; set; }
|
||||
/// <summary>
|
||||
/// 是否作为服务器还是客户端
|
||||
/// </summary>
|
||||
public bool IsPdtServer { get; set; }
|
||||
#endregion
|
||||
|
||||
#region BarTender
|
||||
/// <summary>
|
||||
/// 开启标签打印
|
||||
/// </summary>
|
||||
public bool EnableLabelPrint { get; set; }
|
||||
/// <summary>
|
||||
/// 打印机名称
|
||||
/// </summary>
|
||||
public string LabelPrinterName { get; set; }
|
||||
#endregion
|
||||
|
||||
#region Excel
|
||||
/// <summary>
|
||||
/// 开启Excel打印
|
||||
/// </summary>
|
||||
public bool EnableExcelPrint { get; set; }
|
||||
/// <summary>
|
||||
/// 打印机名称
|
||||
/// </summary>
|
||||
public string ExcelPrinterName { get; set; }
|
||||
#endregion
|
||||
|
||||
public SysConfigParams()
|
||||
{
|
||||
DefectSrcImag = new ImageSaveParam("D:\\Image\\DefectSrcImag");
|
||||
DefectSmallImag = new ImageSaveParam("D:\\Image\\DefectSmallImag");
|
||||
DefectSplicImag = new ImageSaveParam("D:\\Image\\DefectSplicImag");
|
||||
|
||||
OpenBuzzer = true;
|
||||
OpenDoor = true;
|
||||
|
||||
IODevName = "";
|
||||
IOCfgPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\IOCard_default.xml"); ;
|
||||
LightCom = "";
|
||||
LightComBaud = 9600;
|
||||
|
||||
SaveAllImg = false;
|
||||
|
||||
AIModelPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\onnxFiles");
|
||||
ProductPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\Project");
|
||||
LogPath = Path.Combine(Directory.GetCurrentDirectory(), "LogFiles");
|
||||
AutoDeleteLog = false;
|
||||
AutoDeleteLogData = 0;
|
||||
|
||||
ShowResetBtn = true;
|
||||
ShowBuzz = false;
|
||||
ShowDoorAlm = false;
|
||||
|
||||
EnableLabelPrint = false;
|
||||
LabelPrinterName = "";
|
||||
|
||||
EnableExcelPrint = false;
|
||||
ExcelPrinterName = "";
|
||||
|
||||
OpenCloud = false;
|
||||
CloudThisName = "Test";
|
||||
CloudServerIP = "127.0.0.1";
|
||||
CloudServerPort = 1883;
|
||||
CloudUser = "";
|
||||
CloudPassword = "";
|
||||
|
||||
OpenPdtServer = false;
|
||||
PdtServerIP = "127.0.0.1";
|
||||
PdtServerPort = 10573;
|
||||
IsPdtServer = true;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
71
LeatherProject/GeBoShi/SysCtrl/SysEnum.cs
Normal file
71
LeatherProject/GeBoShi/SysCtrl/SysEnum.cs
Normal file
@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GeBoShi.SysCtrl
|
||||
{
|
||||
public enum LightChannelEnum
|
||||
{
|
||||
[Description("通道1")]
|
||||
CH1 = 1,
|
||||
[Description("通道2")]
|
||||
CH2 = 2,
|
||||
[Description("通道3")]
|
||||
CH3 = 3,
|
||||
[Description("通道4")]
|
||||
CH4 = 4,
|
||||
[Description("通道5")]
|
||||
CH5 = 5,
|
||||
[Description("通道6")]
|
||||
CH6 = 6,
|
||||
}
|
||||
public enum DOName
|
||||
{
|
||||
三色灯红灯 = 0,
|
||||
三色灯绿灯 = 1,
|
||||
三色灯黄灯 = 2,
|
||||
三色灯蜂鸣器 = 3,
|
||||
|
||||
测厚气缸 = 4,
|
||||
加紧气缸 = 5,
|
||||
|
||||
双手启动绿灯 = 7,
|
||||
启动按钮绿灯 = 8,
|
||||
复位按钮黄灯 = 9,
|
||||
停止按钮红灯 = 10,
|
||||
|
||||
触发张力按钮灯 = 11,
|
||||
|
||||
日光灯 = 12,
|
||||
|
||||
X1回原 = 13,
|
||||
X2回原 = 14,
|
||||
|
||||
Y轴回原点 = 15
|
||||
}
|
||||
|
||||
public enum DIName
|
||||
{
|
||||
启动按钮 = 14,
|
||||
暂停按钮 = 3,
|
||||
复位按钮 = 2,
|
||||
|
||||
触发张力 = 4,
|
||||
|
||||
产品有无 = 5,
|
||||
|
||||
右夹紧缩回 = 6,
|
||||
右夹紧伸出 = 7,
|
||||
前夹紧缩回 = 8,
|
||||
前夹紧伸出 = 9,
|
||||
侧推伸出 = 0,
|
||||
侧推缩回 = 1,
|
||||
|
||||
双手启动 = 10,
|
||||
门磁 = 11,
|
||||
Y轴回原点完成 = 15
|
||||
}
|
||||
}
|
800
LeatherProject/GeBoShi/SysCtrl/SysMgr.cs
Normal file
800
LeatherProject/GeBoShi/SysCtrl/SysMgr.cs
Normal file
@ -0,0 +1,800 @@
|
||||
using BarTenderPrint;
|
||||
using GeBoShi.ImageDefect;
|
||||
using HZH_Controls.Forms;
|
||||
using MaiMuControl.Device;
|
||||
using MaiMuControl.Device.IOCardDev;
|
||||
using MaiMuControl.Device.IOCardDev.Advantech;
|
||||
using MaiMuControl.Device.LightDev;
|
||||
using MaiMuControl.Device.LightDev.CST;
|
||||
using MaiMuControl.Device.LightDev.Rsee;
|
||||
using MaiMuControl.SysStatusMgr.CloudMgr;
|
||||
using MaiMuControl.SysStatusMgr.StatusMgr;
|
||||
using MaiMuControl.SysStatusMgr.UserMgr;
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using ToolKits.Disk;
|
||||
|
||||
namespace GeBoShi.SysCtrl
|
||||
{
|
||||
/// <summary>
|
||||
/// 主系统控制
|
||||
/// </summary>
|
||||
public class SysMgr
|
||||
{
|
||||
#region singleton实例化
|
||||
private static SysMgr _instance;
|
||||
private static readonly object _lock = new object();
|
||||
public static SysMgr Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
lock (_lock)
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
_instance = new SysMgr();
|
||||
}
|
||||
}
|
||||
}
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 私有
|
||||
//系统状态
|
||||
private StatusMgr statusMgr;
|
||||
public StatusMgr StatusMgr { get { return statusMgr; } }
|
||||
//用户管理
|
||||
private UserMgr userMgr;
|
||||
public UserMgr UserMgr { get { return userMgr; } }
|
||||
|
||||
//系统配置管理
|
||||
private ConfMgr confMgr;
|
||||
|
||||
//图像处理
|
||||
private DefectLib defectLib;
|
||||
public DefectLib DefectLib { get { return defectLib; } }
|
||||
#endregion
|
||||
|
||||
#region 公开字段
|
||||
private bool _isInit;
|
||||
/// <summary>
|
||||
/// 是否初始化完成
|
||||
/// </summary>
|
||||
public bool IsInit { get { return _isInit; } }
|
||||
private bool _isRuning;
|
||||
/// <summary>
|
||||
/// 设备正在运行
|
||||
/// </summary>
|
||||
public bool IsRuning { get { return _isRuning; } }
|
||||
|
||||
private bool _isAuto;
|
||||
/// <summary>
|
||||
/// 设备正在自动化流程中
|
||||
/// </summary>
|
||||
public bool IsAuto { get { return _isAuto; } }
|
||||
#endregion
|
||||
|
||||
#region 私有流程
|
||||
//主流程
|
||||
private Thread _mainThread;
|
||||
private CancellationTokenSource _cts;
|
||||
#endregion
|
||||
|
||||
#region 云端
|
||||
//局域网云端
|
||||
private bool init_Cloud;
|
||||
private CloudMgr cloudMgr;
|
||||
private int DailyOutput;
|
||||
#endregion
|
||||
private SysMgr()
|
||||
{
|
||||
_isInit = false;
|
||||
_isRuning = false;
|
||||
_isAuto = false;
|
||||
|
||||
statusMgr = StatusMgr.Instance;
|
||||
confMgr = ConfMgr.Instance;
|
||||
|
||||
userMgr = new UserMgr(statusMgr.MySqlIP);
|
||||
|
||||
_cts = new CancellationTokenSource();
|
||||
|
||||
init_Cloud = false;
|
||||
cloudMgr = new CloudMgr();
|
||||
DailyOutput = 0;
|
||||
}
|
||||
|
||||
#region 本地云上传
|
||||
/// <summary>
|
||||
/// 上传当日产量
|
||||
/// </summary>
|
||||
private void SendDailyOutput()
|
||||
{
|
||||
//开启云端
|
||||
if (init_Cloud)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!cloudMgr.SendTopic("device/attributes", $"{{ \"DailyOutput\": \"{DailyOutput}\"}}"))
|
||||
Log("云端", $"上传失败", WarningEnum.Low);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log("云端", $"上传失败:{e.Message}", WarningEnum.Low);
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 上传正常状态
|
||||
/// </summary>
|
||||
public void SendStatus()
|
||||
{
|
||||
//开启云端
|
||||
if (init_Cloud)
|
||||
{
|
||||
//上传报警状态和信息
|
||||
string statusStr = "正常";
|
||||
switch (StatusMgr.Status)
|
||||
{
|
||||
case SystemStsEnum.Manual:
|
||||
statusStr = "人工操作";
|
||||
break;
|
||||
case SystemStsEnum.Standby:
|
||||
statusStr = "正常待机";
|
||||
break;
|
||||
case SystemStsEnum.Initial:
|
||||
statusStr = "初始化";
|
||||
break;
|
||||
case SystemStsEnum.Auto:
|
||||
statusStr = "自动运行";
|
||||
break;
|
||||
case SystemStsEnum.Pause:
|
||||
statusStr = "自动暂停";
|
||||
break;
|
||||
case SystemStsEnum.SetParams:
|
||||
statusStr = "参数设置";
|
||||
break;
|
||||
case SystemStsEnum.Debug:
|
||||
statusStr = "调试";
|
||||
break;
|
||||
case SystemStsEnum.Warning:
|
||||
statusStr = "系统报警";
|
||||
break;
|
||||
case SystemStsEnum.Bootload:
|
||||
statusStr = "Bootload";
|
||||
break;
|
||||
default:
|
||||
statusStr = "未知";
|
||||
break;
|
||||
}
|
||||
try
|
||||
{
|
||||
if (!cloudMgr.SendTopic("device/attributes", $"{{\"status\": \"{statusStr}\", \"alm\": \"无报警信息\", " +
|
||||
$"\"name\": \"{confMgr.SysConfigParams.CloudThisName}\", \"DailyOutput\": \"{DailyOutput}\"}}"))
|
||||
Log("云端", $"上传失败", WarningEnum.Low);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log("云端", $"上传失败:{e.Message}", WarningEnum.Low);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 用户+登入+管理
|
||||
/// <summary>
|
||||
/// 登入
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool LoginSystem()
|
||||
{
|
||||
return userMgr.UserLoginDialog();
|
||||
}
|
||||
/// <summary>
|
||||
/// 用户权限
|
||||
/// </summary>
|
||||
public void UserPermissiomMgr()
|
||||
{
|
||||
userMgr.RightManageDialog();
|
||||
}
|
||||
/// <summary>
|
||||
/// 用户管理
|
||||
/// </summary>
|
||||
public void UserListMgr()
|
||||
{
|
||||
userMgr.UserManagerDialog();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 系统初始化&&运行
|
||||
/// <summary>
|
||||
/// 系统初始化
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool Initial()
|
||||
{
|
||||
try
|
||||
{
|
||||
bool ret = false;
|
||||
string err = "";
|
||||
InitLog("系统开始初始化...");
|
||||
//Thread.Sleep(200);
|
||||
|
||||
// 加载系统配置
|
||||
InitLog("加载系统参数...");
|
||||
ret = confMgr.LoadSystemConfig();
|
||||
|
||||
if (!ret)
|
||||
{
|
||||
throw new Exception("系统参数加载失败...");
|
||||
}
|
||||
InitLog("系统参数加载完成!");
|
||||
//根据llog路径,开始记录日志
|
||||
statusMgr.StartLog(confMgr.SysConfigParams.LogPath);
|
||||
statusMgr.GotoInitial();
|
||||
SendStatus();
|
||||
//Thread.Sleep(200);
|
||||
|
||||
// 硬件初始化
|
||||
if (!InitAllDev())
|
||||
{
|
||||
throw new Exception("硬件初始化失败...");
|
||||
}
|
||||
InitLog("硬件初始化完成!");
|
||||
|
||||
// 加载硬件配置
|
||||
InitLog("加载硬件驱动参数...");
|
||||
if (!LoadDevConfig())
|
||||
{
|
||||
throw new Exception("加载硬件驱动参数失败...");
|
||||
}
|
||||
InitLog("加载硬件驱动参数完成!");
|
||||
//Thread.Sleep(200);
|
||||
|
||||
// 处理运行
|
||||
InitLog("AI算法核心初始化...");
|
||||
|
||||
if (!defectLib.start())
|
||||
throw new Exception("外观检测核心初始化失败...");
|
||||
InitLog("AI算法核心初始化完成!");
|
||||
|
||||
LedReady();
|
||||
|
||||
//初始化成功
|
||||
_isInit = true;
|
||||
statusMgr.GotoNormalStandby();
|
||||
SendStatus();
|
||||
|
||||
OnInitRuning(new InitEventArgs("系统初始化完成...", this.IsInit));
|
||||
|
||||
Run();
|
||||
|
||||
return ret;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
InitLog(ex.Message, "初始化", WarningEnum.High);
|
||||
InitLog("系统初始化失败!", "初始化", WarningEnum.High);
|
||||
//statusMgr.GotoWarning(MaiMuControl.Device.WarningEnum.High, "初始化", ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化图像处理报警
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool InitDefectEvent()
|
||||
{
|
||||
defectLib.WarningEvent = (warning, msg) =>
|
||||
{
|
||||
Log("缺陷检测", msg, warning);
|
||||
};
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool InitCloudConnect()
|
||||
{
|
||||
if (confMgr.SysConfigParams.OpenCloud)
|
||||
{
|
||||
if (cloudMgr.ConnectCloud(confMgr.SysConfigParams.CloudServerIP, confMgr.SysConfigParams.CloudServerPort,
|
||||
confMgr.SysConfigParams.CloudUser, confMgr.SysConfigParams.CloudPassword))
|
||||
{
|
||||
init_Cloud = true;
|
||||
Log("云端数据", "开启云端连接");
|
||||
return true;
|
||||
}
|
||||
Log("云端数据", "云端连接失败!", WarningEnum.Low);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/// <summary>
|
||||
/// 运行主线程
|
||||
/// </summary>
|
||||
private void Run()
|
||||
{
|
||||
_mainThread = new Thread(() =>
|
||||
{
|
||||
MainThreadFunction();
|
||||
});
|
||||
_mainThread.IsBackground = true;
|
||||
_mainThread.Start();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 后台
|
||||
/// <summary>
|
||||
/// 中断工序运行
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private bool isBreakProcessRun()
|
||||
{
|
||||
return statusMgr.Status == SystemStsEnum.Pause || statusMgr.Warning == WarningEnum.High;
|
||||
}
|
||||
/// <summary>
|
||||
/// 后台运行主线程
|
||||
/// </summary>
|
||||
private void MainThreadFunction()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_cts.IsCancellationRequested)
|
||||
break;
|
||||
|
||||
if (IsRuning)
|
||||
{
|
||||
////暂停开始
|
||||
//stopWatch.Start();
|
||||
//do
|
||||
//{
|
||||
// CurrProcessIndex = nextProcess(CurrProductModel, CurrProcessIndex);
|
||||
//} while (CurrProcessIndex >= 0 && !isBreakProcessRun());
|
||||
////暂停中断
|
||||
//stopWatch.Stop();
|
||||
|
||||
_isRuning = false;
|
||||
}
|
||||
Thread.Sleep(10);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_isRuning = false;
|
||||
|
||||
Log("运行报警", "流程运行出错:" + e.Message + "\n", WarningEnum.High);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region IO解析
|
||||
private int GetIOPortIndex(int DIDOEnum)
|
||||
{
|
||||
return DIDOEnum / 8;
|
||||
}
|
||||
private int GetIOBitIndex(int DIDOEnum)
|
||||
{
|
||||
return DIDOEnum % 8;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 三色灯
|
||||
/// <summary>
|
||||
/// 三色灯初始化
|
||||
/// </summary>
|
||||
public void LedReady()
|
||||
{
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯绿灯), GetIOBitIndex((int)DOName.三色灯绿灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯黄灯), GetIOBitIndex((int)DOName.三色灯黄灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯红灯), GetIOBitIndex((int)DOName.三色灯红灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯蜂鸣器), GetIOBitIndex((int)DOName.三色灯蜂鸣器), false);
|
||||
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.启动按钮绿灯), GetIOBitIndex((int)DOName.启动按钮绿灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.复位按钮黄灯), GetIOBitIndex((int)DOName.复位按钮黄灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.停止按钮红灯), GetIOBitIndex((int)DOName.停止按钮红灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.双手启动绿灯), GetIOBitIndex((int)DOName.双手启动绿灯), false);
|
||||
}
|
||||
/// <summary>
|
||||
/// 运行状态三色灯
|
||||
/// </summary>
|
||||
public void LedRun()
|
||||
{
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯绿灯), GetIOBitIndex((int)DOName.三色灯绿灯), true);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯黄灯), GetIOBitIndex((int)DOName.三色灯黄灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯红灯), GetIOBitIndex((int)DOName.三色灯红灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯蜂鸣器), GetIOBitIndex((int)DOName.三色灯蜂鸣器), false);
|
||||
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.启动按钮绿灯), GetIOBitIndex((int)DOName.启动按钮绿灯), true);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.复位按钮黄灯), GetIOBitIndex((int)DOName.复位按钮黄灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.停止按钮红灯), GetIOBitIndex((int)DOName.停止按钮红灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.双手启动绿灯), GetIOBitIndex((int)DOName.双手启动绿灯), false);
|
||||
}
|
||||
/// <summary>
|
||||
/// 暂停状态三色灯
|
||||
/// </summary>
|
||||
public void LedPause()
|
||||
{
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯绿灯), GetIOBitIndex((int)DOName.三色灯绿灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯黄灯), GetIOBitIndex((int)DOName.三色灯黄灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯红灯), GetIOBitIndex((int)DOName.三色灯红灯), true);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯蜂鸣器), GetIOBitIndex((int)DOName.三色灯蜂鸣器), false);
|
||||
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.启动按钮绿灯), GetIOBitIndex((int)DOName.启动按钮绿灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.复位按钮黄灯), GetIOBitIndex((int)DOName.复位按钮黄灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.停止按钮红灯), GetIOBitIndex((int)DOName.停止按钮红灯), true);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.双手启动绿灯), GetIOBitIndex((int)DOName.双手启动绿灯), false);
|
||||
}
|
||||
//控制黄灯闪烁
|
||||
private bool Blink;
|
||||
private int BlinkCnt = 0;
|
||||
//控制蜂鸣间隔
|
||||
private int BuzzCnt = 0;
|
||||
/// <summary>
|
||||
/// 回原状态三色灯
|
||||
/// </summary>
|
||||
/// <param name="val"></param>
|
||||
public void LedRset(bool val)
|
||||
{
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯绿灯), GetIOBitIndex((int)DOName.三色灯绿灯), false);
|
||||
//ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯黄灯), GetIOBitIndex((int)DOName.三色灯黄灯), val);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯红灯), GetIOBitIndex((int)DOName.三色灯红灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.三色灯蜂鸣器), GetIOBitIndex((int)DOName.三色灯蜂鸣器), false);
|
||||
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.启动按钮绿灯), GetIOBitIndex((int)DOName.启动按钮绿灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.复位按钮黄灯), GetIOBitIndex((int)DOName.复位按钮黄灯), val);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.停止按钮红灯), GetIOBitIndex((int)DOName.停止按钮红灯), false);
|
||||
ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.双手启动绿灯), GetIOBitIndex((int)DOName.双手启动绿灯), false);
|
||||
Blink = val;
|
||||
BlinkCnt = 0;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 系统关闭
|
||||
/// <summary>
|
||||
/// 关闭
|
||||
/// </summary>
|
||||
public void Close()
|
||||
{
|
||||
_isInit = false;
|
||||
_isRuning = false;
|
||||
if (null != _cts)
|
||||
{
|
||||
_cts.Cancel();
|
||||
}
|
||||
if (null != _mainThread)
|
||||
{
|
||||
_mainThread.Join(1000);
|
||||
}
|
||||
|
||||
|
||||
//关闭相机
|
||||
|
||||
|
||||
//关闭光源
|
||||
for (int i = 0; i < LightChCount; i++)
|
||||
{
|
||||
lightDev.CloseLight(i + 1);
|
||||
}
|
||||
|
||||
lightDev.CloseDev();
|
||||
|
||||
|
||||
//关闭io
|
||||
ioCardDev.ResetAllDO();
|
||||
|
||||
ioCardDev.CloseBoard();
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 日志报警
|
||||
/// <summary>
|
||||
/// 初始化记录报警和显示
|
||||
/// </summary>
|
||||
/// <param name="tag">标头</param>
|
||||
/// <param name="msg">内容</param>
|
||||
/// <param name="warning">报警状态</param>
|
||||
private void InitLog(string msg, string tag = "初始化", WarningEnum warning = WarningEnum.Normal)
|
||||
{
|
||||
OnInitRuning(new InitEventArgs(msg));
|
||||
statusMgr.GotoWarning(warning, tag, msg);
|
||||
}
|
||||
/// <summary>
|
||||
/// 记录报警和显示
|
||||
/// </summary>
|
||||
/// <param name="tag">标头</param>
|
||||
/// <param name="msg">内容</param>
|
||||
/// <param name="warning">报警状态</param>
|
||||
private void Log(string tag, string msg, WarningEnum warning = WarningEnum.Normal)
|
||||
{
|
||||
OnMainRuning(new MainEventArgs(tag, msg, warning));
|
||||
statusMgr.GotoWarning(warning, tag, msg);
|
||||
//开启云端
|
||||
if ((init_Cloud) && (warning != WarningEnum.Normal))
|
||||
{
|
||||
//上传报警状态和信息
|
||||
string statusStr = warning == WarningEnum.Normal ? "正常" : warning == WarningEnum.Low ? "警告" : "系统报警";
|
||||
cloudMgr.SendTopic("device/attributes", $"{{\"status\": \"{statusStr}\", \"alm\": \"{tag}-{msg}\", " +
|
||||
$"\"name\": \"{confMgr.SysConfigParams.CloudThisName}\", \"DailyOutput\": \"{DailyOutput}\"}}");
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 硬件
|
||||
|
||||
#region 硬件型号配置
|
||||
public LightDevNameEnum SysUseLight = LightDevNameEnum.CST;
|
||||
#endregion
|
||||
|
||||
#region 硬件字段
|
||||
|
||||
private IOCardDev ioCardDev;
|
||||
/// <summary>
|
||||
/// io控制卡
|
||||
/// </summary>
|
||||
public IOCardDev IOCardDev { get { return ioCardDev; } }
|
||||
|
||||
private LightDev lightDev;
|
||||
/// <summary>
|
||||
/// 光源控制
|
||||
/// </summary>
|
||||
public LightDev LightDev { get { return lightDev; } }
|
||||
public string LightName { get { return "Light"; } }
|
||||
public int LightChCount = 6;//美尚4通道,其他6通道
|
||||
|
||||
private PrintControl printControl;
|
||||
/// <summary>
|
||||
/// 打印机模块
|
||||
/// </summary>
|
||||
public PrintControl PrintControl { get { return printControl; } }
|
||||
#endregion
|
||||
|
||||
#region 初始化和基本电机IO操作
|
||||
private void InitDev()
|
||||
{
|
||||
ioCardDev = new AdvantechIO();
|
||||
if (SysUseLight == LightDevNameEnum.CST)
|
||||
lightDev = new CSTLight(LightName, LightChCount);
|
||||
else
|
||||
lightDev = new RseeLight(SysUseLight, LightName);
|
||||
}
|
||||
/// <summary>
|
||||
/// 初始化硬件
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private bool InitAllDev()
|
||||
{
|
||||
bool ret = false;
|
||||
InitDev();
|
||||
|
||||
//打印机模块初始化
|
||||
InitLog("打印机模块初始化...");
|
||||
try
|
||||
{
|
||||
printControl = new PrintControl();
|
||||
InitLog("初始化打印机模块成功!");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
printControl = null;
|
||||
InitLog($"初始化打印机模块失败! {ex.Message}");
|
||||
}
|
||||
|
||||
if (confMgr.SysConfigParams.IsPLC)
|
||||
{
|
||||
//PLC初始化
|
||||
InitLog("PLC连接初始化...");
|
||||
|
||||
InitLog("PLC连接成功!");
|
||||
}
|
||||
else
|
||||
{
|
||||
//IO初始化
|
||||
InitLog("IO板卡初始化...");
|
||||
if (ioCardDev.InitBoard(MaiMuControl.Device.IOBordType.Advantech) < 0)
|
||||
{
|
||||
InitLog("IO板卡初始化失败!", "初始化", WarningEnum.High);
|
||||
return ret;
|
||||
}
|
||||
if (ioCardDev.OpenBoard(confMgr.SysConfigParams.IODevName, confMgr.SysConfigParams.IOCfgPath) < 0)
|
||||
{
|
||||
InitLog("打开IO板卡失败!", "初始化", WarningEnum.High);
|
||||
return ret;
|
||||
}
|
||||
if (ioCardDev.ResetAllDO() < 0)
|
||||
{
|
||||
InitLog("IO Reset失败!", "初始化", WarningEnum.High);
|
||||
return ret;
|
||||
}
|
||||
InitLog("初始化IO板卡成功!");
|
||||
}
|
||||
|
||||
//光源初始化
|
||||
InitLog("光源控制器初始化...");
|
||||
int com_num = int.Parse(confMgr.SysConfigParams.LightCom.Remove(0, 3));
|
||||
if (lightDev.InitDev(com_num, confMgr.SysConfigParams.LightComBaud) < 0)
|
||||
{
|
||||
InitLog("光源控制器初始化失败!", "初始化", WarningEnum.High);
|
||||
return ret;
|
||||
}
|
||||
InitLog("初始化光源控制器成功!");
|
||||
//关闭光源
|
||||
for (int i = 0; i < LightChCount; i++)
|
||||
{
|
||||
lightDev.CloseLight(i + 1);
|
||||
}
|
||||
|
||||
ret = true;
|
||||
return ret;
|
||||
}
|
||||
/// <summary>
|
||||
/// 读取硬件配置
|
||||
/// </summary>
|
||||
private bool LoadDevConfig()
|
||||
{
|
||||
LightParams lightParams = new LightParams(LightName, LightChCount);
|
||||
//LightChCount = 6;
|
||||
//lightParams.DevName = LightName;
|
||||
lightParams.ComName = confMgr.SysConfigParams.LightCom;
|
||||
lightParams.Buad = confMgr.SysConfigParams.LightComBaud;
|
||||
//lightParams.ChCount = LightChCount;
|
||||
lightDev.WriteCfgInfo(confMgr.DevConfigPath, lightParams);
|
||||
return true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
#region 硬盘检测
|
||||
public static bool CheckDisk(IWin32Window owner, int max = 10)
|
||||
{
|
||||
string path = ConfMgr.Instance.SysConfigParams.DefectSrcImag.SavePath;
|
||||
string volume = path.Substring(0, path.IndexOf(':'));
|
||||
long freespace = DiskAPI.GetHardDiskSpace(volume);
|
||||
if (freespace < max)
|
||||
{
|
||||
string tip = $"当前{volume}硬盘容量:{freespace}GB,小于{max}GB。注意清理!!";
|
||||
FrmDialog.ShowDialog(owner, tip, "警告", true);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 初始化事件
|
||||
/// <summary>
|
||||
/// 初始化回调
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
public delegate void InitEventHandler(Object sender, InitEventArgs e);
|
||||
public event InitEventHandler InitRuning;
|
||||
protected virtual void OnInitRuning(InitEventArgs e)
|
||||
{
|
||||
if (null != InitRuning)
|
||||
{
|
||||
InitRuning(this, e);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 主窗体显示事件
|
||||
/// <summary>
|
||||
/// 主窗体回调
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
public delegate void MainEventHandler(Object sender, MainEventArgs e);
|
||||
public event MainEventHandler MainRuning;
|
||||
protected virtual void OnMainRuning(MainEventArgs e)
|
||||
{
|
||||
if (null != MainRuning)
|
||||
{
|
||||
MainRuning(this, e);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
#region 系统事件
|
||||
/// <summary>
|
||||
/// 显图事件
|
||||
/// </summary>
|
||||
public class ImgEventArgs : EventArgs
|
||||
{
|
||||
//private Bitmap[] _bmps;
|
||||
//public Bitmap[] Bitmaps { get { return _bmps; } }
|
||||
|
||||
//private Mat[] _bmps_cut;
|
||||
//public Mat[] Bmps_cut { get { return _bmps_cut; } }
|
||||
|
||||
//private double _x;
|
||||
//public double X { get { return _x; } }
|
||||
//private double _y;
|
||||
//public double Y { get { return _y; } }
|
||||
|
||||
//private List<Dictionary<int, List<string>[]>> _info;
|
||||
//public List<Dictionary<int, List<string>[]>> Info
|
||||
//{
|
||||
// get { return _info; }
|
||||
//}
|
||||
|
||||
//public ImgEventArgs(Bitmap[] bmps, Mat[] bmps_cut, double Xmm, double Ymm, List<Dictionary<int, List<string>[]>> info)
|
||||
//{
|
||||
// this._bmps = new Bitmap[bmps.Length];
|
||||
// for (int i = 0; i < bmps.Length; i++)
|
||||
// {
|
||||
// this._bmps[i] = (Bitmap)bmps[i].Clone();
|
||||
// }
|
||||
// this._bmps_cut = new Mat[bmps_cut.Length];
|
||||
// for (int i = 0; i < bmps_cut.Length; i++)
|
||||
// {
|
||||
// this._bmps_cut[i] = bmps_cut[i].Clone();
|
||||
// }
|
||||
// this._x = Xmm;
|
||||
// this._y = Ymm;
|
||||
// this._info = info;
|
||||
//}
|
||||
}
|
||||
/// <summary>
|
||||
/// 主窗体事件
|
||||
/// </summary>
|
||||
public class MainEventArgs : EventArgs
|
||||
{
|
||||
private string _tag;
|
||||
public string Tag { get { return _tag; } }
|
||||
|
||||
private string _message;
|
||||
public string Message { get { return _message; } }
|
||||
|
||||
private int _showIndex;
|
||||
public int ShowIndex { get { return _showIndex; } }
|
||||
|
||||
private WarningEnum _warning;
|
||||
public WarningEnum Warning { get { return _warning; } }
|
||||
public MainEventArgs(int index)
|
||||
{
|
||||
this._showIndex = index;
|
||||
}
|
||||
public MainEventArgs(int index, string message)
|
||||
{
|
||||
this._message = message;
|
||||
this._showIndex = index;
|
||||
}
|
||||
public MainEventArgs(string tag, string message, WarningEnum warning = WarningEnum.Normal)
|
||||
{
|
||||
this._tag = tag;
|
||||
this._message = message;
|
||||
this._showIndex = 0;
|
||||
this._warning = warning;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 初始化事件
|
||||
/// </summary>
|
||||
public class InitEventArgs : EventArgs
|
||||
{
|
||||
private string _message;
|
||||
public string Message { get { return _message; } }
|
||||
|
||||
private bool _isInitialized;
|
||||
public bool IsInitialized { get { return _isInitialized; } }
|
||||
public InitEventArgs()
|
||||
{
|
||||
|
||||
}
|
||||
public InitEventArgs(string message, bool isInitialized = false)
|
||||
{
|
||||
this._message = message;
|
||||
this._isInitialized = isInitialized;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
108
LeatherProject/GeBoShi/UI/Load/InitFrm.Designer.cs
generated
Normal file
108
LeatherProject/GeBoShi/UI/Load/InitFrm.Designer.cs
generated
Normal file
@ -0,0 +1,108 @@
|
||||
namespace GeBoShi.UI.Load
|
||||
{
|
||||
partial class InitFrm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.StsTextBox = new System.Windows.Forms.TextBox();
|
||||
this.skinButton1 = new CCWin.SkinControl.SkinButton();
|
||||
this.uiTitel1 = new MaiMuControl.UIKits.MaiMuMenu.UITitel();
|
||||
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// StsTextBox
|
||||
//
|
||||
this.StsTextBox.Cursor = System.Windows.Forms.Cursors.AppStarting;
|
||||
this.StsTextBox.Font = new System.Drawing.Font("微软雅黑", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.StsTextBox.Location = new System.Drawing.Point(12, 46);
|
||||
this.StsTextBox.Multiline = true;
|
||||
this.StsTextBox.Name = "StsTextBox";
|
||||
this.StsTextBox.ReadOnly = true;
|
||||
this.StsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
|
||||
this.StsTextBox.Size = new System.Drawing.Size(433, 366);
|
||||
this.StsTextBox.TabIndex = 39;
|
||||
this.StsTextBox.Text = "1\r\n2\r\n3\r\n43\r\n4\r\n5\r\n56\r\n6\r\n7";
|
||||
//
|
||||
// skinButton1
|
||||
//
|
||||
this.skinButton1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.skinButton1.BorderColor = System.Drawing.Color.Silver;
|
||||
this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal;
|
||||
this.skinButton1.DownBack = null;
|
||||
this.skinButton1.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.skinButton1.Location = new System.Drawing.Point(12, 418);
|
||||
this.skinButton1.MouseBack = null;
|
||||
this.skinButton1.Name = "skinButton1";
|
||||
this.skinButton1.NormlBack = null;
|
||||
this.skinButton1.Radius = 16;
|
||||
this.skinButton1.RoundStyle = CCWin.SkinClass.RoundStyle.All;
|
||||
this.skinButton1.Size = new System.Drawing.Size(99, 38);
|
||||
this.skinButton1.TabIndex = 38;
|
||||
this.skinButton1.Text = "跳过";
|
||||
this.skinButton1.UseVisualStyleBackColor = false;
|
||||
this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click);
|
||||
//
|
||||
// uiTitel1
|
||||
//
|
||||
this.uiTitel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(8)))), ((int)(((byte)(31)))), ((int)(((byte)(120)))));
|
||||
this.uiTitel1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.uiTitel1.FatherForm = null;
|
||||
this.uiTitel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.uiTitel1.Name = "uiTitel1";
|
||||
this.uiTitel1.Size = new System.Drawing.Size(461, 46);
|
||||
this.uiTitel1.TabIndex = 37;
|
||||
//
|
||||
// backgroundWorker1
|
||||
//
|
||||
this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork);
|
||||
//
|
||||
// InitFrm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(8)))), ((int)(((byte)(31)))), ((int)(((byte)(120)))));
|
||||
this.ClientSize = new System.Drawing.Size(461, 461);
|
||||
this.Controls.Add(this.StsTextBox);
|
||||
this.Controls.Add(this.skinButton1);
|
||||
this.Controls.Add(this.uiTitel1);
|
||||
this.Name = "InitFrm";
|
||||
this.Text = "InitFrm";
|
||||
this.Load += new System.EventHandler(this.InitFrm_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox StsTextBox;
|
||||
private CCWin.SkinControl.SkinButton skinButton1;
|
||||
private MaiMuControl.UIKits.MaiMuMenu.UITitel uiTitel1;
|
||||
private System.ComponentModel.BackgroundWorker backgroundWorker1;
|
||||
}
|
||||
}
|
122
LeatherProject/GeBoShi/UI/Load/InitFrm.cs
Normal file
122
LeatherProject/GeBoShi/UI/Load/InitFrm.cs
Normal file
@ -0,0 +1,122 @@
|
||||
using GeBoShi.SysCtrl;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace GeBoShi.UI.Load
|
||||
{
|
||||
public partial class InitFrm : Form
|
||||
{
|
||||
public InitFrm()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.uiTitel1.FatherForm = this;
|
||||
this.uiTitel1.ShowContrlBox(false, false, true, false);
|
||||
UIStyle.SetUIStyle(this);
|
||||
SysMgr.Instance.InitRuning += init_Process;
|
||||
}
|
||||
|
||||
#region 事件回调
|
||||
private void init_Process(object sender, InitEventArgs e)
|
||||
{
|
||||
ShowInitMessage(e.Message);
|
||||
|
||||
if (e.IsInitialized)
|
||||
{
|
||||
Thread.Sleep(1000);
|
||||
CloseWnd();
|
||||
}
|
||||
}
|
||||
|
||||
private delegate void dSkip_init();
|
||||
private void Skip_init()
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
dSkip_init d = new dSkip_init(Skip_init);
|
||||
this.Invoke(d);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Cursor = Cursors.Default;
|
||||
skinButton1.Visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
private delegate void dCloseWnd();
|
||||
private void CloseWnd()
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
dCloseWnd d = new dCloseWnd(CloseWnd);
|
||||
this.Invoke(d);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Cursor = Cursors.Default;
|
||||
SysMgr.Instance.InitRuning -= init_Process;
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private delegate void dShowInitMessage(string message);
|
||||
private void ShowInitMessage(string message)
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
dShowInitMessage d = new dShowInitMessage(ShowInitMessage);
|
||||
this.Invoke(d, message);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!string.IsNullOrEmpty(StsTextBox.Text))
|
||||
{
|
||||
StsTextBox.Text = StsTextBox.Text + "\r\n" + message;
|
||||
}
|
||||
else
|
||||
{ StsTextBox.Text = message; }
|
||||
|
||||
StsTextBox.SelectionStart = StsTextBox.Text.Length;
|
||||
StsTextBox.ScrollToCaret();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void InitFrm_Load(object sender, EventArgs e)
|
||||
{
|
||||
StsTextBox.Text = "";
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
backgroundWorker1.RunWorkerAsync();
|
||||
skinButton1.Visible = false;
|
||||
}
|
||||
|
||||
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
|
||||
{
|
||||
Thread.Sleep(500);
|
||||
try
|
||||
{
|
||||
if (!SysMgr.Instance.Initial())
|
||||
Skip_init();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//CloseWnd();
|
||||
}
|
||||
}
|
||||
|
||||
private void skinButton1_Click(object sender, EventArgs e)
|
||||
{
|
||||
SysMgr.Instance.InitRuning -= init_Process;
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
123
LeatherProject/GeBoShi/UI/Load/InitFrm.resx
Normal file
123
LeatherProject/GeBoShi/UI/Load/InitFrm.resx
Normal file
@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
2541
LeatherProject/GeBoShi/UI/SysSet/SysSetFrm.Designer.cs
generated
Normal file
2541
LeatherProject/GeBoShi/UI/SysSet/SysSetFrm.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
22
LeatherProject/GeBoShi/UI/SysSet/SysSetFrm.cs
Normal file
22
LeatherProject/GeBoShi/UI/SysSet/SysSetFrm.cs
Normal file
@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace GeBoShi.UI.SysSet
|
||||
{
|
||||
public partial class SysSetFrm : Form
|
||||
{
|
||||
public SysSetFrm()
|
||||
{
|
||||
InitializeComponent();
|
||||
UIStyle.SetUIStyle(this);
|
||||
this.uiTitel1.FatherForm = this;
|
||||
}
|
||||
}
|
||||
}
|
282
LeatherProject/GeBoShi/UI/SysSet/SysSetFrm.resx
Normal file
282
LeatherProject/GeBoShi/UI/SysSet/SysSetFrm.resx
Normal file
@ -0,0 +1,282 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="skinTabControl1.PageArrowDown" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAYAAACwaJKDAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAD9SURBVEhL1dO7CoJQGMDxtu73+1CBzY31Ck0NvkOb
|
||||
gzi6+QaCEDgLTqKCEPQIIUGbb+Gui+YXBIc4WcP3DQ0/OJfv/LdTyfO8iu2/ojVsZNE6NrJoAxtZtIkN
|
||||
oi1sZNE2NrJoBxtEu9gg2vvE9/2JLMtrURQ3LEmSBMdxprw3oDQKwTiOT8X6zirOTAjDDA9E+58EQTBV
|
||||
FGWbJMm52D+DaZpeVFXdeZ43Y2dZEB2UMQxjaVnWPsuya+Hmuu5B1/UVb/blaxRomiaEYXiMokiBNW+G
|
||||
BdHhL2zbXpimueTdvYPoCBtZdIwNohNsZFH4bqjIovDdUJFF59j+JZrPH4oDa+C9e8hUAAAAAElFTkSu
|
||||
QmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="skinTabControl1.PageArrowHover" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAYAAACwaJKDAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEwSURBVEhLtdNNS4RAAMbxvkBtLxu9UFT0skUv1rZ7
|
||||
7h77HfZkH0QPeu0mePQgnsSrhCCCN+8e99DVayKhNk+wUDFWh2eFH8yMzh9kmKW2bZfZEF1hW1i0x4bo
|
||||
Khuia2yIrrMhusGGaJ8N0U02RLfYEN1mQ3SHDdFdNkT32BDd7xLH8amu6/eqqj58JdZGURSdyfYAogdd
|
||||
TNMcFUXxIsbfHrEWGYYxFkPpPkQPu6RpOtA07bEsy5mYfz5VVb2K4CRJknMxle5D9Og3rusqnudN67p+
|
||||
a5rmPQiCJ8dxbmXfziF6/BfbtsdZlml5nj9bloXfln43h+jJf4RhqPi+fyd79xOiOEUqRAdsiOIUqRC9
|
||||
YEP0kg3RKzZEr9kQvWFDVGFDFPeYClFcPSpEh2wLiLbDDwVKnf7UO7t5AAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="skinTabControl1.PageCloseHover" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABGdBTUEAALGPC/xhBQAAAH9JREFUKFNj
|
||||
+P//P0kYmcMKxXjFYIwzaBiXGFgDyIQzHB2n/4MwiA3DaGJgm1A0cHad+88//T6Q+/8MiAbxsWmAWw9S
|
||||
JLH653+p9f/BNEwzFMOdhKIJpBiGYWJADFeHophYG0j2A1wDkiQYo4lhehoJ4xJD8TTIBLApuMX+MwAA
|
||||
JO7ByqoT8QIAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="skinTabControl1.PageCloseNormal" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABGdBTUEAALGPC/xhBQAAAItJREFUKFOd
|
||||
kbENgDAMBCNRIFExAAUtbYoMQc8A7EHBFKxrfJGxUERjkJ7E9r/fSZKIhMCvUwyK0cC+/8jBqwKCSZEV
|
||||
RbEoZluJyVOHVwV0yOtxCdBvV2ysrxwieC4oT9EIZxPj5AKssPeODRlH6j4SB2Rmxmg7n5anDu+fQ/gM
|
||||
bEK3hFXoHQIvLekGBLunGoMvIJEAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="skinTabControl1.PageDown" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAADsAAAAiCAYAAADh/KHgAAAABGdBTUEAALGPC/xhBQAAAOZJREFUaEPl
|
||||
2KsKQlEURdHrG996BYNgMBgMFoPBYrAYDBaDwWAwGARBEAT//bpXWHC+YXpghhVHPDuLVyqKokFPTmOb
|
||||
9FJsm16K7dJLsQN6KXZEL8WO6RlbjjGhJ6exU3opdkYvxc7pGVuJsaAnp7FLesZWY6zoyWnsmp6xtRgb
|
||||
enIKW4+xpSensPrc7ujJaeyenrH6yR/oySlsK8aRnpzC6mxxoiensJ0YZ3pyCqsbzYWenML2YlzpySls
|
||||
P8aNnpzG3ukZq1Pjg56cwg5jPOnJaeyLnrF5jDc9OY390EuxX3p/hs3yH+t9kV6QtrMcAAAAAElFTkSu
|
||||
QmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="skinTabControl1.PageHover" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAADsAAAAiCAYAAADh/KHgAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEISURBVGhD3dirTkNRFEXRy7NAICGkaaAhvIpC4ZB1
|
||||
lTgsEolF1lZWIrFIHBKHw2FQqIoKfuGyptjJ/YZ5kimWHHKfJm+lbdtdezgLu2+vi+3bK+xqxpE9nIU9
|
||||
sdfFXtrrYq/sFXYt49oezsLe2CvsesbYHs7CTuwVdiPj1h5OsJsZd/Zwgu1l3NvDCXYr48EeTrDbGY/2
|
||||
cILdyXiyhxMsx+3UHk6wexkzezjBcsnP7eEEe5DxbA8nWL4tXuzhBDvIeLWHE+xhxps9nGCHGe/2cII9
|
||||
zviwh7Own/YKy1fjlz2cYE8zvu3hBHuW8WMPJ9jzjF97OMFeZCzs4Szs0l5hRxl/9pqmGf0Dp89NtaTt
|
||||
b1AAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnClearDefect_Compress_SavePath.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
|
||||
DAAACwwBP0AiyAAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAAJRSURB
|
||||
VFhHxZfNTsMwEISBtyoXKM3TwIUDTa9U4h8BT8CDAiphd+J118nENlCEpU9q7dmZrZ2mzZ6Mg38mfdN1
|
||||
XUTGfpjfBfsDbx06HwVY+Fgujjbt4vR9uTgcCH8DvN+Wi9mmbc4k49h5Q4DuPtvmpVs1nfG5aq530ATC
|
||||
4ZV6v5r3gb6QT3zsBU54o+tBzAImsTp4EG/JnIuuF8q2nzORYjvxnSZcePLJPZop2rgDMyYy5HiwE2HQ
|
||||
UEcfrjXEy9BM1WpBfw1kulU2q+a2ogmEQ0s8DNtVHUnh1HkZ8qnuVBeKffB221VDag1k9PUYY4PCTsj6
|
||||
qAlXWwofXk/bBmxCF2ULSztxH0wwEK5zRGvAc1sT83w4UFEwzJ9j2zw67SPTGPAK2kFe8iYSjctbeqmw
|
||||
NQMePFwZTURqm8hRCFfoZCQ2UThfBmry4QqdTIhNrPLn7IG2HK7QyRGuiex5K9DUhSt0coRrYM1CPdDs
|
||||
sgEX/swCGdDWNUEnIz8JNyqboJPAhSd/VL4DavNN0MnqcPmqrRW2ZhSaGE1sw9vmiRkafovxmmgMeAXt
|
||||
IC95g4lgmL+3h3AbVU2Ee0MYMS+G62IwemAGhqyPttTV5o9MvdPa2IAZZG+5LNyw+Yomkp9yLba/ZFes
|
||||
wJD1qXOM2Dq0xMNAVu/TF71fnBwyoSEFtfd230T2OtJM0fcFhb/lw3Mr4pqYvJ6Gf8unHkxqflIprgl6
|
||||
XWmm6CDGEOGrF8h3F+f0k3AjNqFe3luyZB0jEcqD41wfIN8u/uDhVDzDw+m8z+v2vgCLN08Z7ifCRgAA
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnClearDefect_Small_Path.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
|
||||
DAAACwwBP0AiyAAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAAJRSURB
|
||||
VFhHxZfNTsMwEISBtyoXKM3TwIUDTa9U4h8BT8CDAiphd+J118nENlCEpU9q7dmZrZ2mzZ6Mg38mfdN1
|
||||
XUTGfpjfBfsDbx06HwVY+Fgujjbt4vR9uTgcCH8DvN+Wi9mmbc4k49h5Q4DuPtvmpVs1nfG5aq530ATC
|
||||
4ZV6v5r3gb6QT3zsBU54o+tBzAImsTp4EG/JnIuuF8q2nzORYjvxnSZcePLJPZop2rgDMyYy5HiwE2HQ
|
||||
UEcfrjXEy9BM1WpBfw1kulU2q+a2ogmEQ0s8DNtVHUnh1HkZ8qnuVBeKffB221VDag1k9PUYY4PCTsj6
|
||||
qAlXWwofXk/bBmxCF2ULSztxH0wwEK5zRGvAc1sT83w4UFEwzJ9j2zw67SPTGPAK2kFe8iYSjctbeqmw
|
||||
NQMePFwZTURqm8hRCFfoZCQ2UThfBmry4QqdTIhNrPLn7IG2HK7QyRGuiex5K9DUhSt0coRrYM1CPdDs
|
||||
sgEX/swCGdDWNUEnIz8JNyqboJPAhSd/VL4DavNN0MnqcPmqrRW2ZhSaGE1sw9vmiRkafovxmmgMeAXt
|
||||
IC95g4lgmL+3h3AbVU2Ee0MYMS+G62IwemAGhqyPttTV5o9MvdPa2IAZZG+5LNyw+Yomkp9yLba/ZFes
|
||||
wJD1qXOM2Dq0xMNAVu/TF71fnBwyoSEFtfd230T2OtJM0fcFhb/lw3Mr4pqYvJ6Gf8unHkxqflIprgl6
|
||||
XWmm6CDGEOGrF8h3F+f0k3AjNqFe3luyZB0jEcqD41wfIN8u/uDhVDzDw+m8z+v2vgCLN08Z7ifCRgAA
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnClearDefect_Path.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
|
||||
DAAACwwBP0AiyAAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAAJRSURB
|
||||
VFhHxZfNTsMwEISBtyoXKM3TwIUDTa9U4h8BT8CDAiphd+J118nENlCEpU9q7dmZrZ2mzZ6Mg38mfdN1
|
||||
XUTGfpjfBfsDbx06HwVY+Fgujjbt4vR9uTgcCH8DvN+Wi9mmbc4k49h5Q4DuPtvmpVs1nfG5aq530ATC
|
||||
4ZV6v5r3gb6QT3zsBU54o+tBzAImsTp4EG/JnIuuF8q2nzORYjvxnSZcePLJPZop2rgDMyYy5HiwE2HQ
|
||||
UEcfrjXEy9BM1WpBfw1kulU2q+a2ogmEQ0s8DNtVHUnh1HkZ8qnuVBeKffB221VDag1k9PUYY4PCTsj6
|
||||
qAlXWwofXk/bBmxCF2ULSztxH0wwEK5zRGvAc1sT83w4UFEwzJ9j2zw67SPTGPAK2kFe8iYSjctbeqmw
|
||||
NQMePFwZTURqm8hRCFfoZCQ2UThfBmry4QqdTIhNrPLn7IG2HK7QyRGuiex5K9DUhSt0coRrYM1CPdDs
|
||||
sgEX/swCGdDWNUEnIz8JNyqboJPAhSd/VL4DavNN0MnqcPmqrRW2ZhSaGE1sw9vmiRkafovxmmgMeAXt
|
||||
IC95g4lgmL+3h3AbVU2Ee0MYMS+G62IwemAGhqyPttTV5o9MvdPa2IAZZG+5LNyw+Yomkp9yLba/ZFes
|
||||
wJD1qXOM2Dq0xMNAVu/TF71fnBwyoSEFtfd230T2OtJM0fcFhb/lw3Mr4pqYvJ6Gf8unHkxqflIprgl6
|
||||
XWmm6CDGEOGrF8h3F+f0k3AjNqFe3luyZB0jEcqD41wfIN8u/uDhVDzDw+m8z+v2vgCLN08Z7ifCRgAA
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="tsbtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD3SURBVFhH7ZVLDsIwEEN7i0pdsQvcgqNwE46aY/BbAEEe
|
||||
QSdpYwsIqsSTZjEZ2/WuXWI4b64NJvaHsHp80FMQf2vKJUyANaN293h9+uh9j3jPS3iDp3b3lPSzJUqG
|
||||
V9T7lN6XwHO7AgmUGN/nDAn1ruqXX8Aj58mGCnIea1AH9ozszhrUgT0ju9cMn+ZfYFkF+kvY2l2cmLyI
|
||||
GWEarNMF3vi4TbGE3bFOF7D34RR2eKIZjus9/M+/HrBcrPUCWGXoXFooQufSQhE6lxaK0Lm0UITOpYUi
|
||||
dC4tFKFzaaEInUsLRehcWihC59JCETrXHloPPv/LAl13A1LYVlVnNRG8AAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsbtnDataSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD+SURBVFhH7ZZRDoIwEER7FI/iHYz0l5t4ECB80MRjeBSP
|
||||
osxSmqqgu90agjLJS5DQYdgOBrNpFXK2LrtDddVwtu3O28kFA2ebm4pjc/F2cnW22qfgivqUHAAjmzLl
|
||||
4m0MbiwOAIOQPBV/wzAFUYCiaV8MhaA38EoKEMamhLy0AYZp1CWf3AGiQnEUv7L4/QMBekNsA5dxHSCv
|
||||
1ZdQA3mpt4DGOtX2OXIH+Pu3AMfPTX9HWNdDXqsvoQbyUncAY4UJF78OkNd4LjlAphLiQegCjr4RAP8R
|
||||
dAFHcQAcxy3/RFjXAy982om/iB8CKPB2ci0eAPuuCTH0QLDnm5aTMXdXn0kUg17O3gAAAABJRU5ErkJg
|
||||
gg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsbtnDatImport.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJaSURBVFhHvZfBSxtBGMXzR/QPqJfSFiEsaZOoDRu1ERJq
|
||||
YozQlFLUHoJUQbBIQbDx2EMO6i3nnnspePCUgxcR/wdPnrxJC6WlTPNb9wvjZjfZZGf74C1sdua9tzPz
|
||||
bfgSo6K88ckqre20ujy1i7Xrqerqj8mXpT+pVEoJX9j2X36bmS/+Zky+9u6COc1L9cCVGR2F+sa3dDr7
|
||||
K7ewqOCb/bba+nrpcPfk2mHzXDmUe569P/zujF2oN5xwaKDlyg7H3Mr602nb/okpYmIyDgmFBmHQRNu1
|
||||
CQYDeRM/wSgkCNquTTBYNj8BE0TbtQkGg/T9NUU0Qwdg/5c2D4wEYTvRQjN0ACayZ1IBHCKpAkIJdSPu
|
||||
pQqgmDKXe8aMFMArLKUloSBjhWKGMcTUG/JegGQy+bD7w5UuIkTMO9kE0Xbt7yAhJqq7ncSRUsKp7XYs
|
||||
IfoCgP8VAh3fACAoRGbzOHKIvirgMoiPSo1eAPiksqXS2Wm18rFlpgqci2YQhs8aLZXN5dV8bdURFerB
|
||||
xWxoFYwTAJo4E5ECWHt3HyY/4bAcO4AJc1auF2AQJ2eXjJr3VYEfKEPLsjqPC6/PdPOJt1/U83TGOVyx
|
||||
/RcEmcubi7Dx/wIwzFyfbIL3Aoi5/hbCOMwh2q59MBjkXToTRDN0AFaAfTQRJFQV6GAQEzlETIKxVoEX
|
||||
EsArHEsV+MEbwCRDBZitLN/wtn4CUcgqhmpMTLZmkG1ga9CcKbwqujaDwTei/OFze265fqvvLYH0g6ib
|
||||
QJ7p54UlH7k59ULac1ruoPYc6u05rbx/e55I/AOb0atfg4Jn8AAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="tsbtnExit.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEySURBVFhH7ZfhDYJADIVJCDoEQR3FUdyEURjFMeCfo2hL
|
||||
HviQEgo9//EljebZvqvlvIvZwUB7Pd+6qnh2l9M7FOKhXrD1I8XNzGx/NLD1Y5iEArZ+uHjPCNsyv7MH
|
||||
ZD+hYhDyCBWDrsxfvYe8QvKTooEQ/2hAvGr3fkrdwHimeM+FlA20VfFgP1cTXAAphPjU7LnaBCdDCiNe
|
||||
/iY4EZIJDhw19sXw0xxiqQlOgmTCeYGY3xWcAMmE83aHTAF2XzgBkgl2uD1uK4xHAKspnAQpjHhNr/il
|
||||
xRVOhBRCfPyLK5wMaTfWQYSPluECSCHGZ+9ZXEndgKKTwNt1/tHAJlI0sHnsTJIGIh5c7Lq/f9Aa9oDs
|
||||
Z3ZiBQO2fqQo3R8T+TKw9dOPUDZPgkk0emXD9mCFLPsAVd5Z/YQOzbIAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
25
LeatherProject/GeBoShi/UI/UIStyle.cs
Normal file
25
LeatherProject/GeBoShi/UI/UIStyle.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace GeBoShi.UI
|
||||
{
|
||||
public class UIStyle
|
||||
{
|
||||
public static void SetUIStyle(Form frm)
|
||||
{
|
||||
frm.BackColor = Color.FromArgb(8, 31, 120);
|
||||
frm.FormBorderStyle = FormBorderStyle.None;
|
||||
frm.StartPosition = FormStartPosition.CenterScreen;
|
||||
frm.Icon = Properties.Resources.Ge;
|
||||
frm.ShowIcon = true;
|
||||
//frm.ForeColor = Color.White;
|
||||
//frm.MouseMove += Main_MouseMove;
|
||||
//frm.MouseLeave += Main_Leave; // 有控件在边缘时,处理一下更好一些
|
||||
}
|
||||
}
|
||||
}
|
30592
LeatherProject/GeBoShi/bin/Debug/BouncyCastle.Crypto.xml
Normal file
30592
LeatherProject/GeBoShi/bin/Debug/BouncyCastle.Crypto.xml
Normal file
File diff suppressed because it is too large
Load Diff
6
LeatherProject/GeBoShi/bin/Debug/ConfigFiles/Login.ini
Normal file
6
LeatherProject/GeBoShi/bin/Debug/ConfigFiles/Login.ini
Normal file
@ -0,0 +1,6 @@
|
||||
#Login.ini
|
||||
[User]
|
||||
UserCode=admin
|
||||
UserPw=
|
||||
IsRememberUserCode=True
|
||||
IsRememberUserPw=True
|
@ -0,0 +1,54 @@
|
||||
#SysParamsConfig.ini
|
||||
[SaveAllImg]
|
||||
SaveAllImg=False
|
||||
[DefectSrcImag]
|
||||
SavePath=D:\Image\DefectSrcImag
|
||||
AutoSave=True
|
||||
AutoDelete=True
|
||||
AutoDeleteDays=3
|
||||
[DefectSmallImag]
|
||||
SavePath=D:\Image\DefectSmallImag
|
||||
AutoSave=True
|
||||
AutoDelete=True
|
||||
AutoDeleteDays=3
|
||||
[DefectSplicImag]
|
||||
SavePath=D:\Image\DefectSplicImag
|
||||
AutoSave=True
|
||||
AutoDelete=True
|
||||
AutoDeleteDays=3
|
||||
[Log]
|
||||
SavePath=E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\LogFiles
|
||||
AutoDelete=False
|
||||
AutoDeleteDays=0
|
||||
[SysFunction]
|
||||
OpenBuzzer=True
|
||||
OpenDoor=True
|
||||
[Dev]
|
||||
LightCom=
|
||||
LightComBaud=9600
|
||||
IODevName=
|
||||
IOCfgPath=E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ConfigFiles\IOCard_default.xml
|
||||
[Sys]
|
||||
AIModelPath=E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ConfigFiles\onnxFiles
|
||||
ProductPath=E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ConfigFiles\Project
|
||||
[ShowMainWin]
|
||||
ShowResetBtn=True
|
||||
ShowBuzz=False
|
||||
ShowDoorAlm=False
|
||||
[CloudAndMES]
|
||||
OpenCloud=False
|
||||
CloudThisName=Test
|
||||
CloudServerIP=127.0.0.1
|
||||
CloudServerPort=1883
|
||||
CloudUser=
|
||||
CloudPassword=
|
||||
OpenPdtServer=False
|
||||
PdtServerIP=127.0.0.1
|
||||
PdtServerPort=10573
|
||||
IsPdtServer=True
|
||||
[LabelPrint]
|
||||
EnableLabelPrint=False
|
||||
LabelPrinterName=
|
||||
[ExcelPrint]
|
||||
EnableExcelPrint=False
|
||||
ExcelPrinterName=
|
38
LeatherProject/GeBoShi/bin/Debug/GeBoShi.exe.config
Normal file
38
LeatherProject/GeBoShi/bin/Debug/GeBoShi.exe.config
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.0.102.0" newVersion="1.0.102.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
10465
LeatherProject/GeBoShi/bin/Debug/Google.Protobuf.xml
Normal file
10465
LeatherProject/GeBoShi/bin/Debug/Google.Protobuf.xml
Normal file
File diff suppressed because it is too large
Load Diff
15
LeatherProject/GeBoShi/bin/Debug/ImageBox.dll.config
Normal file
15
LeatherProject/GeBoShi/bin/Debug/ImageBox.dll.config
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="OpenCvSharp" publicKeyToken="6adad1e807fea099" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /></startup></configuration>
|
929
LeatherProject/GeBoShi/bin/Debug/ImageBox.xml
Normal file
929
LeatherProject/GeBoShi/bin/Debug/ImageBox.xml
Normal file
@ -0,0 +1,929 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>ImageBox</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="F:ImageToolKits.HPictureBox.components">
|
||||
<summary>
|
||||
必需的设计器变量。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.HPictureBox.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
清理所有正在使用的资源。
|
||||
</summary>
|
||||
<param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.HPictureBox.InitializeComponent">
|
||||
<summary>
|
||||
设计器支持所需的方法 - 不要
|
||||
使用代码编辑器修改此方法的内容。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox">
|
||||
<summary>
|
||||
自制控件
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.img2ClientInit">
|
||||
<summary>
|
||||
图像坐标与picturebox的工作区域之间在自适应或等比例缩放时计算出的初始变换矩阵
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.clientPoint">
|
||||
<summary>
|
||||
光标在PictureBox工作区域的坐标
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.sSize">
|
||||
<summary>
|
||||
表示画ROI时使用的尺寸(画点时十字大小的一半)或距离(点到直线、点到中心)的一半或小矩形的尺寸(标注角点)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.fillModeTransparent">
|
||||
<summary>
|
||||
填充模式下的透明度[0-255]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.brushWidth">
|
||||
<summary>
|
||||
画刷宽度
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.dLayers">
|
||||
<summary>
|
||||
绘制的图层集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.uvHxy">
|
||||
<summary>
|
||||
图像与实际物理坐标系之间的变换关系
|
||||
</summary>
|
||||
</member>
|
||||
<member name="E:ImageToolKits.ImageBox.DrawOverEventHandler">
|
||||
<summary>
|
||||
图像窗口交互绘制完成的事件
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.DrawStyle">
|
||||
<summary>
|
||||
获取或设置画图风格
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.ColorName">
|
||||
<summary>
|
||||
获取或设置区域或轮廓显示的颜色名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.IsColored">
|
||||
<summary>
|
||||
获取或设置多颜色显示区域或轮廓
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.LineWidth">
|
||||
<summary>
|
||||
获取或设置轮廓线的显示宽度
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.BackColor">
|
||||
<summary>
|
||||
获取或设置图像控件背景颜色
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.IsShowCenter">
|
||||
<summary>
|
||||
是否显示图像中心
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Image">
|
||||
<summary>
|
||||
当前窗口中的图像
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.DrawParam">
|
||||
<summary>
|
||||
获取最近一次所画图形
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.CursorModeEnum">
|
||||
<summary>
|
||||
光标模式
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.CursorModeEnum.Arrow">
|
||||
<summary>
|
||||
选择模式
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.CursorModeEnum.Hand">
|
||||
<summary>
|
||||
移动模式,可以拖拽图像
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.CursorModeEnum.Low">
|
||||
<summary>
|
||||
低配选点模式
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.CursorModeEnum.Point">
|
||||
<summary>
|
||||
高配选点模式
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.ImageModeEnum">
|
||||
<summary>
|
||||
图像显示方式枚举
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.ImageModeEnum.Stretch">
|
||||
<summary>
|
||||
图像被拉伸或收缩以适应图像窗口大小
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.ImageModeEnum.Zoom">
|
||||
<summary>
|
||||
图像大小按其原有的大小比例被增加或减小
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.ImageModeEnum.Part">
|
||||
<summary>
|
||||
图像按照原有显示区域显示,局部显示
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.DrawTypeEnum">
|
||||
<summary>
|
||||
画图形状枚举
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawTypeEnum.Point">
|
||||
<summary>
|
||||
点
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawTypeEnum.Line">
|
||||
<summary>
|
||||
直线
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawTypeEnum.Rectangle1">
|
||||
<summary>
|
||||
矩形1,与坐标轴平行的矩形
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawTypeEnum.Circle">
|
||||
<summary>
|
||||
圆
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawTypeEnum.Xld">
|
||||
<summary>
|
||||
任意形状的多边形
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawTypeEnum.Region">
|
||||
<summary>
|
||||
任意形状的区域
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawTypeEnum.Brush">
|
||||
<summary>
|
||||
画刷区域
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawTypeEnum.None">
|
||||
<summary>
|
||||
空状态
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.DrawStyleEnum">
|
||||
<summary>
|
||||
画图风格
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawStyleEnum.Margin">
|
||||
<summary>
|
||||
轮廓显示
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawStyleEnum.Fill">
|
||||
<summary>
|
||||
填充显示
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.DrawStatusEnum">
|
||||
<summary>
|
||||
绘制图形的状态枚举
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawStatusEnum.Start">
|
||||
<summary>
|
||||
开始绘制
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawStatusEnum.Drawing">
|
||||
<summary>
|
||||
正在绘制
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.DrawStatusEnum.Over">
|
||||
<summary>
|
||||
绘制完成
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.BaseDrawParam">
|
||||
<summary>
|
||||
图像坐标系下图形结构体参数基类
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.BaseDrawParam.DrawType">
|
||||
<summary>
|
||||
图形绘制类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.BaseDrawParam.SmallestRectangle1">
|
||||
<summary>
|
||||
读取图形的平行于坐标轴的最小外接矩形
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.BaseDrawParam.IsValid">
|
||||
<summary>
|
||||
绘制的图形是否有效
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.ColorDrawParam">
|
||||
<summary>
|
||||
区域+颜色类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.Point">
|
||||
<summary>
|
||||
点类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Point.Row">
|
||||
<summary>
|
||||
点行坐标
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Point.Column">
|
||||
<summary>
|
||||
点列坐标
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Point.DrawType">
|
||||
<summary>
|
||||
图形类型,其值为【Point】
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Point.SmallestRectangle1">
|
||||
<summary>
|
||||
点的平行于坐标轴的最小外界矩形(无效结果)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.Point.IsValid">
|
||||
<summary>
|
||||
图形是否有效
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.Line">
|
||||
<summary>
|
||||
线类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Line.Start">
|
||||
<summary>
|
||||
线段的起点坐标
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Line.End">
|
||||
<summary>
|
||||
线段的终点坐标
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Line.DrawType">
|
||||
<summary>
|
||||
图形类型,其值为【Line】
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Line.SmallestRectangle1">
|
||||
<summary>
|
||||
线的平行于坐标轴的最小外界矩形(无效结果)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.Line.IsValid">
|
||||
<summary>
|
||||
图形是否有效
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.Rectangle1">
|
||||
<summary>
|
||||
平行于坐标轴的矩形类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Rectangle1.LeftUp">
|
||||
<summary>
|
||||
矩形左上角顶点坐标
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Rectangle1.RightDown">
|
||||
<summary>
|
||||
矩形右下角顶点坐标
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Rectangle1.Width">
|
||||
<summary>
|
||||
矩形宽
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Rectangle1.Height">
|
||||
<summary>
|
||||
矩形高
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Rectangle1.DrawType">
|
||||
<summary>
|
||||
图形类型,其值为【Rectangle1】
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Rectangle1.SmallestRectangle1">
|
||||
<summary>
|
||||
矩形的平行于坐标轴的最小外界矩形
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.Rectangle1.IsValid">
|
||||
<summary>
|
||||
图形是否有效
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.Circle">
|
||||
<summary>
|
||||
圆类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Circle.Center">
|
||||
<summary>
|
||||
圆心点坐标
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Circle.Radius">
|
||||
<summary>
|
||||
圆半径
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Circle.DrawType">
|
||||
<summary>
|
||||
图形类型,其值为【Circle】
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Circle.SmallestRectangle1">
|
||||
<summary>
|
||||
圆的平行于坐标轴的最小外界矩形
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.Circle.IsValid">
|
||||
<summary>
|
||||
图形是否有效
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.Xld">
|
||||
<summary>
|
||||
多边形类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Xld.Corners">
|
||||
<summary>
|
||||
多边形角点坐标集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Xld.DrawType">
|
||||
<summary>
|
||||
图形类型,其值为【Xld】
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Xld.SmallestRectangle1">
|
||||
<summary>
|
||||
多边形的平行于坐标轴的最小外界矩形
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.Xld.IsValid">
|
||||
<summary>
|
||||
图形是否有效
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.Region">
|
||||
<summary>
|
||||
区域类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Region.Points">
|
||||
<summary>
|
||||
区域轮廓点的集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Region.DrawType">
|
||||
<summary>
|
||||
图形类型,其值为【Region】
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Region.SmallestRectangle1">
|
||||
<summary>
|
||||
任意区域的平行于坐标轴的最小外界矩形
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.Region.IsValid">
|
||||
<summary>
|
||||
图形是否有效
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.ImageBox.Brush">
|
||||
<summary>
|
||||
画刷区域类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Brush.Regions">
|
||||
<summary>
|
||||
区域轮廓点的集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Brush.DrawType">
|
||||
<summary>
|
||||
图形类型,其值为【Region】
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.ImageBox.Brush.SmallestRectangle1">
|
||||
<summary>
|
||||
画刷区域的平行于坐标轴的最小外界矩形
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.Brush.IsValid">
|
||||
<summary>
|
||||
图形是否有效
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.InitImage2ClientMatrix">
|
||||
<summary>
|
||||
图像到初始化图像控件的变换矩阵
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetImageRectangle(System.Windows.Forms.PictureBox)">
|
||||
<summary>
|
||||
获取图像在控件上Client区域
|
||||
</summary>
|
||||
<param name="picBox"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.ShowCenter">
|
||||
<summary>
|
||||
显示中心,有图像时显示的是图像的中心,否则显示图像窗口的中心
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.AddROI2GraphicsPath(System.Drawing.Drawing2D.GraphicsPath,System.Drawing.Drawing2D.GraphicsPath,System.Collections.Generic.Dictionary{System.Int32,ImageToolKits.ImageBox.DrawPoint},ImageToolKits.ImageBox.DrawTypeEnum,System.Boolean)">
|
||||
<summary>
|
||||
根据drawPoints绘制ROI,添加到GraphicsPath中
|
||||
</summary>
|
||||
<param name="gpROI">ROI图形路径</param>
|
||||
<param name="gpInteractive">交互图形路径</param>
|
||||
<param name="drawPoints">轮廓点集合</param>
|
||||
<param name="drawType">图形类型</param>
|
||||
<param name="isDrawing">是否是交互绘制</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.AddROI2GraphicsPath(System.Drawing.Drawing2D.GraphicsPath,System.Drawing.Drawing2D.GraphicsPath,ImageToolKits.ImageBox.BaseDrawParam)">
|
||||
<summary>
|
||||
根据drawParam绘制ROI,添加到GraphicsPath中
|
||||
</summary>
|
||||
<param name="gpROI">ROI图形路径</param>
|
||||
<param name="gpInteractive">交互图形路径</param>
|
||||
<param name="baseDrawPrm">ROI</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.DrawROIByGraphicsPath(System.Drawing.Graphics,System.Drawing.Drawing2D.GraphicsPath,System.Drawing.Drawing2D.GraphicsPath)">
|
||||
<summary>
|
||||
根据绘图路径绘制ROI
|
||||
</summary>
|
||||
<param name="g"></param>
|
||||
<param name="gpROI">ROI图形路径</param>
|
||||
<param name="gpInteractive">交互图形路径</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.DrawROIByGraphicsPath(System.Drawing.Graphics,System.Drawing.Drawing2D.GraphicsPath,System.Drawing.Drawing2D.GraphicsPath,System.Drawing.Color)">
|
||||
<summary>
|
||||
根据绘图路径绘制ROI
|
||||
</summary>
|
||||
<param name="g"></param>
|
||||
<param name="gpROI">ROI图形路径</param>
|
||||
<param name="gpInteractive">交互图形路径</param>
|
||||
<param name="color">颜色</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetInsideIndex(System.Drawing.PointF)">
|
||||
<summary>
|
||||
计算某个点是否在某些点内部
|
||||
</summary>
|
||||
<param name="point"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.InsertXldCornerPoints(ImageToolKits.ImageBox.DrawPoint,System.Int32@,System.Collections.Generic.Dictionary{System.Int32,ImageToolKits.ImageBox.DrawPoint}@)">
|
||||
<summary>
|
||||
在画xld时,判断是否将新增点插入某两个点中间
|
||||
前提是新增点不在原有角点附近
|
||||
</summary>
|
||||
<param name="point"></param>
|
||||
<param name="insideIndex">更新后该点在点集合中的索引位置</param>
|
||||
<param name="dDrawPoint"></param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetImageCoord(System.Drawing.PointF)">
|
||||
<summary>
|
||||
获取鼠标指针在图像中的坐标
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetClientCoord(ImageToolKits.ImageBox.Point)">
|
||||
<summary>
|
||||
获取图形点位在控件工作区域内坐标
|
||||
</summary>
|
||||
<param name="imagePoint"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.TransToDrawParam(System.Collections.Generic.Dictionary{System.Int32,ImageToolKits.ImageBox.DrawPoint},ImageToolKits.ImageBox.DrawTypeEnum)">
|
||||
<summary>
|
||||
将控件坐标转换成图像坐标
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.TransFromDrawParam(ImageToolKits.ImageBox.BaseDrawParam,System.Boolean)">
|
||||
<summary>
|
||||
将图形坐标转换成控件坐标
|
||||
</summary>
|
||||
<param name="drawPrm"></param>
|
||||
<param name="cvt2client"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.Get2DGrayval(OpenCvSharp.Mat,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
获取图像灰度信息
|
||||
</summary>
|
||||
<param name="image"></param>
|
||||
<param name="row"></param>
|
||||
<param name="column"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetCirclePointsF(ImageToolKits.ImageBox.Circle,System.Single,System.Single,System.Single)">
|
||||
<summary>
|
||||
获取圆上离散点坐标
|
||||
</summary>
|
||||
<param name="circle">圆</param>
|
||||
<param name="angleStart">起始角度,单位:°</param>
|
||||
<param name="angleExtent">角度范围,单位:°</param>
|
||||
<param name="angleStep">离散点获取的步长,单位:°</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetCirclePoints(ImageToolKits.ImageBox.Circle,System.Single,System.Single,System.Single)">
|
||||
<summary>
|
||||
获取圆上离散点坐标
|
||||
</summary>
|
||||
<param name="circle">圆</param>
|
||||
<param name="angleStart">起始角度,单位:°</param>
|
||||
<param name="angleExtent">角度范围,单位:°</param>
|
||||
<param name="angleStep">离散点获取的步长,单位:°</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetCirclePointsFExt(ImageToolKits.ImageBox.Circle,System.Single,System.Single,System.Single)">
|
||||
<summary>
|
||||
获取圆上离散点坐标
|
||||
</summary>
|
||||
<param name="circle">圆</param>
|
||||
<param name="angleStart">起始角度,单位:°</param>
|
||||
<param name="angleExtent">角度范围,单位:°</param>
|
||||
<param name="angleStep">离散点获取的步长,单位:°</param>
|
||||
<returns>Point类型</returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetLineAngle(System.Drawing.PointF,System.Drawing.PointF,System.Boolean)">
|
||||
<summary>
|
||||
计算线段角度(起点到终点方向),单位:°
|
||||
</summary>
|
||||
<param name="start">线段起点</param>
|
||||
<param name="end">线段终点</param>
|
||||
<param name="isNormalized">默认角度范围是[-180,180],归一化之后为[-90,90]</param>
|
||||
<returns>返回线段角度,单位:°</returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetBrushEdgePointsBySkelton(System.Collections.Generic.Dictionary{System.Int32,ImageToolKits.ImageBox.DrawPoint})">
|
||||
<summary>
|
||||
根据骨架线计算包围轮廓线
|
||||
</summary>
|
||||
<param name="drawPoints"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetMeanPoint(ImageToolKits.ImageBox.Point,ImageToolKits.ImageBox.Point)">
|
||||
<summary>
|
||||
计算两点中点(迭代计算任意两点间被N等分点)
|
||||
</summary>
|
||||
<param name="start"></param>
|
||||
<param name="end"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetRegionPoints1(ImageToolKits.ImageBox.BaseDrawParam)">
|
||||
<summary>
|
||||
获取区域包含的点坐标
|
||||
</summary>
|
||||
<param name="baseDrawPrm"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetRegionPolygon(ImageToolKits.ImageBox.BaseDrawParam)">
|
||||
<summary>
|
||||
获取轮廓占据的像素点(包含像素去重)
|
||||
</summary>
|
||||
<param name="baseDrawParam"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetRegionRuns(System.Collections.Generic.List{ImageToolKits.ImageBox.Point})">
|
||||
<summary>
|
||||
获取区域Runs,默认输入的点已经去重处理
|
||||
</summary>
|
||||
<param name="points"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.Dispose">
|
||||
<summary>
|
||||
释放控件占用的所有资源
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.SetStripVisible(System.Boolean)">
|
||||
<summary>
|
||||
设置右键菜单栏中选项是否可见
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.SetIconsVisible(System.Boolean)">
|
||||
<summary>
|
||||
设置左侧交互按钮是否可见
|
||||
</summary>
|
||||
<param name="isVisible"></param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.SetStatusVisible(System.Boolean)">
|
||||
<summary>
|
||||
设置底部图像信息栏是否可见
|
||||
</summary>
|
||||
<param name="isVisible"></param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.SetInteractive(System.Boolean)">
|
||||
<summary>
|
||||
设置图像窗口是否激活,
|
||||
显示图像和区域之前不需要激活图像控件
|
||||
显示图像和区域之后需要激活图像控件
|
||||
</summary>
|
||||
<param name="isActive"></param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.ClearWindow">
|
||||
<summary>
|
||||
清除图像窗口,图像数据并未清除
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.ReadImage(System.String,OpenCvSharp.Mat@)">
|
||||
<summary>
|
||||
加载图像
|
||||
</summary>
|
||||
<param name="fileName">图像路径,需要是英文路径</param>
|
||||
<param name="image">图像Mat</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.WriteImage(System.String,OpenCvSharp.Mat)">
|
||||
<summary>
|
||||
保存图像
|
||||
</summary>
|
||||
<param name="fileName">图像路径,需要时英文路径</param>
|
||||
<param name="image">图像Mat</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.WriteWindowDumpImage(System.String,System.Drawing.Size)">
|
||||
<summary>
|
||||
截图当前窗口
|
||||
</summary>
|
||||
<param name="fileName"></param>
|
||||
<param name="size"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.WriteWindowDumpImage(System.String,OpenCvSharp.Mat,System.Collections.Generic.List{ImageToolKits.ImageBox.BaseDrawParam},System.Drawing.Size)">
|
||||
<summary>
|
||||
将区域信息绘制在图像上保存
|
||||
</summary>
|
||||
<param name="fileName"></param>
|
||||
<param name="image"></param>
|
||||
<param name="region"></param>
|
||||
<param name="size"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.RefreshWindow(OpenCvSharp.Mat,System.Collections.Generic.List{ImageToolKits.ImageBox.BaseDrawParam},ImageToolKits.ImageBox.ImageModeEnum)">
|
||||
<summary>
|
||||
显示图像与区域
|
||||
</summary>
|
||||
<param name="image">图像</param>
|
||||
<param name="region">一个或多个区域</param>
|
||||
<param name="imageMode">图像显示方式,见枚举ImageModeEnum</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.RefreshWindow(OpenCvSharp.Mat,System.Collections.Generic.List{ImageToolKits.ImageBox.ColorDrawParam},ImageToolKits.ImageBox.ImageModeEnum)">
|
||||
<summary>
|
||||
显示图像与区域
|
||||
</summary>
|
||||
<param name="image">图像</param>
|
||||
<param name="colorRegion">一个或多个不同颜色区域</param>
|
||||
<param name="imageMode">图像显示方式,见枚举ImageModeEnum</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.RefreshWindow(OpenCvSharp.Mat,ImageToolKits.ImageBox.BaseDrawParam,ImageToolKits.ImageBox.ImageModeEnum)">
|
||||
<summary>
|
||||
显示图像与区域
|
||||
</summary>
|
||||
<param name="image">图像</param>
|
||||
<param name="region">一个区域</param>
|
||||
<param name="imageMode">图像显示方式,见枚举ImageModeEnum</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.RefreshWindow(OpenCvSharp.Mat,ImageToolKits.ImageBox.ImageModeEnum)">
|
||||
<summary>
|
||||
显示图像与区域
|
||||
</summary>
|
||||
<param name="image">图像</param>
|
||||
<param name="imageMode">图像显示方式,见枚举ImageModeEnum</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.DisplayROIs(System.Collections.Generic.List{ImageToolKits.ImageBox.BaseDrawParam})">
|
||||
<summary>
|
||||
显示多个区域
|
||||
</summary>
|
||||
<param name="lDrawParam">多个区域</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.DisplayROIs(System.Collections.Generic.List{ImageToolKits.ImageBox.ColorDrawParam})">
|
||||
<summary>
|
||||
显示多个区域分色
|
||||
</summary>
|
||||
<param name="lDrawParam">多个区域</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.DisplayROI(ImageToolKits.ImageBox.BaseDrawParam)">
|
||||
<summary>
|
||||
显示一个区域
|
||||
</summary>
|
||||
<param name="drawParam">一个区域</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetPart(ImageToolKits.ImageBox.Rectangle1@)">
|
||||
<summary>
|
||||
获取当前图像显示的局部位置
|
||||
</summary>
|
||||
<param name="rectangle">图像局部范围</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.SetPart(ImageToolKits.ImageBox.Rectangle1)">
|
||||
<summary>
|
||||
设置图像显示的局部位置
|
||||
</summary>
|
||||
<param name="rectangle">图像局部范围</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.SmallestRectangle1(System.Collections.Generic.List{ImageToolKits.ImageBox.BaseDrawParam})">
|
||||
<summary>
|
||||
计算ROI集合的平行于坐标轴的最小外接矩形
|
||||
</summary>
|
||||
<param name="lDrawPrm"></param>
|
||||
<returns>平行于坐标轴的最小外接矩形</returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.GetRegionPoints(ImageToolKits.ImageBox.BaseDrawParam)">
|
||||
<summary>
|
||||
获取区域包含的点坐标
|
||||
</summary>
|
||||
<param name="baseDrawPrm"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.SetLowLevelMode(System.Int32)">
|
||||
<summary>
|
||||
特色功能低配置版,只能放大缩小,移动,取点
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.ImageBox.components">
|
||||
<summary>
|
||||
必需的设计器变量。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
清理所有正在使用的资源。
|
||||
</summary>
|
||||
<param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.ImageBox.InitializeComponent">
|
||||
<summary>
|
||||
设计器支持所需的方法 - 不要
|
||||
使用代码编辑器修改此方法的内容。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.Layer">
|
||||
<summary>
|
||||
图层
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:ImageToolKits.Layer.uvHxy">
|
||||
<summary>
|
||||
图像与实际物理坐标系之间的变换关系
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.Layer.CurPosize">
|
||||
<summary>
|
||||
获取图形当前位姿与尺寸信息
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.Layer.Name">
|
||||
<summary>
|
||||
图层ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.Layer.Image">
|
||||
<summary>
|
||||
图层需要显示的对象
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.Layer.IsActive">
|
||||
<summary>
|
||||
图层对象是否激活
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.Layer.DrawPoints">
|
||||
<summary>
|
||||
代表图形变换后需要绘制的区域的点,单位像素,长度为4
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.Layer.TrackPoints">
|
||||
<summary>
|
||||
突出显示当前图形的顶点坐标,单位像素,长度为4
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.Layer.#ctor(OpenCvSharp.Mat,System.String,ImageToolKits.PoseSize,System.Drawing.Drawing2D.Matrix)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="image">cv mat</param>
|
||||
<param name="name">图层名称</param>
|
||||
<param name="srcPosize">图形原始位姿和尺寸信息</param>
|
||||
<param name="uvHxy">图像与实际物理坐标系之间的变换关系</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.Layer.#ctor(System.Drawing.Bitmap,System.String,ImageToolKits.PoseSize,System.Drawing.Drawing2D.Matrix)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="image">bitmap image</param>
|
||||
<param name="name">图层名称</param>
|
||||
<param name="srcPosize">图形原始位姿和尺寸信息</param>
|
||||
<param name="uvHxy">图像与实际物理坐标系之间的变换关系</param>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.Layer.Trans2Transparent">
|
||||
<summary>
|
||||
将ezcad四通道图形转成透明图形
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:ImageToolKits.Layer.GraphTransform(ImageToolKits.PoseSize,System.Boolean)">
|
||||
<summary>
|
||||
图形变换
|
||||
</summary>
|
||||
<param name="posize">图形位姿和尺寸信息</param>
|
||||
<param name="isRotation">是否旋转图形,true只旋转图形,false缩放和平移图形</param>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.PoseSize">
|
||||
<summary>
|
||||
图形的位姿和尺寸类
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.PoseSize.X">
|
||||
<summary>
|
||||
图形位置X,单位mm
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.PoseSize.Y">
|
||||
<summary>
|
||||
图形位置Y,单位mm
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.PoseSize.Angle">
|
||||
<summary>
|
||||
图形角度,单位角度
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.PoseSize.Size">
|
||||
<summary>
|
||||
图形尺寸,单位mm
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ImageToolKits.Properties.Resources">
|
||||
<summary>
|
||||
一个强类型的资源类,用于查找本地化的字符串等。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.Properties.Resources.ResourceManager">
|
||||
<summary>
|
||||
返回此类使用的缓存的 ResourceManager 实例。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ImageToolKits.Properties.Resources.Culture">
|
||||
<summary>
|
||||
重写当前线程的 CurrentUICulture 属性,对
|
||||
使用此强类型资源类的所有资源查找执行重写。
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
1630
LeatherProject/GeBoShi/bin/Debug/K4os.Compression.LZ4.Streams.xml
Normal file
1630
LeatherProject/GeBoShi/bin/Debug/K4os.Compression.LZ4.Streams.xml
Normal file
File diff suppressed because it is too large
Load Diff
1211
LeatherProject/GeBoShi/bin/Debug/K4os.Compression.LZ4.xml
Normal file
1211
LeatherProject/GeBoShi/bin/Debug/K4os.Compression.LZ4.xml
Normal file
File diff suppressed because it is too large
Load Diff
245
LeatherProject/GeBoShi/bin/Debug/K4os.Hash.xxHash.xml
Normal file
245
LeatherProject/GeBoShi/bin/Debug/K4os.Hash.xxHash.xml
Normal file
@ -0,0 +1,245 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>K4os.Hash.xxHash</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:K4os.Hash.xxHash.HashAlgorithmAdapter">
|
||||
<summary>
|
||||
Adapter implementing <see cref="T:System.Security.Cryptography.HashAlgorithm"/>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.#ctor(System.Int32,System.Action,System.Action{System.Byte[],System.Int32,System.Int32},System.Func{System.Byte[]})">
|
||||
<summary>
|
||||
Creates new <see cref="T:K4os.Hash.xxHash.HashAlgorithmAdapter"/>.
|
||||
</summary>
|
||||
<param name="hashSize">Hash size (in bytes)</param>
|
||||
<param name="reset">Reset function.</param>
|
||||
<param name="update">Update function.</param>
|
||||
<param name="digest">Digest function.</param>
|
||||
</member>
|
||||
<member name="P:K4os.Hash.xxHash.HashAlgorithmAdapter.HashSize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:K4os.Hash.xxHash.HashAlgorithmAdapter.Hash">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.HashCore(System.Byte[],System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.HashFinal">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.Initialize">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:K4os.Hash.xxHash.XXH">
|
||||
<summary>
|
||||
Base class for both <see cref="T:K4os.Hash.xxHash.XXH32"/> and <see cref="T:K4os.Hash.xxHash.XXH64"/>. Do not use directly.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH.#ctor">
|
||||
<summary>Protected constructor to prevent instantiation.</summary>
|
||||
</member>
|
||||
<member name="T:K4os.Hash.xxHash.XXH32">
|
||||
<summary>
|
||||
xxHash 32-bit.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:K4os.Hash.xxHash.XXH32.State">
|
||||
<summary>Internal state of the algorithm.</summary>
|
||||
</member>
|
||||
<member name="F:K4os.Hash.xxHash.XXH32.EmptyHash">
|
||||
<summary>Hash of empty buffer.</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Void*,System.Int32)">
|
||||
<summary>Hash of provided buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
<returns>Digest.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Void*,System.Int32,System.UInt32)">
|
||||
<summary>Hash of provided buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
<param name="seed">Seed.</param>
|
||||
<returns>Digest.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.ReadOnlySpan{System.Byte})">
|
||||
<summary>Hash of provided buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<returns>Digest.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Byte[],System.Int32,System.Int32)">
|
||||
<summary>Hash of provided buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="offset">Starting offset.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
<returns>Digest.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.#ctor">
|
||||
<summary>Creates xxHash instance.</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.#ctor(System.UInt32)">
|
||||
<summary>Creates xxHash instance.</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.Reset">
|
||||
<summary>Resets hash calculation.</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.Reset(System.UInt32)">
|
||||
<summary>Resets hash calculation.</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Void*,System.Int32)">
|
||||
<summary>Updates the hash using given buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Byte*,System.Int32)">
|
||||
<summary>Updates the hash using given buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.ReadOnlySpan{System.Byte})">
|
||||
<summary>Updates the has using given buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Byte[],System.Int32,System.Int32)">
|
||||
<summary>Updates the has using given buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="offset">Starting offset.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.Digest">
|
||||
<summary>Hash so far.</summary>
|
||||
<returns>Hash so far.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.DigestBytes">
|
||||
<summary>Hash so far, as byte array.</summary>
|
||||
<returns>Hash so far.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.AsHashAlgorithm">
|
||||
<summary>Converts this class to <see cref="T:System.Security.Cryptography.HashAlgorithm"/></summary>
|
||||
<returns><see cref="T:System.Security.Cryptography.HashAlgorithm"/></returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.Reset(K4os.Hash.xxHash.XXH32.State@,System.UInt32)">
|
||||
<summary>Resets hash calculation.</summary>
|
||||
<param name="state">Hash state.</param>
|
||||
<param name="seed">Hash seed.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.Update(K4os.Hash.xxHash.XXH32.State@,System.Void*,System.Int32)">
|
||||
<summary>Updates the has using given buffer.</summary>
|
||||
<param name="state">Hash state.</param>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.Update(K4os.Hash.xxHash.XXH32.State@,System.ReadOnlySpan{System.Byte})">
|
||||
<summary>Updates the has using given buffer.</summary>
|
||||
<param name="state">Hash state.</param>
|
||||
<param name="bytes">Buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH32.Digest(K4os.Hash.xxHash.XXH32.State@)">
|
||||
<summary>Hash so far.</summary>
|
||||
<returns>Hash so far.</returns>
|
||||
</member>
|
||||
<member name="T:K4os.Hash.xxHash.XXH64">
|
||||
<summary>
|
||||
xxHash 64-bit.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:K4os.Hash.xxHash.XXH64.State">
|
||||
<summary>Internal state of the algorithm.</summary>
|
||||
</member>
|
||||
<member name="F:K4os.Hash.xxHash.XXH64.EmptyHash">
|
||||
<summary>Hash of empty buffer.</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Void*,System.Int32)">
|
||||
<summary>Hash of provided buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
<returns>Digest.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Void*,System.Int32,System.UInt64)">
|
||||
<summary>Hash of provided buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
<param name="seed">Seed.</param>
|
||||
<returns>Digest.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.ReadOnlySpan{System.Byte})">
|
||||
<summary>Hash of provided buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<returns>Digest.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Byte[],System.Int32,System.Int32)">
|
||||
<summary>Hash of provided buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="offset">Starting offset.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
<returns>Digest.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.#ctor">
|
||||
<summary>Creates xxHash instance.</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.#ctor(System.UInt64)">
|
||||
<summary>Creates xxHash instance.</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.Reset">
|
||||
<summary>Resets hash calculation.</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.Reset(System.UInt64)">
|
||||
<summary>Resets hash calculation.</summary>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Void*,System.Int32)">
|
||||
<summary>Updates the hash using given buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Byte*,System.Int32)">
|
||||
<summary>Updates the hash using given buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.ReadOnlySpan{System.Byte})">
|
||||
<summary>Updates the has using given buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Byte[],System.Int32,System.Int32)">
|
||||
<summary>Updates the has using given buffer.</summary>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="offset">Starting offset.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.Digest">
|
||||
<summary>Hash so far.</summary>
|
||||
<returns>Hash so far.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.DigestBytes">
|
||||
<summary>Hash so far, as byte array.</summary>
|
||||
<returns>Hash so far.</returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.AsHashAlgorithm">
|
||||
<summary>Converts this class to <see cref="T:System.Security.Cryptography.HashAlgorithm"/></summary>
|
||||
<returns><see cref="T:System.Security.Cryptography.HashAlgorithm"/></returns>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.Reset(K4os.Hash.xxHash.XXH64.State@,System.UInt64)">
|
||||
<summary>Resets hash calculation.</summary>
|
||||
<param name="state">Hash state.</param>
|
||||
<param name="seed">Hash seed.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.Update(K4os.Hash.xxHash.XXH64.State@,System.Void*,System.Int32)">
|
||||
<summary>Updates the has using given buffer.</summary>
|
||||
<param name="state">Hash state.</param>
|
||||
<param name="bytes">Buffer.</param>
|
||||
<param name="length">Length of buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.Update(K4os.Hash.xxHash.XXH64.State@,System.ReadOnlySpan{System.Byte})">
|
||||
<summary>Updates the has using given buffer.</summary>
|
||||
<param name="state">Hash state.</param>
|
||||
<param name="bytes">Buffer.</param>
|
||||
</member>
|
||||
<member name="M:K4os.Hash.xxHash.XXH64.Digest(K4os.Hash.xxHash.XXH64.State@)">
|
||||
<summary>Hash so far.</summary>
|
||||
<returns>Hash so far.</returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
1732
LeatherProject/GeBoShi/bin/Debug/MQTTnet.xml
Normal file
1732
LeatherProject/GeBoShi/bin/Debug/MQTTnet.xml
Normal file
File diff suppressed because it is too large
Load Diff
34
LeatherProject/GeBoShi/bin/Debug/MaiMuControl.dll.config
Normal file
34
LeatherProject/GeBoShi/bin/Debug/MaiMuControl.dll.config
Normal file
@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="halcondotnet" publicKeyToken="4973bed59ddbf2b8" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.0.90.0" newVersion="1.0.90.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
File diff suppressed because it is too large
Load Diff
11363
LeatherProject/GeBoShi/bin/Debug/Newtonsoft.Json.xml
Normal file
11363
LeatherProject/GeBoShi/bin/Debug/Newtonsoft.Json.xml
Normal file
File diff suppressed because it is too large
Load Diff
148
LeatherProject/GeBoShi/bin/Debug/OpenCvSharp.Extensions.xml
Normal file
148
LeatherProject/GeBoShi/bin/Debug/OpenCvSharp.Extensions.xml
Normal file
@ -0,0 +1,148 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>OpenCvSharp.Extensions</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:OpenCvSharp.Extensions.Binarizer">
|
||||
<summary>
|
||||
Various binarization methods (ATTENTION : The methods of this class is not implemented in OpenCV)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenCvSharp.Extensions.Binarizer.Niblack(OpenCvSharp.Mat,OpenCvSharp.Mat,System.Int32,System.Double)">
|
||||
<summary>
|
||||
Binarizes by Niblack's method (This is faster but memory-hogging)
|
||||
</summary>
|
||||
<param name="src">Input image</param>
|
||||
<param name="dst">Output image</param>
|
||||
<param name="kernelSize">Window size</param>
|
||||
<param name="k">Adequate coefficient</param>
|
||||
</member>
|
||||
<member name="M:OpenCvSharp.Extensions.Binarizer.Sauvola(OpenCvSharp.Mat,OpenCvSharp.Mat,System.Int32,System.Double,System.Double)">
|
||||
<summary>
|
||||
Binarizes by Sauvola's method (This is faster but memory-hogging)
|
||||
</summary>
|
||||
<param name="src">Input image</param>
|
||||
<param name="dst">Output image</param>
|
||||
<param name="kernelSize">Window size</param>
|
||||
<param name="k">Adequate coefficient</param>
|
||||
<param name="r">Adequate coefficient</param>
|
||||
</member>
|
||||
<member name="M:OpenCvSharp.Extensions.Binarizer.Bernsen(OpenCvSharp.Mat,OpenCvSharp.Mat,System.Int32,System.Byte,System.Byte)">
|
||||
<summary>
|
||||
Binarizes by Bernsen's method
|
||||
</summary>
|
||||
<param name="src">Input image</param>
|
||||
<param name="dst">Output image</param>
|
||||
<param name="kernelSize">Window size</param>
|
||||
<param name="constrastMin">Adequate coefficient</param>
|
||||
<param name="bgThreshold">Adequate coefficient</param>
|
||||
</member>
|
||||
<member name="M:OpenCvSharp.Extensions.Binarizer.Nick(OpenCvSharp.Mat,OpenCvSharp.Mat,System.Int32,System.Double)">
|
||||
<summary>
|
||||
Binarizes by Nick's method
|
||||
</summary>
|
||||
<param name="src">Input image</param>
|
||||
<param name="dst">Output image</param>
|
||||
<param name="kernelSize">Window size</param>
|
||||
<param name="k">Adequate coefficient</param>
|
||||
</member>
|
||||
<member name="M:OpenCvSharp.Extensions.Binarizer.MinMax(OpenCvSharp.Mat,System.Int32,System.Int32,System.Int32,System.Byte@,System.Byte@)">
|
||||
<summary>
|
||||
注目画素の周辺画素の最大値と最小値を求める
|
||||
</summary>
|
||||
<param name="img">画像の画素データ</param>
|
||||
<param name="x">x座標</param>
|
||||
<param name="y">y座標</param>
|
||||
<param name="size">周辺画素の探索サイズ。奇数でなければならない</param>
|
||||
<param name="min">出力される最小値</param>
|
||||
<param name="max">出力される最大値</param>
|
||||
</member>
|
||||
<member name="T:OpenCvSharp.Extensions.BitmapConverter">
|
||||
<summary>
|
||||
static class which provides conversion between System.Drawing.Bitmap and Mat
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenCvSharp.Extensions.BitmapConverter.ToMat(System.Drawing.Bitmap)">
|
||||
<summary>
|
||||
Converts System.Drawing.Bitmap to Mat
|
||||
</summary>
|
||||
<param name="src">System.Drawing.Bitmap object to be converted</param>
|
||||
<returns>A Mat object which is converted from System.Drawing.Bitmap</returns>
|
||||
</member>
|
||||
<member name="M:OpenCvSharp.Extensions.BitmapConverter.ToMat(System.Drawing.Bitmap,OpenCvSharp.Mat)">
|
||||
<summary>
|
||||
Converts System.Drawing.Bitmap to Mat
|
||||
</summary>
|
||||
<param name="src">System.Drawing.Bitmap object to be converted</param>
|
||||
<param name="dst">A Mat object which is converted from System.Drawing.Bitmap</param>
|
||||
</member>
|
||||
<member name="M:OpenCvSharp.Extensions.BitmapConverter.ToBitmap(OpenCvSharp.Mat)">
|
||||
<summary>
|
||||
Converts Mat to System.Drawing.Bitmap
|
||||
</summary>
|
||||
<param name="src">Mat</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:OpenCvSharp.Extensions.BitmapConverter.ToBitmap(OpenCvSharp.Mat,System.Drawing.Imaging.PixelFormat)">
|
||||
<summary>
|
||||
Converts Mat to System.Drawing.Bitmap
|
||||
</summary>
|
||||
<param name="src">Mat</param>
|
||||
<param name="pf">Pixel Depth</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:OpenCvSharp.Extensions.BitmapConverter.ToBitmap(OpenCvSharp.Mat,System.Drawing.Bitmap)">
|
||||
<summary>
|
||||
Converts Mat to System.Drawing.Bitmap
|
||||
</summary>
|
||||
<param name="src">Mat</param>
|
||||
<param name="dst">Mat</param>
|
||||
<remarks>Author: shimat, Gummo (ROI support)</remarks>
|
||||
</member>
|
||||
<member name="T:OpenCvSharp.Extensions.CvExtensions">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenCvSharp.Extensions.CvExtensions.HoughLinesProbabilisticEx(OpenCvSharp.Mat,System.Double,System.Double,System.Int32,System.Double,System.Double,System.Double,System.Double)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="img"></param>
|
||||
<param name="rho"></param>
|
||||
<param name="theta"></param>
|
||||
<param name="threshold"></param>
|
||||
<param name="minLineLength"></param>
|
||||
<param name="maxLineGap"></param>
|
||||
<param name="thetaMin"></param>
|
||||
<param name="thetaMax"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:OpenCvSharp.Extensions.OS">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenCvSharp.Extensions.Runtime">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenCvSharp.Extensions.Platform">
|
||||
<summary>
|
||||
Provides information for the platform which the user is using
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:OpenCvSharp.Extensions.Platform.OS">
|
||||
<summary>
|
||||
OS type
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:OpenCvSharp.Extensions.Platform.Runtime">
|
||||
<summary>
|
||||
Runtime type
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
39243
LeatherProject/GeBoShi/bin/Debug/OpenCvSharp.xml
Normal file
39243
LeatherProject/GeBoShi/bin/Debug/OpenCvSharp.xml
Normal file
File diff suppressed because it is too large
Load Diff
1853
LeatherProject/GeBoShi/bin/Debug/S7.Net.xml
Normal file
1853
LeatherProject/GeBoShi/bin/Debug/S7.Net.xml
Normal file
File diff suppressed because it is too large
Load Diff
23
LeatherProject/GeBoShi/bin/Debug/Service.dll.config
Normal file
23
LeatherProject/GeBoShi/bin/Debug/Service.dll.config
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="MySqlConnector" publicKeyToken="d33d3e53aa5f8c92" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.31.0" newVersion="8.0.31.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
38
LeatherProject/GeBoShi/bin/Debug/System.Buffers.xml
Normal file
38
LeatherProject/GeBoShi/bin/Debug/System.Buffers.xml
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><doc>
|
||||
<assembly>
|
||||
<name>System.Buffers</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.Buffers.ArrayPool`1">
|
||||
<summary>Provides a resource pool that enables reusing instances of type <see cref="T[]"></see>.</summary>
|
||||
<typeparam name="T">The type of the objects that are in the resource pool.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Buffers.ArrayPool`1.#ctor">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
|
||||
</member>
|
||||
<member name="M:System.Buffers.ArrayPool`1.Create">
|
||||
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
|
||||
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class.</returns>
|
||||
</member>
|
||||
<member name="M:System.Buffers.ArrayPool`1.Create(System.Int32,System.Int32)">
|
||||
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class using the specifed configuration.</summary>
|
||||
<param name="maxArrayLength">The maximum length of an array instance that may be stored in the pool.</param>
|
||||
<param name="maxArraysPerBucket">The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.</param>
|
||||
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class with the specified configuration.</returns>
|
||||
</member>
|
||||
<member name="M:System.Buffers.ArrayPool`1.Rent(System.Int32)">
|
||||
<summary>Retrieves a buffer that is at least the requested length.</summary>
|
||||
<param name="minimumLength">The minimum length of the array.</param>
|
||||
<returns>An array of type <see cref="T[]"></see> that is at least <paramref name="minimumLength">minimumLength</paramref> in length.</returns>
|
||||
</member>
|
||||
<member name="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)">
|
||||
<summary>Returns an array to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method on the same <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
|
||||
<param name="array">A buffer to return to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method.</param>
|
||||
<param name="clearArray">Indicates whether the contents of the buffer should be cleared before reuse. If <paramref name="clearArray">clearArray</paramref> is set to true, and if the pool will store the buffer to enable subsequent reuse, the <see cref="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)"></see> method will clear the <paramref name="array">array</paramref> of its contents so that a subsequent caller using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method will not see the content of the previous caller. If <paramref name="clearArray">clearArray</paramref> is set to false or if the pool will release the buffer, the array&#39;s contents are left unchanged.</param>
|
||||
</member>
|
||||
<member name="P:System.Buffers.ArrayPool`1.Shared">
|
||||
<summary>Gets a shared <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
|
||||
<returns>A shared <see cref="System.Buffers.ArrayPool`1"></see> instance.</returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
341
LeatherProject/GeBoShi/bin/Debug/System.IO.Pipelines.xml
Normal file
341
LeatherProject/GeBoShi/bin/Debug/System.IO.Pipelines.xml
Normal file
@ -0,0 +1,341 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>System.IO.Pipelines</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.IO.Pipelines.FlushResult">
|
||||
<summary>Result returned by <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> call.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.FlushResult.#ctor(System.Boolean,System.Boolean)">
|
||||
<summary>Initializes a new instance of <see cref="T:System.IO.Pipelines.FlushResult" /> struct setting the <see cref="P:System.IO.Pipelines.FlushResult.IsCanceled" /> and <see cref="P:System.IO.Pipelines.FlushResult.IsCompleted" /> flags.</summary>
|
||||
<param name="isCanceled">
|
||||
<see langword="true" /> to indicate the current <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> operation that produced this <see cref="T:System.IO.Pipelines.FlushResult" /> was canceled by <see cref="M:System.IO.Pipelines.PipeWriter.CancelPendingFlush" />; otherwise, <see langword="false" />.</param>
|
||||
<param name="isCompleted">
|
||||
<see langword="true" /> to indicate the reader is no longer reading data written to the <see cref="T:System.IO.Pipelines.PipeWriter" />.</param>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.FlushResult.IsCanceled">
|
||||
<summary>Gets a value that indicates whether the current <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> operation was canceled.</summary>
|
||||
<returns>
|
||||
<see langword="true" /> if the current <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> operation was canceled; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.FlushResult.IsCompleted">
|
||||
<summary>Gets a value that indicates the reader is no longer reading data written to the <see cref="T:System.IO.Pipelines.PipeWriter" />.</summary>
|
||||
<returns>
|
||||
<see langword="true" /> if the reader is no longer reading data written to the <see cref="T:System.IO.Pipelines.PipeWriter" />; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="T:System.IO.Pipelines.IDuplexPipe">
|
||||
<summary>Defines a class that provides a duplex pipe from which data can be read from and written to.</summary>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.IDuplexPipe.Input">
|
||||
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeReader" /> half of the duplex pipe.</summary>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.IDuplexPipe.Output">
|
||||
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeWriter" /> half of the duplex pipe.</summary>
|
||||
</member>
|
||||
<member name="T:System.IO.Pipelines.Pipe">
|
||||
<summary>The default <see cref="T:System.IO.Pipelines.PipeWriter" /> and <see cref="T:System.IO.Pipelines.PipeReader" /> implementation.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.Pipe.#ctor">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.IO.Pipelines.Pipe" /> class using <see cref="P:System.IO.Pipelines.PipeOptions.Default" /> as options.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.Pipe.#ctor(System.IO.Pipelines.PipeOptions)">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.IO.Pipelines.Pipe" /> class with the specified options.</summary>
|
||||
<param name="options">The set of options for this pipe.</param>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.Pipe.Reset">
|
||||
<summary>Resets the pipe.</summary>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.Pipe.Reader">
|
||||
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeReader" /> for this pipe.</summary>
|
||||
<returns>A <see cref="T:System.IO.Pipelines.PipeReader" /> instance for this pipe.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.Pipe.Writer">
|
||||
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeWriter" /> for this pipe.</summary>
|
||||
<returns>A <see cref="T:System.IO.Pipelines.PipeWriter" /> instance for this pipe.</returns>
|
||||
</member>
|
||||
<member name="T:System.IO.Pipelines.PipeOptions">
|
||||
<summary>Represents a set of <see cref="T:System.IO.Pipelines.Pipe" /> options.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeOptions.#ctor(System.Buffers.MemoryPool{System.Byte},System.IO.Pipelines.PipeScheduler,System.IO.Pipelines.PipeScheduler,System.Int64,System.Int64,System.Int32,System.Boolean)">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.IO.Pipelines.PipeOptions" /> class with the specified parameters.</summary>
|
||||
<param name="pool">The pool of memory blocks to be used for buffer management.</param>
|
||||
<param name="readerScheduler">The <see cref="T:System.IO.Pipelines.PipeScheduler" /> to be used to execute <see cref="T:System.IO.Pipelines.PipeReader" /> callbacks and async continuations.</param>
|
||||
<param name="writerScheduler">The <see cref="T:System.IO.Pipelines.PipeScheduler" /> used to execute <see cref="T:System.IO.Pipelines.PipeWriter" /> callbacks and async continuations.</param>
|
||||
<param name="pauseWriterThreshold">The number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> before <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> starts blocking. A value of zero prevents <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> from ever blocking, effectively making the number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> unlimited.</param>
|
||||
<param name="resumeWriterThreshold">The number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> when <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> stops blocking.</param>
|
||||
<param name="minimumSegmentSize">The minimum size of the segment requested from <paramref name="pool" />.</param>
|
||||
<param name="useSynchronizationContext">
|
||||
<see langword="true" /> if asynchronous continuations should be executed on the <see cref="T:System.Threading.SynchronizationContext" /> they were captured on; <see langword="false" /> otherwise. This takes precedence over the schedulers specified in <see cref="P:System.IO.Pipelines.PipeOptions.ReaderScheduler" /> and <see cref="P:System.IO.Pipelines.PipeOptions.WriterScheduler" />.</param>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.PipeOptions.Default">
|
||||
<summary>Gets the default instance of <see cref="T:System.IO.Pipelines.PipeOptions" />.</summary>
|
||||
<returns>A <see cref="T:System.IO.Pipelines.PipeOptions" /> object initialized with default parameters.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.PipeOptions.MinimumSegmentSize">
|
||||
<summary>Gets the minimum size of the segment requested from the <see cref="P:System.IO.Pipelines.PipeOptions.Pool" />.</summary>
|
||||
<returns>The minimum size of the segment requested from the <see cref="P:System.IO.Pipelines.PipeOptions.Pool" />.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.PipeOptions.PauseWriterThreshold">
|
||||
<summary>Gets the number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> when <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> starts blocking.</summary>
|
||||
<returns>The number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> when <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> starts blocking.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.PipeOptions.Pool">
|
||||
<summary>Gets the <see cref="T:System.Buffers.MemoryPool`1" /> object used for buffer management.</summary>
|
||||
<returns>A pool of memory blocks used for buffer management.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.PipeOptions.ReaderScheduler">
|
||||
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeScheduler" /> used to execute <see cref="T:System.IO.Pipelines.PipeReader" /> callbacks and async continuations.</summary>
|
||||
<returns>A <see cref="T:System.IO.Pipelines.PipeScheduler" /> that is used to execute <see cref="T:System.IO.Pipelines.PipeReader" /> callbacks and async continuations.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.PipeOptions.ResumeWriterThreshold">
|
||||
<summary>Gets the number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> when <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> stops blocking.</summary>
|
||||
<returns>The number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> when <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> stops blocking.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.PipeOptions.UseSynchronizationContext">
|
||||
<summary>Gets a value that determines if asynchronous callbacks and continuations should be executed on the <see cref="T:System.Threading.SynchronizationContext" /> they were captured on. This takes precedence over the schedulers specified in <see cref="P:System.IO.Pipelines.PipeOptions.ReaderScheduler" /> and <see cref="P:System.IO.Pipelines.PipeOptions.WriterScheduler" />.</summary>
|
||||
<returns>
|
||||
<see langword="true" /> if asynchronous callbacks and continuations should be executed on the <see cref="T:System.Threading.SynchronizationContext" /> they were captured on; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.PipeOptions.WriterScheduler">
|
||||
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeScheduler" /> used to execute <see cref="T:System.IO.Pipelines.PipeWriter" /> callbacks and async continuations.</summary>
|
||||
<returns>A <see cref="T:System.IO.Pipelines.PipeScheduler" /> object used to execute <see cref="T:System.IO.Pipelines.PipeWriter" /> callbacks and async continuations.</returns>
|
||||
</member>
|
||||
<member name="T:System.IO.Pipelines.PipeReader">
|
||||
<summary>Defines a class that provides access to a read side of pipe.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.#ctor">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.IO.Pipelines.PipeReader" /> class.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.AdvanceTo(System.SequencePosition)">
|
||||
<summary>Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed.</summary>
|
||||
<param name="consumed">Marks the extent of the data that has been successfully processed.</param>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.AdvanceTo(System.SequencePosition,System.SequencePosition)">
|
||||
<summary>Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed, read and examined.</summary>
|
||||
<param name="consumed">Marks the extent of the data that has been successfully processed.</param>
|
||||
<param name="examined">Marks the extent of the data that has been read and examined.</param>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.AsStream(System.Boolean)">
|
||||
<summary>Returns a <see cref="T:System.IO.Stream" /> representation of the <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||
<param name="leaveOpen">An optional flag that indicates whether disposing the returned <see cref="T:System.IO.Stream" /> leaves <see cref="T:System.IO.Pipelines.PipeReader" /> open (<see langword="true" />) or completes <see cref="T:System.IO.Pipelines.PipeReader" /> (<see langword="false" />).</param>
|
||||
<returns>A stream that represents the <see cref="T:System.IO.Pipelines.PipeReader" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.CancelPendingRead">
|
||||
<summary>Cancels to currently pending or if none is pending next call to <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" />, without completing the <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.Complete(System.Exception)">
|
||||
<summary>Signals to the producer that the consumer is done reading.</summary>
|
||||
<param name="exception">Optional <see cref="T:System.Exception" /> indicating a failure that's causing the pipeline to complete.</param>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.CompleteAsync(System.Exception)">
|
||||
<summary>Marks the current pipe reader instance as being complete, meaning no more data will be read from it.</summary>
|
||||
<param name="exception">An optional exception that indicates the failure that caused the reader to complete.</param>
|
||||
<returns>A value task that represents the asynchronous complete operation.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.CopyToAsync(System.IO.Pipelines.PipeWriter,System.Threading.CancellationToken)">
|
||||
<summary>Asynchronously reads the bytes from the <see cref="T:System.IO.Pipelines.PipeReader" /> and writes them to the specified <see cref="T:System.IO.Pipelines.PipeWriter" />, using a specified buffer size and cancellation token.</summary>
|
||||
<param name="destination">The pipe writer to which the contents of the current stream will be copied.</param>
|
||||
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||
<returns>A task that represents the asynchronous copy operation.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.CopyToAsync(System.IO.Stream,System.Threading.CancellationToken)">
|
||||
<summary>Asynchronously reads the bytes from the <see cref="T:System.IO.Pipelines.PipeReader" /> and writes them to the specified stream, using a specified cancellation token.</summary>
|
||||
<param name="destination">The stream to which the contents of the current stream will be copied.</param>
|
||||
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||
<returns>A task that represents the asynchronous copy operation.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.Create(System.IO.Stream,System.IO.Pipelines.StreamPipeReaderOptions)">
|
||||
<summary>Creates a <see cref="T:System.IO.Pipelines.PipeReader" /> wrapping the specified <see cref="T:System.IO.Stream" />.</summary>
|
||||
<param name="stream">The stream that the pipe reader will wrap.</param>
|
||||
<param name="readerOptions">The options to configure the pipe reader.</param>
|
||||
<returns>A <see cref="T:System.IO.Pipelines.PipeReader" /> that wraps the <see cref="T:System.IO.Stream" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.OnWriterCompleted(System.Action{System.Exception,System.Object},System.Object)">
|
||||
<summary>Registers a callback that executes when the <see cref="T:System.IO.Pipelines.PipeWriter" /> side of the pipe is completed.</summary>
|
||||
<param name="callback">The callback to register.</param>
|
||||
<param name="state">The state object to pass to <paramref name="callback" /> when it's invoked.</param>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)">
|
||||
<summary>Asynchronously reads a sequence of bytes from the current <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see langword="default" />.</param>
|
||||
<returns>A <see cref="T:System.Threading.Tasks.ValueTask`1" /> representing the asynchronous read operation.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeReader.TryRead(System.IO.Pipelines.ReadResult@)">
|
||||
<summary>Attempts to synchronously read data the <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||
<param name="result">When this method returns <see langword="true" />, this value is set to a <see cref="T:System.IO.Pipelines.ReadResult" /> instance that represents the result of the read call; otherwise, this value is set to <see langword="default" />.</param>
|
||||
<returns>
|
||||
<see langword="true" /> if data was available, or if the call was canceled or the writer was completed; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="T:System.IO.Pipelines.PipeScheduler">
|
||||
<summary>Abstraction for running <see cref="T:System.IO.Pipelines.PipeReader" /> and <see cref="T:System.IO.Pipelines.PipeWriter" /> callbacks and continuations.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeScheduler.#ctor">
|
||||
<summary>Initializes new a <see cref="T:System.IO.Pipelines.PipeScheduler" /> instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeScheduler.Schedule(System.Action{System.Object},System.Object)">
|
||||
<summary>Requests <paramref name="action" /> to be run on scheduler with <paramref name="state" /> being passed in.</summary>
|
||||
<param name="action">The single-parameter action delegate to schedule.</param>
|
||||
<param name="state">The parameter to pass to the <paramref name="action" /> delegate.</param>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.PipeScheduler.Inline">
|
||||
<summary>The <see cref="T:System.IO.Pipelines.PipeScheduler" /> implementation that runs callbacks inline.</summary>
|
||||
<returns>A <see cref="T:System.IO.Pipelines.PipeScheduler" /> instance that runs callbacks inline.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.PipeScheduler.ThreadPool">
|
||||
<summary>The <see cref="T:System.IO.Pipelines.PipeScheduler" /> implementation that queues callbacks to the thread pool.</summary>
|
||||
<returns>A <see cref="T:System.IO.Pipelines.PipeScheduler" /> instance that queues callbacks to the thread pool.</returns>
|
||||
</member>
|
||||
<member name="T:System.IO.Pipelines.PipeWriter">
|
||||
<summary>Defines a class that provides a pipeline to which data can be written.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.#ctor">
|
||||
<summary>Initializes a new instance of the class.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.Advance(System.Int32)">
|
||||
<summary>Notifies the <see cref="T:System.IO.Pipelines.PipeWriter" /> that <paramref name="bytes" /> bytes were written to the output <see cref="T:System.Span`1" /> or <see cref="T:System.Memory`1" />. You must request a new buffer after calling <see cref="M:System.IO.Pipelines.PipeWriter.Advance(System.Int32)" /> to continue writing more data; you cannot write to a previously acquired buffer.</summary>
|
||||
<param name="bytes">The number of bytes written to the <see cref="T:System.Span`1" /> or <see cref="T:System.Memory`1" />.</param>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.AsStream(System.Boolean)">
|
||||
<summary>Returns a <see cref="T:System.IO.Stream" /> representation of the <see cref="T:System.IO.Pipelines.PipeWriter" />.</summary>
|
||||
<param name="leaveOpen">An optional flag that indicates whether disposing the returned <see cref="T:System.IO.Stream" /> leaves <see cref="T:System.IO.Pipelines.PipeReader" /> open (<see langword="true" />) or completes <see cref="T:System.IO.Pipelines.PipeReader" /> (<see langword="false" />).</param>
|
||||
<returns>A stream that represents the <see cref="T:System.IO.Pipelines.PipeWriter" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.CancelPendingFlush">
|
||||
<summary>Cancels the pending <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> operation. If there is none, cancels next <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> operation, without completing the <see cref="T:System.IO.Pipelines.PipeWriter" />.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.Complete(System.Exception)">
|
||||
<summary>Marks the <see cref="T:System.IO.Pipelines.PipeWriter" /> as being complete, meaning no more items will be written to it.</summary>
|
||||
<param name="exception">Optional <see cref="T:System.Exception" /> indicating a failure that's causing the pipeline to complete.</param>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.CompleteAsync(System.Exception)">
|
||||
<summary>Marks the current pipe writer instance as being complete, meaning no more data will be written to it.</summary>
|
||||
<param name="exception">An optional exception that indicates the failure that caused the pipeline to complete.</param>
|
||||
<returns>A value task that represents the asynchronous complete operation.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.CopyFromAsync(System.IO.Stream,System.Threading.CancellationToken)">
|
||||
<summary>Asynchronously reads the bytes from the specified stream and writes them to the <see cref="T:System.IO.Pipelines.PipeWriter" />.</summary>
|
||||
<param name="source">The stream from which the contents will be copied.</param>
|
||||
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||
<returns>A task that represents the asynchronous copy operation.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.Create(System.IO.Stream,System.IO.Pipelines.StreamPipeWriterOptions)">
|
||||
<summary>Creates a <see cref="T:System.IO.Pipelines.PipeWriter" /> wrapping the specified <see cref="T:System.IO.Stream" />.</summary>
|
||||
<param name="stream">The stream that the pipe writer will wrap.</param>
|
||||
<param name="writerOptions">The options to configure the pipe writer.</param>
|
||||
<returns>A <see cref="T:System.IO.Pipelines.PipeWriter" /> that wraps the <see cref="T:System.IO.Stream" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)">
|
||||
<summary>Makes bytes written available to <see cref="T:System.IO.Pipelines.PipeReader" /> and runs <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> continuation.</summary>
|
||||
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||
<returns>A task that represents and wraps the asynchronous flush operation.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.GetMemory(System.Int32)">
|
||||
<summary>Returns a <see cref="T:System.Memory`1" /> to write to that is at least the requested size, as specified by the <paramref name="sizeHint" /> parameter.</summary>
|
||||
<param name="sizeHint">The minimum length of the returned <see cref="T:System.Memory`1" />. If 0, a non-empty memory buffer of arbitrary size is returned.</param>
|
||||
<exception cref="T:System.OutOfMemoryException">The requested buffer size is not available.</exception>
|
||||
<returns>A memory buffer of at least <paramref name="sizeHint" /> bytes. If <paramref name="sizeHint" /> is 0, returns a non-empty buffer of arbitrary size.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.GetSpan(System.Int32)">
|
||||
<summary>Returns a <see cref="T:System.Span`1" /> to write to that is at least the requested size, as specified by the <paramref name="sizeHint" /> parameter.</summary>
|
||||
<param name="sizeHint">The minimum length of the returned <see cref="T:System.Span`1" />. If 0, a non-empty buffer of arbitrary size is returned.</param>
|
||||
<exception cref="T:System.OutOfMemoryException">The requested buffer size is not available.</exception>
|
||||
<returns>A buffer of at least <paramref name="sizeHint" /> bytes. If <paramref name="sizeHint" /> is 0, returns a non-empty buffer of arbitrary size.</returns>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.OnReaderCompleted(System.Action{System.Exception,System.Object},System.Object)">
|
||||
<summary>Registers a callback that executes when the <see cref="T:System.IO.Pipelines.PipeReader" /> side of the pipe is completed.</summary>
|
||||
<param name="callback">The callback to register.</param>
|
||||
<param name="state">The state object to pass to <paramref name="callback" /> when it's invoked.</param>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.PipeWriter.WriteAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
|
||||
<summary>Writes the specified byte memory range to the pipe and makes data accessible to the <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||
<param name="source">The read-only byte memory region to write.</param>
|
||||
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||
<returns>A task that represents the asynchronous write operation, and wraps the flush asynchronous operation.</returns>
|
||||
</member>
|
||||
<member name="T:System.IO.Pipelines.ReadResult">
|
||||
<summary>Represents the result of a <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> call.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.ReadResult.#ctor(System.Buffers.ReadOnlySequence{System.Byte},System.Boolean,System.Boolean)">
|
||||
<summary>Creates a new instance of <see cref="T:System.IO.Pipelines.ReadResult" /> setting <see cref="P:System.IO.Pipelines.ReadResult.IsCanceled" /> and <see cref="P:System.IO.Pipelines.ReadResult.IsCompleted" /> flags.</summary>
|
||||
<param name="buffer">The read-only sequence containing the bytes of data that were read in the <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> call.</param>
|
||||
<param name="isCanceled">A flag that indicates if the <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> operation that produced this <see cref="T:System.IO.Pipelines.ReadResult" /> was canceled by <see cref="M:System.IO.Pipelines.PipeReader.CancelPendingRead" />.</param>
|
||||
<param name="isCompleted">A flag that indicates whether the end of the data stream has been reached.</param>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.ReadResult.Buffer">
|
||||
<summary>Gets the <see cref="T:System.Buffers.ReadOnlySequence`1" /> that was read.</summary>
|
||||
<returns>A read-only sequence containing the bytes of data that were read in the <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> call.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.ReadResult.IsCanceled">
|
||||
<summary>Gets a value that indicates whether the current <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> operation was canceled.</summary>
|
||||
<returns>
|
||||
<see langword="true" /> if the <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> operation that produced this <see cref="T:System.IO.Pipelines.ReadResult" /> was canceled by <see cref="M:System.IO.Pipelines.PipeReader.CancelPendingRead" />; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.ReadResult.IsCompleted">
|
||||
<summary>Gets a value that indicates whether the end of the data stream has been reached.</summary>
|
||||
<returns>
|
||||
<see langword="true" /> if the end of the data stream has been reached; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="T:System.IO.Pipelines.StreamPipeExtensions">
|
||||
<summary>Provides extension methods for <see cref="T:System.IO.Stream" /> that support read and write operations directly into pipes.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.StreamPipeExtensions.CopyToAsync(System.IO.Stream,System.IO.Pipelines.PipeWriter,System.Threading.CancellationToken)">
|
||||
<summary>Asynchronously reads the bytes from the <see cref="T:System.IO.Stream" /> and writes them to the specified <see cref="T:System.IO.Pipelines.PipeWriter" />, using a cancellation token.</summary>
|
||||
<param name="source">The stream from which the contents of the current stream will be copied.</param>
|
||||
<param name="destination">The writer to which the contents of the source stream will be copied.</param>
|
||||
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||
<returns>A task that represents the asynchronous copy operation.</returns>
|
||||
</member>
|
||||
<member name="T:System.IO.Pipelines.StreamPipeReaderOptions">
|
||||
<summary>Represents a set of options for controlling the creation of the <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.StreamPipeReaderOptions.#ctor(System.Buffers.MemoryPool{System.Byte},System.Int32,System.Int32,System.Boolean)">
|
||||
<summary>Initializes a <see cref="T:System.IO.Pipelines.StreamPipeReaderOptions" /> instance, optionally specifying a memory pool, a minimum buffer size, a minimum read size, and whether the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeReader" /> completes.</summary>
|
||||
<param name="pool">The memory pool to use when allocating memory. The default value is <see langword="null" />.</param>
|
||||
<param name="bufferSize">The minimum buffer size to use when renting memory from the <paramref name="pool" />. The default value is 4096.</param>
|
||||
<param name="minimumReadSize">The threshold of remaining bytes in the buffer before a new buffer is allocated. The default value is 1024.</param>
|
||||
<param name="leaveOpen">
|
||||
<see langword="true" /> to leave the underlying stream open after the <see cref="T:System.IO.Pipelines.PipeReader" /> completes; <see langword="false" /> to close it. The default is <see langword="false" />.</param>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.StreamPipeReaderOptions.BufferSize">
|
||||
<summary>Gets the minimum buffer size to use when renting memory from the <see cref="P:System.IO.Pipelines.StreamPipeReaderOptions.Pool" />.</summary>
|
||||
<returns>The buffer size.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.StreamPipeReaderOptions.LeaveOpen">
|
||||
<summary>Gets the value that indicates if the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeReader" /> completes.</summary>
|
||||
<returns>
|
||||
<see langword="true" /> if the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeReader" /> completes; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.StreamPipeReaderOptions.MinimumReadSize">
|
||||
<summary>Gets the threshold of remaining bytes in the buffer before a new buffer is allocated.</summary>
|
||||
<returns>The minimum read size.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.StreamPipeReaderOptions.Pool">
|
||||
<summary>Gets the <see cref="T:System.Buffers.MemoryPool`1" /> to use when allocating memory.</summary>
|
||||
<returns>A memory pool instance.</returns>
|
||||
</member>
|
||||
<member name="T:System.IO.Pipelines.StreamPipeWriterOptions">
|
||||
<summary>Represents a set of options for controlling the creation of the <see cref="T:System.IO.Pipelines.PipeWriter" />.</summary>
|
||||
</member>
|
||||
<member name="M:System.IO.Pipelines.StreamPipeWriterOptions.#ctor(System.Buffers.MemoryPool{System.Byte},System.Int32,System.Boolean)">
|
||||
<summary>Initializes a <see cref="T:System.IO.Pipelines.StreamPipeWriterOptions" /> instance, optionally specifying a memory pool, a minimum buffer size, and whether the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeWriter" /> completes.</summary>
|
||||
<param name="pool">The memory pool to use when allocating memory. The default value is <see langword="null" />.</param>
|
||||
<param name="minimumBufferSize">The minimum buffer size to use when renting memory from the <paramref name="pool" />. The default value is 4096.</param>
|
||||
<param name="leaveOpen">
|
||||
<see langword="true" /> to leave the underlying stream open after the <see cref="T:System.IO.Pipelines.PipeWriter" /> completes; <see langword="false" /> to close it. The default is <see langword="false" />.</param>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.StreamPipeWriterOptions.LeaveOpen">
|
||||
<summary>Gets the value that indicates if the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeWriter" /> completes.</summary>
|
||||
<returns>
|
||||
<see langword="true" /> if the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeWriter" /> completes; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.StreamPipeWriterOptions.MinimumBufferSize">
|
||||
<summary>Gets the minimum buffer size to use when renting memory from the <see cref="P:System.IO.Pipelines.StreamPipeWriterOptions.Pool" />.</summary>
|
||||
<returns>An integer representing the minimum buffer size.</returns>
|
||||
</member>
|
||||
<member name="P:System.IO.Pipelines.StreamPipeWriterOptions.Pool">
|
||||
<summary>Gets the <see cref="T:System.Buffers.MemoryPool`1" /> to use when allocating memory.</summary>
|
||||
<returns>A memory pool instance.</returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
355
LeatherProject/GeBoShi/bin/Debug/System.Memory.xml
Normal file
355
LeatherProject/GeBoShi/bin/Debug/System.Memory.xml
Normal file
@ -0,0 +1,355 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><doc>
|
||||
<assembly>
|
||||
<name>System.Memory</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.Span`1">
|
||||
<typeparam name="T"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Span`1.#ctor(`0[])">
|
||||
<param name="array"></param>
|
||||
</member>
|
||||
<member name="M:System.Span`1.#ctor(System.Void*,System.Int32)">
|
||||
<param name="pointer"></param>
|
||||
<param name="length"></param>
|
||||
</member>
|
||||
<member name="M:System.Span`1.#ctor(`0[],System.Int32)">
|
||||
<param name="array"></param>
|
||||
<param name="start"></param>
|
||||
</member>
|
||||
<member name="M:System.Span`1.#ctor(`0[],System.Int32,System.Int32)">
|
||||
<param name="array"></param>
|
||||
<param name="start"></param>
|
||||
<param name="length"></param>
|
||||
</member>
|
||||
<member name="M:System.Span`1.Clear">
|
||||
|
||||
</member>
|
||||
<member name="M:System.Span`1.CopyTo(System.Span{`0})">
|
||||
<param name="destination"></param>
|
||||
</member>
|
||||
<member name="M:System.Span`1.DangerousCreate(System.Object,`0@,System.Int32)">
|
||||
<param name="obj"></param>
|
||||
<param name="objectData"></param>
|
||||
<param name="length"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.DangerousGetPinnableReference">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.Span`1.Empty">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.Equals(System.Object)">
|
||||
<param name="obj"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.Fill(`0)">
|
||||
<param name="value"></param>
|
||||
</member>
|
||||
<member name="M:System.Span`1.GetHashCode">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.Span`1.IsEmpty">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.Span`1.Item(System.Int32)">
|
||||
<param name="index"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.Span`1.Length">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.op_Equality(System.Span{`0},System.Span{`0})">
|
||||
<param name="left"></param>
|
||||
<param name="right"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.op_Implicit(System.ArraySegment{T})~System.Span{T}">
|
||||
<param name="arraySegment"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.op_Implicit(System.Span{T})~System.ReadOnlySpan{T}">
|
||||
<param name="span"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.op_Implicit(T[])~System.Span{T}">
|
||||
<param name="array"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.op_Inequality(System.Span{`0},System.Span{`0})">
|
||||
<param name="left"></param>
|
||||
<param name="right"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.Slice(System.Int32)">
|
||||
<param name="start"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.Slice(System.Int32,System.Int32)">
|
||||
<param name="start"></param>
|
||||
<param name="length"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.ToArray">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Span`1.TryCopyTo(System.Span{`0})">
|
||||
<param name="destination"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:System.SpanExtensions">
|
||||
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.AsBytes``1(System.ReadOnlySpan{``0})">
|
||||
<param name="source"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.AsBytes``1(System.Span{``0})">
|
||||
<param name="source"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.AsSpan(System.String)">
|
||||
<param name="text"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.AsSpan``1(System.ArraySegment{``0})">
|
||||
<param name="arraySegment"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.AsSpan``1(``0[])">
|
||||
<param name="array"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.CopyTo``1(``0[],System.Span{``0})">
|
||||
<param name="array"></param>
|
||||
<param name="destination"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.Byte)">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.Byte)">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},``0)">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},System.ReadOnlySpan{``0})">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},``0)">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte,System.Byte)">
|
||||
<param name="span"></param>
|
||||
<param name="value0"></param>
|
||||
<param name="value1"></param>
|
||||
<param name="value2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte,System.Byte)">
|
||||
<param name="span"></param>
|
||||
<param name="value0"></param>
|
||||
<param name="value1"></param>
|
||||
<param name="value2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte)">
|
||||
<param name="span"></param>
|
||||
<param name="value0"></param>
|
||||
<param name="value1"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||
<param name="span"></param>
|
||||
<param name="values"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||
<param name="span"></param>
|
||||
<param name="values"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte)">
|
||||
<param name="span"></param>
|
||||
<param name="value0"></param>
|
||||
<param name="value1"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.NonPortableCast``2(System.ReadOnlySpan{``0})">
|
||||
<param name="source"></param>
|
||||
<typeparam name="TFrom"></typeparam>
|
||||
<typeparam name="TTo"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.NonPortableCast``2(System.Span{``0})">
|
||||
<param name="source"></param>
|
||||
<typeparam name="TFrom"></typeparam>
|
||||
<typeparam name="TTo"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.SequenceEqual(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||
<param name="first"></param>
|
||||
<param name="second"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.SequenceEqual(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||
<param name="first"></param>
|
||||
<param name="second"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.SequenceEqual``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
|
||||
<param name="first"></param>
|
||||
<param name="second"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.SequenceEqual``1(System.Span{``0},System.ReadOnlySpan{``0})">
|
||||
<param name="first"></param>
|
||||
<param name="second"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.StartsWith(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.StartsWith(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.StartsWith``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.SpanExtensions.StartsWith``1(System.Span{``0},System.ReadOnlySpan{``0})">
|
||||
<param name="span"></param>
|
||||
<param name="value"></param>
|
||||
<typeparam name="T"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:System.ReadOnlySpan`1">
|
||||
<typeparam name="T"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.#ctor(`0[])">
|
||||
<param name="array"></param>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.#ctor(System.Void*,System.Int32)">
|
||||
<param name="pointer"></param>
|
||||
<param name="length"></param>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32)">
|
||||
<param name="array"></param>
|
||||
<param name="start"></param>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32,System.Int32)">
|
||||
<param name="array"></param>
|
||||
<param name="start"></param>
|
||||
<param name="length"></param>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.CopyTo(System.Span{`0})">
|
||||
<param name="destination"></param>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.DangerousCreate(System.Object,`0@,System.Int32)">
|
||||
<param name="obj"></param>
|
||||
<param name="objectData"></param>
|
||||
<param name="length"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.DangerousGetPinnableReference">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.ReadOnlySpan`1.Empty">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.Equals(System.Object)">
|
||||
<param name="obj"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.GetHashCode">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.ReadOnlySpan`1.IsEmpty">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.ReadOnlySpan`1.Item(System.Int32)">
|
||||
<param name="index"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.ReadOnlySpan`1.Length">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.op_Equality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
|
||||
<param name="left"></param>
|
||||
<param name="right"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.op_Implicit(System.ArraySegment{T})~System.ReadOnlySpan{T}">
|
||||
<param name="arraySegment"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.op_Implicit(T[])~System.ReadOnlySpan{T}">
|
||||
<param name="array"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.op_Inequality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
|
||||
<param name="left"></param>
|
||||
<param name="right"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32)">
|
||||
<param name="start"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32,System.Int32)">
|
||||
<param name="start"></param>
|
||||
<param name="length"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.ToArray">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.ReadOnlySpan`1.TryCopyTo(System.Span{`0})">
|
||||
<param name="destination"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
2621
LeatherProject/GeBoShi/bin/Debug/System.Numerics.Vectors.xml
Normal file
2621
LeatherProject/GeBoShi/bin/Debug/System.Numerics.Vectors.xml
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,291 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>System.Runtime.CompilerServices.Unsafe</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.Runtime.CompilerServices.Unsafe">
|
||||
<summary>Contains generic, low-level functionality for manipulating pointers.</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.Int32)">
|
||||
<summary>Adds an element offset to the given reference.</summary>
|
||||
<param name="source">The reference to add the offset to.</param>
|
||||
<param name="elementOffset">The offset to add.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.IntPtr)">
|
||||
<summary>Adds an element offset to the given reference.</summary>
|
||||
<param name="source">The reference to add the offset to.</param>
|
||||
<param name="elementOffset">The offset to add.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.UIntPtr)">
|
||||
<summary>Adds an element offset to the given reference.</summary>
|
||||
<param name="source">The reference to add the offset to.</param>
|
||||
<param name="elementOffset">The offset to add.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(System.Void*,System.Int32)">
|
||||
<summary>Adds an element offset to the given void pointer.</summary>
|
||||
<param name="source">The void pointer to add the offset to.</param>
|
||||
<param name="elementOffset">The offset to add.</param>
|
||||
<typeparam name="T">The type of void pointer.</typeparam>
|
||||
<returns>A new void pointer that reflects the addition of offset to the specified pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.IntPtr)">
|
||||
<summary>Adds a byte offset to the given reference.</summary>
|
||||
<param name="source">The reference to add the offset to.</param>
|
||||
<param name="byteOffset">The offset to add.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.UIntPtr)">
|
||||
<summary>Adds a byte offset to the given reference.</summary>
|
||||
<param name="source">The reference to add the offset to.</param>
|
||||
<param name="byteOffset">The offset to add.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AreSame``1(``0@,``0@)">
|
||||
<summary>Determines whether the specified references point to the same location.</summary>
|
||||
<param name="left">The first reference to compare.</param>
|
||||
<param name="right">The second reference to compare.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>
|
||||
<see langword="true" /> if <paramref name="left" /> and <paramref name="right" /> point to the same location; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.As``1(System.Object)">
|
||||
<summary>Casts the given object to the specified type.</summary>
|
||||
<param name="o">The object to cast.</param>
|
||||
<typeparam name="T">The type which the object will be cast to.</typeparam>
|
||||
<returns>The original object, casted to the given type.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.As``2(``0@)">
|
||||
<summary>Reinterprets the given reference as a reference to a value of type <typeparamref name="TTo" />.</summary>
|
||||
<param name="source">The reference to reinterpret.</param>
|
||||
<typeparam name="TFrom">The type of reference to reinterpret.</typeparam>
|
||||
<typeparam name="TTo">The desired type of the reference.</typeparam>
|
||||
<returns>A reference to a value of type <typeparamref name="TTo" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AsPointer``1(``0@)">
|
||||
<summary>Returns a pointer to the given by-ref parameter.</summary>
|
||||
<param name="value">The object whose pointer is obtained.</param>
|
||||
<typeparam name="T">The type of object.</typeparam>
|
||||
<returns>A pointer to the given value.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(``0@)">
|
||||
<summary>Reinterprets the given read-only reference as a reference.</summary>
|
||||
<param name="source">The read-only reference to reinterpret.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A reference to a value of type <typeparamref name="T" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(System.Void*)">
|
||||
<summary>Reinterprets the given location as a reference to a value of type <typeparamref name="T" />.</summary>
|
||||
<param name="source">The location of the value to reference.</param>
|
||||
<typeparam name="T">The type of the interpreted location.</typeparam>
|
||||
<returns>A reference to a value of type <typeparamref name="T" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.ByteOffset``1(``0@,``0@)">
|
||||
<summary>Determines the byte offset from origin to target from the given references.</summary>
|
||||
<param name="origin">The reference to origin.</param>
|
||||
<param name="target">The reference to target.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>Byte offset from origin to target i.e. <paramref name="target" /> - <paramref name="origin" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(``0@,System.Void*)">
|
||||
<summary>Copies a value of type <typeparamref name="T" /> to the given location.</summary>
|
||||
<param name="destination">The location to copy to.</param>
|
||||
<param name="source">A pointer to the value to copy.</param>
|
||||
<typeparam name="T">The type of value to copy.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(System.Void*,``0@)">
|
||||
<summary>Copies a value of type <typeparamref name="T" /> to the given location.</summary>
|
||||
<param name="destination">The location to copy to.</param>
|
||||
<param name="source">A reference to the value to copy.</param>
|
||||
<typeparam name="T">The type of value to copy.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte@,System.Byte@,System.UInt32)">
|
||||
<summary>Copies bytes from the source address to the destination address.</summary>
|
||||
<param name="destination">The destination address to copy to.</param>
|
||||
<param name="source">The source address to copy from.</param>
|
||||
<param name="byteCount">The number of bytes to copy.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32)">
|
||||
<summary>Copies bytes from the source address to the destination address.</summary>
|
||||
<param name="destination">The destination address to copy to.</param>
|
||||
<param name="source">The source address to copy from.</param>
|
||||
<param name="byteCount">The number of bytes to copy.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte@,System.Byte@,System.UInt32)">
|
||||
<summary>Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="destination">The destination address to copy to.</param>
|
||||
<param name="source">The source address to copy from.</param>
|
||||
<param name="byteCount">The number of bytes to copy.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32)">
|
||||
<summary>Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="destination">The destination address to copy to.</param>
|
||||
<param name="source">The source address to copy from.</param>
|
||||
<param name="byteCount">The number of bytes to copy.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte@,System.Byte,System.UInt32)">
|
||||
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
|
||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||
<param name="value">The value to initialize the block to.</param>
|
||||
<param name="byteCount">The number of bytes to initialize.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32)">
|
||||
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
|
||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||
<param name="value">The value to initialize the block to.</param>
|
||||
<param name="byteCount">The number of bytes to initialize.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte@,System.Byte,System.UInt32)">
|
||||
<summary>Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.</summary>
|
||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||
<param name="value">The value to initialize the block to.</param>
|
||||
<param name="byteCount">The number of bytes to initialize.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32)">
|
||||
<summary>Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.</summary>
|
||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||
<param name="value">The value to initialize the block to.</param>
|
||||
<param name="byteCount">The number of bytes to initialize.</param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.IsAddressGreaterThan``1(``0@,``0@)">
|
||||
<summary>Returns a value that indicates whether a specified reference is greater than another specified reference.</summary>
|
||||
<param name="left">The first value to compare.</param>
|
||||
<param name="right">The second value to compare.</param>
|
||||
<typeparam name="T">The type of the reference.</typeparam>
|
||||
<returns>
|
||||
<see langword="true" /> if <paramref name="left" /> is greater than <paramref name="right" />; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.IsAddressLessThan``1(``0@,``0@)">
|
||||
<summary>Returns a value that indicates whether a specified reference is less than another specified reference.</summary>
|
||||
<param name="left">The first value to compare.</param>
|
||||
<param name="right">The second value to compare.</param>
|
||||
<typeparam name="T">The type of the reference.</typeparam>
|
||||
<returns>
|
||||
<see langword="true" /> if <paramref name="left" /> is less than <paramref name="right" />; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.IsNullRef``1(``0@)">
|
||||
<summary>Determines if a given reference to a value of type <typeparamref name="T" /> is a null reference.</summary>
|
||||
<param name="source">The reference to check.</param>
|
||||
<typeparam name="T">The type of the reference.</typeparam>
|
||||
<returns>
|
||||
<see langword="true" /> if <paramref name="source" /> is a null reference; otherwise, <see langword="false" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.NullRef``1">
|
||||
<summary>Returns a reference to a value of type <typeparamref name="T" /> that is a null reference.</summary>
|
||||
<typeparam name="T">The type of the reference.</typeparam>
|
||||
<returns>A reference to a value of type <typeparamref name="T" /> that is a null reference.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Read``1(System.Void*)">
|
||||
<summary>Reads a value of type <typeparamref name="T" /> from the given location.</summary>
|
||||
<param name="source">The location to read from.</param>
|
||||
<typeparam name="T">The type to read.</typeparam>
|
||||
<returns>An object of type <typeparamref name="T" /> read from the given location.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Byte@)">
|
||||
<summary>Reads a value of type <typeparamref name="T" /> from the given location without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="source">The location to read from.</param>
|
||||
<typeparam name="T">The type to read.</typeparam>
|
||||
<returns>An object of type <typeparamref name="T" /> read from the given location.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Void*)">
|
||||
<summary>Reads a value of type <typeparamref name="T" /> from the given location without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="source">The location to read from.</param>
|
||||
<typeparam name="T">The type to read.</typeparam>
|
||||
<returns>An object of type <typeparamref name="T" /> read from the given location.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.SizeOf``1">
|
||||
<summary>Returns the size of an object of the given type parameter.</summary>
|
||||
<typeparam name="T">The type of object whose size is retrieved.</typeparam>
|
||||
<returns>The size of an object of type <typeparamref name="T" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.SkipInit``1(``0@)">
|
||||
<summary>Bypasses definite assignment rules for a given value.</summary>
|
||||
<param name="value">The uninitialized object.</param>
|
||||
<typeparam name="T">The type of the uninitialized object.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.Int32)">
|
||||
<summary>Subtracts an element offset from the given reference.</summary>
|
||||
<param name="source">The reference to subtract the offset from.</param>
|
||||
<param name="elementOffset">The offset to subtract.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the subtraction of offset from pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.IntPtr)">
|
||||
<summary>Subtracts an element offset from the given reference.</summary>
|
||||
<param name="source">The reference to subtract the offset from.</param>
|
||||
<param name="elementOffset">The offset to subtract.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the subtraction of offset from pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.UIntPtr)">
|
||||
<summary>Subtracts an element offset from the given reference.</summary>
|
||||
<param name="source">The reference to subtract the offset from.</param>
|
||||
<param name="elementOffset">The offset to subtract.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(System.Void*,System.Int32)">
|
||||
<summary>Subtracts an element offset from the given void pointer.</summary>
|
||||
<param name="source">The void pointer to subtract the offset from.</param>
|
||||
<param name="elementOffset">The offset to subtract.</param>
|
||||
<typeparam name="T">The type of the void pointer.</typeparam>
|
||||
<returns>A new void pointer that reflects the subtraction of offset from the specified pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.IntPtr)">
|
||||
<summary>Subtracts a byte offset from the given reference.</summary>
|
||||
<param name="source">The reference to subtract the offset from.</param>
|
||||
<param name="byteOffset">The offset to subtract.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the subtraction of byte offset from pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.UIntPtr)">
|
||||
<summary>Subtracts a byte offset from the given reference.</summary>
|
||||
<param name="source">The reference to subtract the offset from.</param>
|
||||
<param name="byteOffset">The offset to subtract.</param>
|
||||
<typeparam name="T">The type of reference.</typeparam>
|
||||
<returns>A new reference that reflects the subraction of byte offset from pointer.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Unbox``1(System.Object)">
|
||||
<summary>Returns a <see langword="mutable ref" /> to a boxed value.</summary>
|
||||
<param name="box">The value to unbox.</param>
|
||||
<typeparam name="T">The type to be unboxed.</typeparam>
|
||||
<exception cref="T:System.NullReferenceException">
|
||||
<paramref name="box" /> is <see langword="null" />, and <typeparamref name="T" /> is a non-nullable value type.</exception>
|
||||
<exception cref="T:System.InvalidCastException">
|
||||
<paramref name="box" /> is not a boxed value type.
|
||||
|
||||
-or-
|
||||
|
||||
<paramref name="box" /> is not a boxed <typeparamref name="T" />.</exception>
|
||||
<exception cref="T:System.TypeLoadException">
|
||||
<typeparamref name="T" /> cannot be found.</exception>
|
||||
<returns>A <see langword="mutable ref" /> to the boxed value <paramref name="box" />.</returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Write``1(System.Void*,``0)">
|
||||
<summary>Writes a value of type <typeparamref name="T" /> to the given location.</summary>
|
||||
<param name="destination">The location to write to.</param>
|
||||
<param name="value">The value to write.</param>
|
||||
<typeparam name="T">The type of value to write.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Byte@,``0)">
|
||||
<summary>Writes a value of type <typeparamref name="T" /> to the given location without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="destination">The location to write to.</param>
|
||||
<param name="value">The value to write.</param>
|
||||
<typeparam name="T">The type of value to write.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Void*,``0)">
|
||||
<summary>Writes a value of type <typeparamref name="T" /> to the given location without assuming architecture dependent alignment of the addresses.</summary>
|
||||
<param name="destination">The location to write to.</param>
|
||||
<param name="value">The value to write.</param>
|
||||
<typeparam name="T">The type of value to write.</typeparam>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><doc>
|
||||
<assembly>
|
||||
<name>System.Threading.Tasks.Extensions</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.Runtime.CompilerServices.ValueTaskAwaiter`1">
|
||||
<typeparam name="TResult"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.ValueTaskAwaiter`1.IsCompleted">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.OnCompleted(System.Action)">
|
||||
<param name="continuation"></param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.UnsafeOnCompleted(System.Action)">
|
||||
<param name="continuation"></param>
|
||||
</member>
|
||||
<member name="T:System.Threading.Tasks.ValueTask`1">
|
||||
<summary>Provides a value type that wraps a <see cref="Task{TResult}"></see> and a <typeparamref name="TResult">TResult</typeparamref>, only one of which is used.</summary>
|
||||
<typeparam name="TResult">The result.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(System.Threading.Tasks.Task{`0})">
|
||||
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied task that represents the operation.</summary>
|
||||
<param name="task">The task.</param>
|
||||
<exception cref="T:System.ArgumentNullException">The <paramref name="task">task</paramref> argument is null.</exception>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(`0)">
|
||||
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied result of a successful operation.</summary>
|
||||
<param name="result">The result.</param>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.AsTask">
|
||||
<summary>Retrieves a <see cref="Task{TResult}"></see> object that represents this <see cref="ValueTask{TResult}"></see>.</summary>
|
||||
<returns>The <see cref="Task{TResult}"></see> object that is wrapped in this <see cref="ValueTask{TResult}"></see> if one exists, or a new <see cref="Task{TResult}"></see> object that represents the result.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.ConfigureAwait(System.Boolean)">
|
||||
<summary>Configures an awaiter for this value.</summary>
|
||||
<param name="continueOnCapturedContext">true to attempt to marshal the continuation back to the captured context; otherwise, false.</param>
|
||||
<returns>The configured awaiter.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.CreateAsyncMethodBuilder">
|
||||
<summary>Creates a method builder for use with an async method.</summary>
|
||||
<returns>The created builder.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Object)">
|
||||
<summary>Determines whether the specified object is equal to the current object.</summary>
|
||||
<param name="obj">The object to compare with the current object.</param>
|
||||
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Threading.Tasks.ValueTask{`0})">
|
||||
<summary>Determines whether the specified <see cref="ValueTask{TResult}"></see> object is equal to the current <see cref="ValueTask{TResult}"></see> object.</summary>
|
||||
<param name="other">The object to compare with the current object.</param>
|
||||
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.GetAwaiter">
|
||||
<summary>Creates an awaiter for this value.</summary>
|
||||
<returns>The awaiter.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.GetHashCode">
|
||||
<summary>Returns the hash code for this instance.</summary>
|
||||
<returns>The hash code for the current object.</returns>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.ValueTask`1.IsCanceled">
|
||||
<summary>Gets a value that indicates whether this object represents a canceled operation.</summary>
|
||||
<returns>true if this object represents a canceled operation; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompleted">
|
||||
<summary>Gets a value that indicates whether this object represents a completed operation.</summary>
|
||||
<returns>true if this object represents a completed operation; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompletedSuccessfully">
|
||||
<summary>Gets a value that indicates whether this object represents a successfully completed operation.</summary>
|
||||
<returns>true if this object represents a successfully completed operation; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.ValueTask`1.IsFaulted">
|
||||
<summary>Gets a value that indicates whether this object represents a failed operation.</summary>
|
||||
<returns>true if this object represents a failed operation; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.op_Equality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
|
||||
<summary>Compares two values for equality.</summary>
|
||||
<param name="left">The first value to compare.</param>
|
||||
<param name="right">The second value to compare.</param>
|
||||
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are equal; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.op_Inequality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
|
||||
<summary>Determines whether two <see cref="ValueTask{TResult}"></see> values are unequal.</summary>
|
||||
<param name="left">The first value to compare.</param>
|
||||
<param name="right">The seconed value to compare.</param>
|
||||
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are not equal; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Threading.Tasks.ValueTask`1.Result">
|
||||
<summary>Gets the result.</summary>
|
||||
<returns>The result.</returns>
|
||||
</member>
|
||||
<member name="M:System.Threading.Tasks.ValueTask`1.ToString">
|
||||
<summary>Returns a string that represents the current object.</summary>
|
||||
<returns>A string that represents the current object.</returns>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute">
|
||||
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.#ctor(System.Type)">
|
||||
<param name="builderType"></param>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.BuilderType">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1">
|
||||
<typeparam name="TResult"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitOnCompleted``2(``0@,``1@)">
|
||||
<param name="awaiter"></param>
|
||||
<param name="stateMachine"></param>
|
||||
<typeparam name="TAwaiter"></typeparam>
|
||||
<typeparam name="TStateMachine"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitUnsafeOnCompleted``2(``0@,``1@)">
|
||||
<param name="awaiter"></param>
|
||||
<param name="stateMachine"></param>
|
||||
<typeparam name="TAwaiter"></typeparam>
|
||||
<typeparam name="TStateMachine"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Create">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetException(System.Exception)">
|
||||
<param name="exception"></param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetResult(`0)">
|
||||
<param name="result"></param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)">
|
||||
<param name="stateMachine"></param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Start``1(``0@)">
|
||||
<param name="stateMachine"></param>
|
||||
<typeparam name="TStateMachine"></typeparam>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Task">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter">
|
||||
<typeparam name="TResult"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.IsCompleted">
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.OnCompleted(System.Action)">
|
||||
<param name="continuation"></param>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.UnsafeOnCompleted(System.Action)">
|
||||
<param name="continuation"></param>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1">
|
||||
<typeparam name="TResult"></typeparam>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.GetAwaiter">
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
8
LeatherProject/GeBoShi/bin/Debug/System.ValueTuple.xml
Normal file
8
LeatherProject/GeBoShi/bin/Debug/System.ValueTuple.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>System.ValueTuple</name>
|
||||
</assembly>
|
||||
<members>
|
||||
</members>
|
||||
</doc>
|
3
LeatherProject/GeBoShi/bin/Debug/SystemDefault.ini
Normal file
3
LeatherProject/GeBoShi/bin/Debug/SystemDefault.ini
Normal file
@ -0,0 +1,3 @@
|
||||
#SystemDefault.ini
|
||||
[SystemDefault]
|
||||
MySqlCode=123456
|
BIN
LeatherProject/GeBoShi/obj/Debug/GeBoShi.Main.resources
Normal file
BIN
LeatherProject/GeBoShi/obj/Debug/GeBoShi.Main.resources
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,83 @@
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\GeBoShi.exe.config
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\GeBoShi.exe
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\GeBoShi.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\CSkin.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MaiMuControl.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\S7.Net.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MQTTnet.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ImageBox.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\halcondotnet.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\OpenCvSharp.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Yolo5.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Newtonsoft.Json.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\BouncyCastle.Crypto.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\SqlSugar.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MySql.Data.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MySqlBackup.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ControllerDllCSharp.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Automation.BDaq4.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MvCameraControl.Net.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\IKapC.NET.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\IKapBoardClassLibrary.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\AdvMotAPI.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Memory.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Buffers.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\OpenCvSharp.Extensions.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Google.Protobuf.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ZstdSharp.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\K4os.Compression.LZ4.Streams.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Threading.Tasks.Extensions.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Numerics.Vectors.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\K4os.Compression.LZ4.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.IO.Pipelines.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\K4os.Hash.xxHash.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MaiMuControl.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MaiMuControl.dll.config
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\S7.Net.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MQTTnet.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ImageBox.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ImageBox.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ImageBox.dll.config
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\OpenCvSharp.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Newtonsoft.Json.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\BouncyCastle.Crypto.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MySql.Data.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Memory.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Buffers.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Google.Protobuf.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Google.Protobuf.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\K4os.Compression.LZ4.Streams.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Threading.Tasks.Extensions.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Numerics.Vectors.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\K4os.Compression.LZ4.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.IO.Pipelines.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\K4os.Hash.xxHash.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.csproj.AssemblyReference.cache
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.csproj.SuggestedBindingRedirects.cache
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.exe.config
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.Main.resources
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.Properties.Resources.resources
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.csproj.GenerateResource.cache
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.csproj.CoreCompileInputs.cache
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.csproj.CopyComplete
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.exe
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\BarTenderPrint.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\HZH_Controls.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Service.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Seagull.BarTender.Print.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Models.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Seagull.Services.PrintScheduler.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Seagull.Services.PrintScheduler.Contracts.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\BarTenderPrint.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Service.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Service.dll.config
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Models.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.UI.Load.InitFrm.resources
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Drawing.Common.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.ValueTuple.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\OpenCvSharp.Extensions.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.ValueTuple.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.UI.SysSet.SysSetFrm.resources
|
38
LeatherProject/GeBoShi/obj/Debug/GeBoShi.exe.config
Normal file
38
LeatherProject/GeBoShi/obj/Debug/GeBoShi.exe.config
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.0.102.0" newVersion="1.0.102.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
11
LeatherProject/GeBoShi/packages.config
Normal file
11
LeatherProject/GeBoShi/packages.config
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="OpenCvSharp4" version="4.8.0.20230708" targetFramework="net48" />
|
||||
<package id="OpenCvSharp4.Extensions" version="4.7.0.20230115" targetFramework="net48" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
|
||||
<package id="System.Drawing.Common" version="5.0.3" targetFramework="net48" />
|
||||
<package id="System.Memory" version="4.5.5" targetFramework="net48" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
|
||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net48" />
|
||||
</packages>
|
@ -421,7 +421,7 @@ namespace LeatherApp.Device
|
||||
for (int i = 0; i < cut_count; i++)
|
||||
{
|
||||
liStep = i * 100;
|
||||
task.resultInfo += $"第 {i}/{cut_count} 张小图(大图索引{task.photoIndex}): 缺陷数 = {task.output_num[i]}\n";
|
||||
//task.resultInfo += $"第 {i}/{cut_count} 张小图(大图索引{task.photoIndex}): 缺陷数 = {task.output_num[i]}\n";
|
||||
//task.resultInfo +=$"大图({task.tag})[{task.bmp.Width}*{task.bmp.Height}],第 {i + 1}/{cut_count} 张小图[{task.bmps_cut[i].Width}*{task.bmps_cut[i].Height}]: 瑕疵output_num = {output_num[i]}\n";
|
||||
#region 检测信息汇总
|
||||
for (int j = 0; j < task.output_num[i]; j++)//缺陷数
|
||||
@ -445,7 +445,7 @@ namespace LeatherApp.Device
|
||||
var cmW = Math.Round(w * task.widthRatio / Config.cm2px_x, 2);
|
||||
var cmH = Math.Round(h * task.widthRatio / Config.cm2px_y, 2);
|
||||
// 打印输出信息
|
||||
task.resultInfo += $"----{i}----col:{i % colNum}/{colNum} row:{i / colNum}/{colNum}-----------\n目标:{j + 1} 类别ID:{classId} 置信度:{confidence} 对比度:{contrast} 坐标:({x},{y})-({x + w},{y + h}) 宽高:w={w},h={h}; \n";
|
||||
//task.resultInfo += $"----{i}----col:{i % colNum}/{colNum} row:{i / colNum}/{colNum}-----------\n目标:{j + 1} 类别ID:{classId} 置信度:{confidence} 对比度:{contrast} 坐标:({x},{y})-({x + w},{y + h}) 宽高:w={w},h={h}; \n";
|
||||
|
||||
DefectLabelInfoList.Add(new DefectLabelInfo()
|
||||
{
|
||||
@ -585,18 +585,21 @@ namespace LeatherApp.Device
|
||||
#region 结果过滤
|
||||
//降序排序,先得到是否有接头检出
|
||||
List<DefectLabelInfo> DefectLabelInfoListByClassID = DefectLabelInfoList.OrderByDescending(t => t.classId).ToList();//降序
|
||||
for (int q = 0; q < DefectLabelInfoList.Count; q++)
|
||||
for (int q = 0; q < DefectLabelInfoListByClassID.Count; q++)
|
||||
{
|
||||
//是否满足此产品标准
|
||||
if (task.qualifiedLimitList != null && task.qualifiedLimitList.Count > 0)
|
||||
{
|
||||
qualifiedLimit = task.qualifiedLimitList.FirstOrDefault(m => m.Code == Config.getDefectCode(DefectLabelInfoList[q].classId));
|
||||
qualifiedLimit = task.qualifiedLimitList.FirstOrDefault(m => m.Code == Config.getDefectCode(DefectLabelInfoListByClassID[q].classId));
|
||||
if (qualifiedLimit != null)
|
||||
{
|
||||
// 打印输出信息
|
||||
task.resultInfo += $"----{DefectLabelInfoListByClassID[q].i}----col:{DefectLabelInfoListByClassID[q].i % colNum}/{colNum} row:{DefectLabelInfoListByClassID[q].i / colNum}/{colNum}-----------\n目标:{DefectLabelInfoListByClassID[q].j + 1} 类别ID:{DefectLabelInfoListByClassID[q].classId} 置信度:{DefectLabelInfoListByClassID[q].confidence} 对比度:{DefectLabelInfoListByClassID[q].contrast}\n";
|
||||
|
||||
//if ((qualifiedLimit.ZXD > 0 && qualifiedLimit.ZXD > confidence)
|
||||
// || (qualifiedLimit.ContrastTop + qualifiedLimit.ContrastLower > 0 && x> qualifiedLimit.ContrastLower && x < qualifiedLimit.ContrastTop)
|
||||
// || (qualifiedLimit.Area > 0 && qualifiedLimit.Area > cmW * cmH))
|
||||
if (DefectLabelInfoList[q].confidence <= qualifiedLimit.ZXD)//confidence > qualifiedLimit.ZXD 是瑕疵 才继续判断下面的两个条件
|
||||
if (DefectLabelInfoListByClassID[q].confidence <= qualifiedLimit.ZXD)//confidence > qualifiedLimit.ZXD 是瑕疵 才继续判断下面的两个条件
|
||||
{
|
||||
task.resultInfo += $" 置信度不满足此产品瑕疵标准,跳过! \n";
|
||||
continue;
|
||||
@ -607,8 +610,8 @@ namespace LeatherApp.Device
|
||||
if (qualifiedLimit.IsOR)
|
||||
{
|
||||
if (!(
|
||||
(qualifiedLimit.Area <= 0 || DefectLabelInfoList[q].cmW * DefectLabelInfoList[q].cmH >= qualifiedLimit.Area) ||
|
||||
(ContrastTotal <= 0 || (DefectLabelInfoList[q].contrast < qualifiedLimit.ContrastLower || DefectLabelInfoList[q].contrast > qualifiedLimit.ContrastTop))))
|
||||
(qualifiedLimit.Area <= 0 || DefectLabelInfoListByClassID[q].cmW * DefectLabelInfoListByClassID[q].cmH >= qualifiedLimit.Area) ||
|
||||
(ContrastTotal <= 0 || (DefectLabelInfoListByClassID[q].contrast < qualifiedLimit.ContrastLower || DefectLabelInfoListByClassID[q].contrast > qualifiedLimit.ContrastTop))))
|
||||
{
|
||||
task.resultInfo += $" 不满足此产品瑕疵标准,跳过! \n";
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"判断不是瑕疵:类别ID:{classId}; 置信度({confidence},[{qualifiedLimit.ZXD}]); isOr({qualifiedLimit.IsOR}); 面积({cmW * cmH},[{ qualifiedLimit.Area}]); 对比度({contrast},[{qualifiedLimit.ContrastLower}-{qualifiedLimit.ContrastTop}])");
|
||||
@ -618,17 +621,17 @@ namespace LeatherApp.Device
|
||||
else
|
||||
{
|
||||
if (!(
|
||||
(qualifiedLimit.Area <= 0 || DefectLabelInfoList[q].cmW * DefectLabelInfoList[q].cmH >= qualifiedLimit.Area) &&
|
||||
(ContrastTotal <= 0 || (DefectLabelInfoList[q].contrast < qualifiedLimit.ContrastLower || DefectLabelInfoList[q].contrast > qualifiedLimit.ContrastTop))))
|
||||
(qualifiedLimit.Area <= 0 || DefectLabelInfoListByClassID[q].cmW * DefectLabelInfoListByClassID[q].cmH >= qualifiedLimit.Area) &&
|
||||
(ContrastTotal <= 0 || (DefectLabelInfoListByClassID[q].contrast < qualifiedLimit.ContrastLower || DefectLabelInfoListByClassID[q].contrast > qualifiedLimit.ContrastTop))))
|
||||
{
|
||||
task.resultInfo += $" 不满足此产品瑕疵标准,跳过! \n";
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"判断不是瑕疵:类别ID:{classId}; 置信度({confidence},[{qualifiedLimit.ZXD}]); isOr({qualifiedLimit.IsOR}); 面积({cmW * cmH},[{ qualifiedLimit.Area}]); 对比度({contrast},[{qualifiedLimit.ContrastLower}-{qualifiedLimit.ContrastTop}])");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (Config.getDefectCode(DefectLabelInfoList[q].classId) == "jietou")
|
||||
if (Config.getDefectCode(DefectLabelInfoListByClassID[q].classId) == "jietou")
|
||||
haveJieTou = true;
|
||||
if(haveJieTou && (Config.getDefectCode(DefectLabelInfoList[q].classId) == "hengdang"))
|
||||
if(haveJieTou && (Config.getDefectCode(DefectLabelInfoListByClassID[q].classId) == "hengdang"))
|
||||
{
|
||||
task.resultInfo += $" 判断为接头处横档,跳过! \n";
|
||||
continue;
|
||||
@ -638,31 +641,31 @@ namespace LeatherApp.Device
|
||||
}
|
||||
liStep++;//1
|
||||
//打标
|
||||
var point1 = new OpenCvSharp.Point((DefectLabelInfoList[q].i % colNum) * image_width + DefectLabelInfoList[q].x, (DefectLabelInfoList[q].i / colNum) * image_hight + DefectLabelInfoList[q].y);
|
||||
var point2 = new OpenCvSharp.Point(point1.X + DefectLabelInfoList[q].w, point1.Y + DefectLabelInfoList[q].h);
|
||||
var point1 = new OpenCvSharp.Point((DefectLabelInfoListByClassID[q].i % colNum) * image_width + DefectLabelInfoListByClassID[q].x, (DefectLabelInfoListByClassID[q].i / colNum) * image_hight + DefectLabelInfoListByClassID[q].y);
|
||||
var point2 = new OpenCvSharp.Point(point1.X + DefectLabelInfoListByClassID[q].w, point1.Y + DefectLabelInfoListByClassID[q].h);
|
||||
liStep++;//2
|
||||
task.resultInfo += $" 转换到大图坐标(px):p1={point1.X},{point1.Y}; p2={point2.X},{point2.Y}\n";
|
||||
//task.resultInfo += $" 转换到大图坐标(px):p1={point1.X},{point1.Y}; p2={point2.X},{point2.Y}\n";
|
||||
Cv2.Rectangle(task.bmpTag, point1, point2, new Scalar(0.0, 0.0, 255.0), 1);//画打标点
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"保存第 {count} 行缺陷信息;");
|
||||
var cmX = Math.Round(point1.X * task.widthRatio / Config.cm2px_x, 2);
|
||||
var cmY = Math.Round((task.bmp.Height - point1.Y - DefectLabelInfoList[q].h) * task.widthRatio / Config.cm2px_y, 2);//外面计Y从右下角为原点
|
||||
var cmY = Math.Round((task.bmp.Height - point1.Y - DefectLabelInfoListByClassID[q].h) * task.widthRatio / Config.cm2px_y, 2);//外面计Y从右下角为原点
|
||||
liStep++;//3
|
||||
task.resultInfo += $" 转换到大图坐标(cm)[widthRatio={task.widthRatio}]:x={cmX},y={cmY}; w={DefectLabelInfoList[q].cmW},h={DefectLabelInfoList[q].cmH}\n";
|
||||
task.excelTable.Rows.Add($"{task.photoIndex}", cmX, cmY, DefectLabelInfoList[q].cmW, DefectLabelInfoList[q].cmH, DefectLabelInfoList[q].j + 1, DefectLabelInfoList[q].classId, DefectLabelInfoList[q].confidence, DefectLabelInfoList[q].contrast);
|
||||
//task.resultInfo += $" 转换到大图坐标(cm)[widthRatio={task.widthRatio}]:x={cmX},y={cmY}; w={DefectLabelInfoList[q].cmW},h={DefectLabelInfoList[q].cmH}\n";
|
||||
task.excelTable.Rows.Add($"{task.photoIndex}", cmX, cmY, DefectLabelInfoListByClassID[q].cmW, DefectLabelInfoListByClassID[q].cmH, DefectLabelInfoListByClassID[q].j + 1, DefectLabelInfoListByClassID[q].classId, DefectLabelInfoListByClassID[q].confidence, DefectLabelInfoListByClassID[q].contrast);
|
||||
|
||||
liStep++;//4
|
||||
//切缺陷小图
|
||||
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"保存第 {count} 个缺陷小图;");
|
||||
int left, top, decX, decY;
|
||||
decX = (DefectLabelInfoList[q].w > 236 ? 20 : 256 - DefectLabelInfoList[q].w) / 2;
|
||||
decY = (DefectLabelInfoList[q].h > 236 ? 20 : 256 - DefectLabelInfoList[q].h) / 2;
|
||||
decX = (DefectLabelInfoListByClassID[q].w > 236 ? 20 : 256 - DefectLabelInfoListByClassID[q].w) / 2;
|
||||
decY = (DefectLabelInfoListByClassID[q].h > 236 ? 20 : 256 - DefectLabelInfoListByClassID[q].h) / 2;
|
||||
left = point1.X - decX;
|
||||
top = point1.Y - decY;
|
||||
if (left < 0) left = 0;
|
||||
if (top < 0) top = 0;
|
||||
|
||||
int width = DefectLabelInfoList[q].w + decX * 2;
|
||||
int height = DefectLabelInfoList[q].h + decY * 2;
|
||||
int width = DefectLabelInfoListByClassID[q].w + decX * 2;
|
||||
int height = DefectLabelInfoListByClassID[q].h + decY * 2;
|
||||
if (left + width > task.bmp.Width - 1) width = task.bmp.Width - left - 1;
|
||||
if (top + height > task.bmp.Height - 1) height = task.bmp.Height - top - 1;
|
||||
liStep++;//5
|
||||
@ -670,8 +673,8 @@ namespace LeatherApp.Device
|
||||
liStep++;//6
|
||||
if (height < 1 || width < 1)
|
||||
{
|
||||
task.resultInfo += $" 打标到大图坐标Rect(px):left={left},top={top}; width={width},height={height}\n";
|
||||
task.resultInfo += $" test point1.Y={point1.Y},h={DefectLabelInfoList[q].h}; top={top},mat.Height={task.bmp.Height}\n================\n";
|
||||
//task.resultInfo += $" 打标到大图坐标Rect(px):left={left},top={top}; width={width},height={height}\n";
|
||||
//task.resultInfo += $" test point1.Y={point1.Y},h={DefectLabelInfoList[q].h}; top={top},mat.Height={task.bmp.Height}\n================\n";
|
||||
WarningEvent?.Invoke(DateTime.Now, WarningEnum.Normal, task.resultInfo);
|
||||
}
|
||||
|
||||
|
@ -118,8 +118,9 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="textBox1.Text" xml:space="preserve">
|
||||
<value>v1.0.2.4 (2024-03-15)
|
||||
<value>v1.0.2.4 (2024-03-15:03-19)
|
||||
1、更新车用革情况,接头处过滤横档缺陷;
|
||||
2、更新无瑕疵时报错问题;
|
||||
v1.0.2.3 (2024-02-8)
|
||||
1、更新报表导出高度单位cm;
|
||||
2、更新还在处理过程中,按停止按钮崩溃问题;
|
||||
|
454
LeatherProject/LeatherApp/Page/FHome.Designer.cs
generated
454
LeatherProject/LeatherApp/Page/FHome.Designer.cs
generated
@ -58,10 +58,36 @@
|
||||
this.btnEnd = new Sunny.UI.UISymbolButton();
|
||||
this.btnStart = new Sunny.UI.UISymbolButton();
|
||||
this.uiTitlePanel2 = new Sunny.UI.UITitlePanel();
|
||||
this.ucColorListDefect = new LeatherApp.UIExtend.UCColorList();
|
||||
this.lineChartDefect = new Sunny.UI.UILineChart();
|
||||
this.uiTitlePanel3 = new Sunny.UI.UITitlePanel();
|
||||
this.uiDataGridView1 = new Sunny.UI.UIDataGridView();
|
||||
this.uiMiniPagination1 = new Sunny.UI.UIMiniPagination();
|
||||
this.uiTitlePanel4 = new Sunny.UI.UITitlePanel();
|
||||
this.lineChartFaceWidth = new Sunny.UI.UILineChart();
|
||||
this.uiTitlePanel5 = new Sunny.UI.UITitlePanel();
|
||||
this.lstboxLog = new Sunny.UI.UIListBox();
|
||||
this.uiTitlePanel6 = new Sunny.UI.UITitlePanel();
|
||||
this.uiPanel3 = new Sunny.UI.UIPanel();
|
||||
this.pnlScannerImg = new Sunny.UI.UITitlePanel();
|
||||
this.picScanner2 = new System.Windows.Forms.PictureBox();
|
||||
this.picScanner1 = new System.Windows.Forms.PictureBox();
|
||||
this.tcbarLightValue = new Sunny.UI.UITrackBar();
|
||||
this.uiTitlePanel7 = new Sunny.UI.UITitlePanel();
|
||||
this.lblScanner2Cache = new Sunny.UI.UILabel();
|
||||
this.uiLabel13 = new Sunny.UI.UILabel();
|
||||
this.lblScanner1Cache = new Sunny.UI.UILabel();
|
||||
this.uiLabel11 = new Sunny.UI.UILabel();
|
||||
this.lblDefectQueue2 = new Sunny.UI.UILabel();
|
||||
this.lblDefectQueue1 = new Sunny.UI.UILabel();
|
||||
this.lblDefectQueue0 = new Sunny.UI.UILabel();
|
||||
this.lblWaitImageCount = new Sunny.UI.UILabel();
|
||||
this.swcDefectPauseForUser = new Sunny.UI.UISwitch();
|
||||
this.uiLabel9 = new Sunny.UI.UILabel();
|
||||
this.uiLabel8 = new Sunny.UI.UILabel();
|
||||
this.uiLabel7 = new Sunny.UI.UILabel();
|
||||
this.uiLabel6 = new Sunny.UI.UILabel();
|
||||
this.picDefectImage = new LeatherApp.UIExtend.UCImageView();
|
||||
this.ucColorListDefect = new LeatherApp.UIExtend.UCColorList();
|
||||
this.colUid = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colCode = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colIndex = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
@ -73,32 +99,6 @@
|
||||
this.colArea = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colZXD = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colTarget = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.uiMiniPagination1 = new Sunny.UI.UIMiniPagination();
|
||||
this.uiTitlePanel4 = new Sunny.UI.UITitlePanel();
|
||||
this.lineChartFaceWidth = new Sunny.UI.UILineChart();
|
||||
this.uiTitlePanel5 = new Sunny.UI.UITitlePanel();
|
||||
this.lstboxLog = new Sunny.UI.UIListBox();
|
||||
this.uiTitlePanel6 = new Sunny.UI.UITitlePanel();
|
||||
this.uiPanel3 = new Sunny.UI.UIPanel();
|
||||
this.picDefectImage = new LeatherApp.UIExtend.UCImageView();
|
||||
this.pnlScannerImg = new Sunny.UI.UITitlePanel();
|
||||
this.picScanner2 = new System.Windows.Forms.PictureBox();
|
||||
this.picScanner1 = new System.Windows.Forms.PictureBox();
|
||||
this.tcbarLightValue = new Sunny.UI.UITrackBar();
|
||||
this.uiTitlePanel7 = new Sunny.UI.UITitlePanel();
|
||||
this.lblDefectQueue2 = new Sunny.UI.UILabel();
|
||||
this.lblDefectQueue1 = new Sunny.UI.UILabel();
|
||||
this.lblDefectQueue0 = new Sunny.UI.UILabel();
|
||||
this.lblWaitImageCount = new Sunny.UI.UILabel();
|
||||
this.swcDefectPauseForUser = new Sunny.UI.UISwitch();
|
||||
this.uiLabel9 = new Sunny.UI.UILabel();
|
||||
this.uiLabel8 = new Sunny.UI.UILabel();
|
||||
this.uiLabel7 = new Sunny.UI.UILabel();
|
||||
this.uiLabel6 = new Sunny.UI.UILabel();
|
||||
this.lblScanner1Cache = new Sunny.UI.UILabel();
|
||||
this.uiLabel11 = new Sunny.UI.UILabel();
|
||||
this.lblScanner2Cache = new Sunny.UI.UILabel();
|
||||
this.uiLabel13 = new Sunny.UI.UILabel();
|
||||
this.uiPanel1.SuspendLayout();
|
||||
this.uiTitlePanel1.SuspendLayout();
|
||||
this.uiPanel2.SuspendLayout();
|
||||
@ -227,7 +227,7 @@
|
||||
this.uiLabel5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel5.Location = new System.Drawing.Point(8, 205);
|
||||
this.uiLabel5.Name = "uiLabel5";
|
||||
this.uiLabel5.Size = new System.Drawing.Size(110, 31);
|
||||
this.uiLabel5.Size = new System.Drawing.Size(74, 21);
|
||||
this.uiLabel5.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel5.StyleCustomMode = true;
|
||||
this.uiLabel5.TabIndex = 0;
|
||||
@ -270,7 +270,7 @@
|
||||
this.uiLabel4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel4.Location = new System.Drawing.Point(8, 166);
|
||||
this.uiLabel4.Name = "uiLabel4";
|
||||
this.uiLabel4.Size = new System.Drawing.Size(110, 31);
|
||||
this.uiLabel4.Size = new System.Drawing.Size(74, 21);
|
||||
this.uiLabel4.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel4.StyleCustomMode = true;
|
||||
this.uiLabel4.TabIndex = 0;
|
||||
@ -343,7 +343,7 @@
|
||||
this.uiLabel3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel3.Location = new System.Drawing.Point(8, 127);
|
||||
this.uiLabel3.Name = "uiLabel3";
|
||||
this.uiLabel3.Size = new System.Drawing.Size(110, 31);
|
||||
this.uiLabel3.Size = new System.Drawing.Size(74, 21);
|
||||
this.uiLabel3.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel3.StyleCustomMode = true;
|
||||
this.uiLabel3.TabIndex = 0;
|
||||
@ -357,7 +357,7 @@
|
||||
this.uiLabel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel2.Location = new System.Drawing.Point(8, 88);
|
||||
this.uiLabel2.Name = "uiLabel2";
|
||||
this.uiLabel2.Size = new System.Drawing.Size(110, 31);
|
||||
this.uiLabel2.Size = new System.Drawing.Size(74, 21);
|
||||
this.uiLabel2.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel2.StyleCustomMode = true;
|
||||
this.uiLabel2.TabIndex = 0;
|
||||
@ -404,7 +404,7 @@
|
||||
this.uiLabel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel1.Location = new System.Drawing.Point(8, 49);
|
||||
this.uiLabel1.Name = "uiLabel1";
|
||||
this.uiLabel1.Size = new System.Drawing.Size(110, 31);
|
||||
this.uiLabel1.Size = new System.Drawing.Size(74, 21);
|
||||
this.uiLabel1.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel1.StyleCustomMode = true;
|
||||
this.uiLabel1.TabIndex = 0;
|
||||
@ -631,29 +631,6 @@
|
||||
this.uiTitlePanel2.TitleColor = System.Drawing.Color.White;
|
||||
this.uiTitlePanel2.TitleForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
//
|
||||
// ucColorListDefect
|
||||
//
|
||||
this.ucColorListDefect.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.ucColorListDefect.ColorChanged = null;
|
||||
this.ucColorListDefect.FillColor = System.Drawing.Color.White;
|
||||
this.ucColorListDefect.FillColor2 = System.Drawing.Color.White;
|
||||
this.ucColorListDefect.FillDisableColor = System.Drawing.Color.White;
|
||||
this.ucColorListDefect.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.ucColorListDefect.Location = new System.Drawing.Point(1, 38);
|
||||
this.ucColorListDefect.MinimumSize = new System.Drawing.Size(1, 1);
|
||||
this.ucColorListDefect.Name = "ucColorListDefect";
|
||||
this.ucColorListDefect.RadiusSides = Sunny.UI.UICornerRadiusSides.None;
|
||||
this.ucColorListDefect.RectColor = System.Drawing.Color.White;
|
||||
this.ucColorListDefect.RectDisableColor = System.Drawing.Color.White;
|
||||
this.ucColorListDefect.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom;
|
||||
this.ucColorListDefect.Size = new System.Drawing.Size(121, 42);
|
||||
this.ucColorListDefect.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.ucColorListDefect.StyleCustomMode = true;
|
||||
this.ucColorListDefect.TabIndex = 1;
|
||||
this.ucColorListDefect.Text = "ucColorList1";
|
||||
this.ucColorListDefect.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// lineChartDefect
|
||||
//
|
||||
this.lineChartDefect.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
@ -735,7 +712,7 @@
|
||||
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle6.BackColor = System.Drawing.Color.White;
|
||||
dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
dataGridViewCellStyle6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
|
||||
dataGridViewCellStyle6.ForeColor = System.Drawing.Color.White;
|
||||
dataGridViewCellStyle6.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(242)))), ((int)(((byte)(238)))));
|
||||
dataGridViewCellStyle6.SelectionForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
|
||||
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
||||
@ -775,107 +752,6 @@
|
||||
this.uiDataGridView1.StyleCustomMode = true;
|
||||
this.uiDataGridView1.TabIndex = 1;
|
||||
//
|
||||
// colUid
|
||||
//
|
||||
this.colUid.HeaderText = "uid";
|
||||
this.colUid.MinimumWidth = 8;
|
||||
this.colUid.Name = "colUid";
|
||||
this.colUid.ReadOnly = true;
|
||||
this.colUid.Visible = false;
|
||||
this.colUid.Width = 150;
|
||||
//
|
||||
// colCode
|
||||
//
|
||||
this.colCode.HeaderText = "Code";
|
||||
this.colCode.MinimumWidth = 8;
|
||||
this.colCode.Name = "colCode";
|
||||
this.colCode.Visible = false;
|
||||
this.colCode.Width = 150;
|
||||
//
|
||||
// colIndex
|
||||
//
|
||||
this.colIndex.DataPropertyName = "Index";
|
||||
this.colIndex.HeaderText = "图号";
|
||||
this.colIndex.MinimumWidth = 8;
|
||||
this.colIndex.Name = "colIndex";
|
||||
this.colIndex.Width = 50;
|
||||
//
|
||||
// colDefectName
|
||||
//
|
||||
this.colDefectName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||
this.colDefectName.DataPropertyName = "Name";
|
||||
this.colDefectName.HeaderText = "名称";
|
||||
this.colDefectName.MinimumWidth = 50;
|
||||
this.colDefectName.Name = "colDefectName";
|
||||
this.colDefectName.ReadOnly = true;
|
||||
//
|
||||
// colX
|
||||
//
|
||||
this.colX.DataPropertyName = "X";
|
||||
dataGridViewCellStyle3.Format = "N1";
|
||||
dataGridViewCellStyle3.NullValue = null;
|
||||
this.colX.DefaultCellStyle = dataGridViewCellStyle3;
|
||||
this.colX.HeaderText = "X(cm)";
|
||||
this.colX.MinimumWidth = 8;
|
||||
this.colX.Name = "colX";
|
||||
this.colX.ReadOnly = true;
|
||||
this.colX.Width = 80;
|
||||
//
|
||||
// colY
|
||||
//
|
||||
this.colY.DataPropertyName = "Y";
|
||||
dataGridViewCellStyle4.Format = "N2";
|
||||
dataGridViewCellStyle4.NullValue = null;
|
||||
this.colY.DefaultCellStyle = dataGridViewCellStyle4;
|
||||
this.colY.HeaderText = "Y(米)";
|
||||
this.colY.MinimumWidth = 8;
|
||||
this.colY.Name = "colY";
|
||||
this.colY.ReadOnly = true;
|
||||
this.colY.Width = 80;
|
||||
//
|
||||
// colW
|
||||
//
|
||||
this.colW.HeaderText = "宽(cm)";
|
||||
this.colW.MinimumWidth = 8;
|
||||
this.colW.Name = "colW";
|
||||
this.colW.Width = 70;
|
||||
//
|
||||
// colH
|
||||
//
|
||||
this.colH.HeaderText = "高(cm)";
|
||||
this.colH.MinimumWidth = 8;
|
||||
this.colH.Name = "colH";
|
||||
this.colH.Width = 70;
|
||||
//
|
||||
// colArea
|
||||
//
|
||||
dataGridViewCellStyle5.Format = "N2";
|
||||
dataGridViewCellStyle5.NullValue = null;
|
||||
this.colArea.DefaultCellStyle = dataGridViewCellStyle5;
|
||||
this.colArea.HeaderText = "面积(cm)";
|
||||
this.colArea.MinimumWidth = 8;
|
||||
this.colArea.Name = "colArea";
|
||||
this.colArea.ReadOnly = true;
|
||||
this.colArea.Width = 80;
|
||||
//
|
||||
// colZXD
|
||||
//
|
||||
this.colZXD.DataPropertyName = "ZXD";
|
||||
this.colZXD.HeaderText = "置信度";
|
||||
this.colZXD.MinimumWidth = 8;
|
||||
this.colZXD.Name = "colZXD";
|
||||
this.colZXD.ReadOnly = true;
|
||||
this.colZXD.Width = 67;
|
||||
//
|
||||
// colTarget
|
||||
//
|
||||
this.colTarget.DataPropertyName = "Contrast";
|
||||
this.colTarget.HeaderText = "对比度";
|
||||
this.colTarget.MinimumWidth = 8;
|
||||
this.colTarget.Name = "colTarget";
|
||||
this.colTarget.ReadOnly = true;
|
||||
this.colTarget.Width = 67;
|
||||
//
|
||||
// uiMiniPagination1
|
||||
//
|
||||
this.uiMiniPagination1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
@ -1045,15 +921,6 @@
|
||||
this.uiPanel3.Text = null;
|
||||
this.uiPanel3.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// picDefectImage
|
||||
//
|
||||
this.picDefectImage.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.picDefectImage.Location = new System.Drawing.Point(0, 0);
|
||||
this.picDefectImage.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.picDefectImage.Name = "picDefectImage";
|
||||
this.picDefectImage.Size = new System.Drawing.Size(350, 226);
|
||||
this.picDefectImage.TabIndex = 1;
|
||||
//
|
||||
// pnlScannerImg
|
||||
//
|
||||
this.pnlScannerImg.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
@ -1162,6 +1029,62 @@
|
||||
this.uiTitlePanel7.TitleColor = System.Drawing.Color.White;
|
||||
this.uiTitlePanel7.TitleForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
//
|
||||
// lblScanner2Cache
|
||||
//
|
||||
this.lblScanner2Cache.AutoSize = true;
|
||||
this.lblScanner2Cache.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.lblScanner2Cache.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.lblScanner2Cache.Location = new System.Drawing.Point(323, 134);
|
||||
this.lblScanner2Cache.Name = "lblScanner2Cache";
|
||||
this.lblScanner2Cache.Size = new System.Drawing.Size(19, 21);
|
||||
this.lblScanner2Cache.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.lblScanner2Cache.StyleCustomMode = true;
|
||||
this.lblScanner2Cache.TabIndex = 18;
|
||||
this.lblScanner2Cache.Text = "0";
|
||||
this.lblScanner2Cache.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// uiLabel13
|
||||
//
|
||||
this.uiLabel13.AutoSize = true;
|
||||
this.uiLabel13.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.uiLabel13.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel13.Location = new System.Drawing.Point(190, 134);
|
||||
this.uiLabel13.Name = "uiLabel13";
|
||||
this.uiLabel13.Size = new System.Drawing.Size(99, 21);
|
||||
this.uiLabel13.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel13.StyleCustomMode = true;
|
||||
this.uiLabel13.TabIndex = 19;
|
||||
this.uiLabel13.Text = "相机2缓存:";
|
||||
this.uiLabel13.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// lblScanner1Cache
|
||||
//
|
||||
this.lblScanner1Cache.AutoSize = true;
|
||||
this.lblScanner1Cache.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.lblScanner1Cache.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.lblScanner1Cache.Location = new System.Drawing.Point(141, 134);
|
||||
this.lblScanner1Cache.Name = "lblScanner1Cache";
|
||||
this.lblScanner1Cache.Size = new System.Drawing.Size(19, 21);
|
||||
this.lblScanner1Cache.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.lblScanner1Cache.StyleCustomMode = true;
|
||||
this.lblScanner1Cache.TabIndex = 16;
|
||||
this.lblScanner1Cache.Text = "0";
|
||||
this.lblScanner1Cache.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// uiLabel11
|
||||
//
|
||||
this.uiLabel11.AutoSize = true;
|
||||
this.uiLabel11.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.uiLabel11.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel11.Location = new System.Drawing.Point(8, 134);
|
||||
this.uiLabel11.Name = "uiLabel11";
|
||||
this.uiLabel11.Size = new System.Drawing.Size(99, 21);
|
||||
this.uiLabel11.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel11.StyleCustomMode = true;
|
||||
this.uiLabel11.TabIndex = 17;
|
||||
this.uiLabel11.Text = "相机1缓存:";
|
||||
this.uiLabel11.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// lblDefectQueue2
|
||||
//
|
||||
this.lblDefectQueue2.AutoSize = true;
|
||||
@ -1169,7 +1092,7 @@
|
||||
this.lblDefectQueue2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.lblDefectQueue2.Location = new System.Drawing.Point(323, 169);
|
||||
this.lblDefectQueue2.Name = "lblDefectQueue2";
|
||||
this.lblDefectQueue2.Size = new System.Drawing.Size(28, 31);
|
||||
this.lblDefectQueue2.Size = new System.Drawing.Size(19, 21);
|
||||
this.lblDefectQueue2.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.lblDefectQueue2.StyleCustomMode = true;
|
||||
this.lblDefectQueue2.TabIndex = 0;
|
||||
@ -1183,7 +1106,7 @@
|
||||
this.lblDefectQueue1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
|
||||
this.lblDefectQueue1.Location = new System.Drawing.Point(292, 169);
|
||||
this.lblDefectQueue1.Name = "lblDefectQueue1";
|
||||
this.lblDefectQueue1.Size = new System.Drawing.Size(28, 31);
|
||||
this.lblDefectQueue1.Size = new System.Drawing.Size(19, 21);
|
||||
this.lblDefectQueue1.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.lblDefectQueue1.StyleCustomMode = true;
|
||||
this.lblDefectQueue1.TabIndex = 0;
|
||||
@ -1197,7 +1120,7 @@
|
||||
this.lblDefectQueue0.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.lblDefectQueue0.Location = new System.Drawing.Point(261, 169);
|
||||
this.lblDefectQueue0.Name = "lblDefectQueue0";
|
||||
this.lblDefectQueue0.Size = new System.Drawing.Size(28, 31);
|
||||
this.lblDefectQueue0.Size = new System.Drawing.Size(19, 21);
|
||||
this.lblDefectQueue0.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.lblDefectQueue0.StyleCustomMode = true;
|
||||
this.lblDefectQueue0.TabIndex = 0;
|
||||
@ -1211,7 +1134,7 @@
|
||||
this.lblWaitImageCount.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.lblWaitImageCount.Location = new System.Drawing.Point(117, 169);
|
||||
this.lblWaitImageCount.Name = "lblWaitImageCount";
|
||||
this.lblWaitImageCount.Size = new System.Drawing.Size(28, 31);
|
||||
this.lblWaitImageCount.Size = new System.Drawing.Size(19, 21);
|
||||
this.lblWaitImageCount.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.lblWaitImageCount.StyleCustomMode = true;
|
||||
this.lblWaitImageCount.TabIndex = 0;
|
||||
@ -1237,7 +1160,7 @@
|
||||
this.uiLabel9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel9.Location = new System.Drawing.Point(152, 169);
|
||||
this.uiLabel9.Name = "uiLabel9";
|
||||
this.uiLabel9.Size = new System.Drawing.Size(134, 31);
|
||||
this.uiLabel9.Size = new System.Drawing.Size(90, 21);
|
||||
this.uiLabel9.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel9.StyleCustomMode = true;
|
||||
this.uiLabel9.TabIndex = 0;
|
||||
@ -1251,7 +1174,7 @@
|
||||
this.uiLabel8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel8.Location = new System.Drawing.Point(8, 169);
|
||||
this.uiLabel8.Name = "uiLabel8";
|
||||
this.uiLabel8.Size = new System.Drawing.Size(134, 31);
|
||||
this.uiLabel8.Size = new System.Drawing.Size(90, 21);
|
||||
this.uiLabel8.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel8.StyleCustomMode = true;
|
||||
this.uiLabel8.TabIndex = 0;
|
||||
@ -1265,7 +1188,7 @@
|
||||
this.uiLabel7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel7.Location = new System.Drawing.Point(8, 82);
|
||||
this.uiLabel7.Name = "uiLabel7";
|
||||
this.uiLabel7.Size = new System.Drawing.Size(158, 31);
|
||||
this.uiLabel7.Size = new System.Drawing.Size(106, 21);
|
||||
this.uiLabel7.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel7.StyleCustomMode = true;
|
||||
this.uiLabel7.TabIndex = 0;
|
||||
@ -1279,68 +1202,145 @@
|
||||
this.uiLabel6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel6.Location = new System.Drawing.Point(8, 41);
|
||||
this.uiLabel6.Name = "uiLabel6";
|
||||
this.uiLabel6.Size = new System.Drawing.Size(62, 31);
|
||||
this.uiLabel6.Size = new System.Drawing.Size(42, 21);
|
||||
this.uiLabel6.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel6.StyleCustomMode = true;
|
||||
this.uiLabel6.TabIndex = 0;
|
||||
this.uiLabel6.Text = "光源";
|
||||
this.uiLabel6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// lblScanner1Cache
|
||||
// picDefectImage
|
||||
//
|
||||
this.lblScanner1Cache.AutoSize = true;
|
||||
this.lblScanner1Cache.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.lblScanner1Cache.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.lblScanner1Cache.Location = new System.Drawing.Point(141, 134);
|
||||
this.lblScanner1Cache.Name = "lblScanner1Cache";
|
||||
this.lblScanner1Cache.Size = new System.Drawing.Size(28, 31);
|
||||
this.lblScanner1Cache.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.lblScanner1Cache.StyleCustomMode = true;
|
||||
this.lblScanner1Cache.TabIndex = 16;
|
||||
this.lblScanner1Cache.Text = "0";
|
||||
this.lblScanner1Cache.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.picDefectImage.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.picDefectImage.Location = new System.Drawing.Point(0, 0);
|
||||
this.picDefectImage.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.picDefectImage.Name = "picDefectImage";
|
||||
this.picDefectImage.Size = new System.Drawing.Size(350, 226);
|
||||
this.picDefectImage.TabIndex = 1;
|
||||
//
|
||||
// uiLabel11
|
||||
// ucColorListDefect
|
||||
//
|
||||
this.uiLabel11.AutoSize = true;
|
||||
this.uiLabel11.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.uiLabel11.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel11.Location = new System.Drawing.Point(8, 134);
|
||||
this.uiLabel11.Name = "uiLabel11";
|
||||
this.uiLabel11.Size = new System.Drawing.Size(148, 31);
|
||||
this.uiLabel11.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel11.StyleCustomMode = true;
|
||||
this.uiLabel11.TabIndex = 17;
|
||||
this.uiLabel11.Text = "相机1缓存:";
|
||||
this.uiLabel11.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.ucColorListDefect.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.ucColorListDefect.ColorChanged = null;
|
||||
this.ucColorListDefect.FillColor = System.Drawing.Color.White;
|
||||
this.ucColorListDefect.FillColor2 = System.Drawing.Color.White;
|
||||
this.ucColorListDefect.FillDisableColor = System.Drawing.Color.White;
|
||||
this.ucColorListDefect.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.ucColorListDefect.Location = new System.Drawing.Point(1, 38);
|
||||
this.ucColorListDefect.MinimumSize = new System.Drawing.Size(1, 1);
|
||||
this.ucColorListDefect.Name = "ucColorListDefect";
|
||||
this.ucColorListDefect.RadiusSides = Sunny.UI.UICornerRadiusSides.None;
|
||||
this.ucColorListDefect.RectColor = System.Drawing.Color.White;
|
||||
this.ucColorListDefect.RectDisableColor = System.Drawing.Color.White;
|
||||
this.ucColorListDefect.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom;
|
||||
this.ucColorListDefect.Size = new System.Drawing.Size(121, 42);
|
||||
this.ucColorListDefect.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.ucColorListDefect.StyleCustomMode = true;
|
||||
this.ucColorListDefect.TabIndex = 1;
|
||||
this.ucColorListDefect.Text = "ucColorList1";
|
||||
this.ucColorListDefect.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// lblScanner2Cache
|
||||
// colUid
|
||||
//
|
||||
this.lblScanner2Cache.AutoSize = true;
|
||||
this.lblScanner2Cache.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.lblScanner2Cache.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.lblScanner2Cache.Location = new System.Drawing.Point(323, 134);
|
||||
this.lblScanner2Cache.Name = "lblScanner2Cache";
|
||||
this.lblScanner2Cache.Size = new System.Drawing.Size(28, 31);
|
||||
this.lblScanner2Cache.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.lblScanner2Cache.StyleCustomMode = true;
|
||||
this.lblScanner2Cache.TabIndex = 18;
|
||||
this.lblScanner2Cache.Text = "0";
|
||||
this.lblScanner2Cache.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.colUid.HeaderText = "uid";
|
||||
this.colUid.MinimumWidth = 8;
|
||||
this.colUid.Name = "colUid";
|
||||
this.colUid.ReadOnly = true;
|
||||
this.colUid.Visible = false;
|
||||
this.colUid.Width = 150;
|
||||
//
|
||||
// uiLabel13
|
||||
// colCode
|
||||
//
|
||||
this.uiLabel13.AutoSize = true;
|
||||
this.uiLabel13.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.uiLabel13.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
|
||||
this.uiLabel13.Location = new System.Drawing.Point(190, 134);
|
||||
this.uiLabel13.Name = "uiLabel13";
|
||||
this.uiLabel13.Size = new System.Drawing.Size(148, 31);
|
||||
this.uiLabel13.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.uiLabel13.StyleCustomMode = true;
|
||||
this.uiLabel13.TabIndex = 19;
|
||||
this.uiLabel13.Text = "相机2缓存:";
|
||||
this.uiLabel13.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.colCode.HeaderText = "Code";
|
||||
this.colCode.MinimumWidth = 8;
|
||||
this.colCode.Name = "colCode";
|
||||
this.colCode.Visible = false;
|
||||
this.colCode.Width = 150;
|
||||
//
|
||||
// colIndex
|
||||
//
|
||||
this.colIndex.DataPropertyName = "Index";
|
||||
this.colIndex.HeaderText = "图号";
|
||||
this.colIndex.MinimumWidth = 8;
|
||||
this.colIndex.Name = "colIndex";
|
||||
this.colIndex.Width = 50;
|
||||
//
|
||||
// colDefectName
|
||||
//
|
||||
this.colDefectName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||
this.colDefectName.DataPropertyName = "Name";
|
||||
this.colDefectName.HeaderText = "名称";
|
||||
this.colDefectName.MinimumWidth = 50;
|
||||
this.colDefectName.Name = "colDefectName";
|
||||
this.colDefectName.ReadOnly = true;
|
||||
//
|
||||
// colX
|
||||
//
|
||||
this.colX.DataPropertyName = "X";
|
||||
dataGridViewCellStyle3.Format = "N1";
|
||||
dataGridViewCellStyle3.NullValue = null;
|
||||
this.colX.DefaultCellStyle = dataGridViewCellStyle3;
|
||||
this.colX.HeaderText = "X(cm)";
|
||||
this.colX.MinimumWidth = 8;
|
||||
this.colX.Name = "colX";
|
||||
this.colX.ReadOnly = true;
|
||||
this.colX.Width = 80;
|
||||
//
|
||||
// colY
|
||||
//
|
||||
this.colY.DataPropertyName = "Y";
|
||||
dataGridViewCellStyle4.Format = "N2";
|
||||
dataGridViewCellStyle4.NullValue = null;
|
||||
this.colY.DefaultCellStyle = dataGridViewCellStyle4;
|
||||
this.colY.HeaderText = "Y(米)";
|
||||
this.colY.MinimumWidth = 8;
|
||||
this.colY.Name = "colY";
|
||||
this.colY.ReadOnly = true;
|
||||
this.colY.Width = 80;
|
||||
//
|
||||
// colW
|
||||
//
|
||||
this.colW.HeaderText = "宽(cm)";
|
||||
this.colW.MinimumWidth = 8;
|
||||
this.colW.Name = "colW";
|
||||
this.colW.Width = 70;
|
||||
//
|
||||
// colH
|
||||
//
|
||||
this.colH.HeaderText = "高(cm)";
|
||||
this.colH.MinimumWidth = 8;
|
||||
this.colH.Name = "colH";
|
||||
this.colH.Width = 70;
|
||||
//
|
||||
// colArea
|
||||
//
|
||||
dataGridViewCellStyle5.Format = "N2";
|
||||
dataGridViewCellStyle5.NullValue = null;
|
||||
this.colArea.DefaultCellStyle = dataGridViewCellStyle5;
|
||||
this.colArea.HeaderText = "面积(cm)";
|
||||
this.colArea.MinimumWidth = 8;
|
||||
this.colArea.Name = "colArea";
|
||||
this.colArea.ReadOnly = true;
|
||||
this.colArea.Width = 80;
|
||||
//
|
||||
// colZXD
|
||||
//
|
||||
this.colZXD.DataPropertyName = "ZXD";
|
||||
this.colZXD.HeaderText = "置信度";
|
||||
this.colZXD.MinimumWidth = 8;
|
||||
this.colZXD.Name = "colZXD";
|
||||
this.colZXD.ReadOnly = true;
|
||||
this.colZXD.Width = 67;
|
||||
//
|
||||
// colTarget
|
||||
//
|
||||
this.colTarget.DataPropertyName = "Contrast";
|
||||
this.colTarget.HeaderText = "对比度";
|
||||
this.colTarget.MinimumWidth = 8;
|
||||
this.colTarget.Name = "colTarget";
|
||||
this.colTarget.ReadOnly = true;
|
||||
this.colTarget.Width = 67;
|
||||
//
|
||||
// FHome
|
||||
//
|
||||
@ -1434,6 +1434,11 @@
|
||||
private Sunny.UI.UILabel uiLabel9;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private Sunny.UI.UITextBox txtBarCodeName;
|
||||
private Sunny.UI.UINumPadTextBox numErpLen;
|
||||
private Sunny.UI.UILabel lblScanner2Cache;
|
||||
private Sunny.UI.UILabel uiLabel13;
|
||||
private Sunny.UI.UILabel lblScanner1Cache;
|
||||
private Sunny.UI.UILabel uiLabel11;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colUid;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colCode;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colIndex;
|
||||
@ -1445,10 +1450,5 @@
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colArea;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colZXD;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colTarget;
|
||||
private Sunny.UI.UINumPadTextBox numErpLen;
|
||||
private Sunny.UI.UILabel lblScanner2Cache;
|
||||
private Sunny.UI.UILabel uiLabel13;
|
||||
private Sunny.UI.UILabel lblScanner1Cache;
|
||||
private Sunny.UI.UILabel uiLabel11;
|
||||
}
|
||||
}
|
||||
|
@ -882,242 +882,255 @@ namespace LeatherApp.Page
|
||||
/// <param name="devIndex"></param>
|
||||
private void callBackScanMatEvent(int num, Mat matone, int devIndex) //ScanEvent
|
||||
{
|
||||
if(Config.Camer_Name== CamerDevNameEnum.埃科)
|
||||
int errStep = 0;
|
||||
try
|
||||
{
|
||||
AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"采集卡({devIndex}),图像({num})");
|
||||
Cv2.Flip(matone, matone, FlipMode.XY);//翻转
|
||||
Bitmap bitmap = BitmapConverter.ToBitmap(matone);
|
||||
this.BeginInvoke(new Action(() =>
|
||||
if (Config.Camer_Name == CamerDevNameEnum.埃科)
|
||||
{
|
||||
//bitmap.Save($"d:\\{devIndex}_{num}.bmp", ImageFormat.Bmp);
|
||||
//显示图片
|
||||
if (devIndex == 0)
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"采集卡({devIndex}),图像({num})");
|
||||
Cv2.Flip(matone, matone, FlipMode.XY);//翻转
|
||||
Bitmap bitmap = BitmapConverter.ToBitmap(matone);
|
||||
this.BeginInvoke(new Action(() =>
|
||||
{
|
||||
picScanner2.Image = bitmap;
|
||||
picScanner2.Refresh();
|
||||
}
|
||||
else
|
||||
{
|
||||
picScanner1.Image = bitmap;
|
||||
picScanner1.Refresh();
|
||||
}
|
||||
}));
|
||||
}
|
||||
if (!devContainer.state || (currentState != CurrentStateEnum.运行中 && currentState != CurrentStateEnum.暂停))
|
||||
{
|
||||
matone.Dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
lock (lockCurrKey)
|
||||
{
|
||||
if (currKey == 0 || !htTask.ContainsKey(currKey))
|
||||
{
|
||||
lock (lockScanPhoto)
|
||||
{
|
||||
if (scanPhotos[0] != null || scanPhotos[1] != null)
|
||||
scanPhotos[0] = scanPhotos[1] = scanPhotos[2] = null;
|
||||
}
|
||||
matone.Dispose();
|
||||
AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{num})-未扫码,采集卡({devIndex}),图像丢弃!", WarningEnum.Low);
|
||||
return;
|
||||
}
|
||||
}
|
||||
Records curRecord = Hashtable.Synchronized(htTask)[currKey] as Records;
|
||||
Device.PhotoLib.PhotoTask task;
|
||||
Mat myMat = matone;//.Clone();
|
||||
AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{num})-采集卡({devIndex}),size:({myMat.Width}*{myMat.Height})({(myMat == null?"A":"B")})");
|
||||
//AddTextEvent(DateTime.Now,"拍照", $"Dev={devIndex},图像{num}-2");
|
||||
lock (lockScanPhoto)//多线程操作
|
||||
{
|
||||
if(scanPhotos[2] != null && scanPhotos[2].photoIndex== num)
|
||||
{
|
||||
AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"相机图像不同步,急停中止(需停机重新开始,不可继续)!!!", WarningEnum.High);
|
||||
warning(WarningEnum.High);
|
||||
//重置...
|
||||
}
|
||||
if(scanPhotos[devIndex]!=null) //添加一张容错
|
||||
{
|
||||
AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{num})-采集卡({devIndex}) 容错一张图到队列!", WarningEnum.Low);
|
||||
scanPhotos[2] = new ScanPhotoInfo(devIndex, num, myMat);
|
||||
return;
|
||||
}
|
||||
|
||||
//--
|
||||
scanPhotos[devIndex] = new ScanPhotoInfo(devIndex, num, myMat);
|
||||
if (scanPhotos[0] == null || scanPhotos[1] == null)
|
||||
return;
|
||||
//
|
||||
//if (scanPhotos[0].photoIndex != scanPhotos[1].photoIndex)
|
||||
//{
|
||||
// if (scanPhotos[0].photoIndex > scanPhotos[1].photoIndex)
|
||||
// {
|
||||
// AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{num})-索引不一致),丢弃采集卡({scanPhotos[1].devIndex})中较小索引图像({scanPhotos[1].photoIndex})!", WarningEnum.High);
|
||||
// scanPhotos[1] = null;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{num})-索引不一致),丢弃采集卡({scanPhotos[0].devIndex})中较小索引图像({scanPhotos[0].photoIndex})!", WarningEnum.High);
|
||||
// scanPhotos[0] = null;
|
||||
// }
|
||||
// if (num > 1)
|
||||
// {
|
||||
// AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"相机图像不同步,急停中止(需停机重新开始,不可继续)!!!", WarningEnum.High);
|
||||
// warning(WarningEnum.High);
|
||||
// //重置...
|
||||
// }
|
||||
// return;
|
||||
//}
|
||||
|
||||
//curRecord置新时,相机里最后一张图还是上次的计数器devIndex累计
|
||||
if (curRecord.ScannerPhotoCount == 0 && num>=1)
|
||||
{
|
||||
devContainer.devCamer1.resetScanIndex();
|
||||
devContainer.devCamer2.resetScanIndex();
|
||||
scanPhotos[0].photoIndex = scanPhotos[1].photoIndex = 0;
|
||||
if (scanPhotos[2] != null)
|
||||
scanPhotos[2].photoIndex = 1;
|
||||
AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"新任务开始,Dev={devIndex},图像({num})重置为图像(0)");
|
||||
}
|
||||
task = new Device.PhotoLib.PhotoTask()
|
||||
{
|
||||
scanPhotos0 = scanPhotos[0],
|
||||
scanPhotos1 = scanPhotos[1],
|
||||
};
|
||||
scanPhotos[0] = scanPhotos[1] = null;
|
||||
if (scanPhotos[2] != null)//容错图前移到正常位置
|
||||
{
|
||||
AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{scanPhotos[2].photoIndex})-采集卡({scanPhotos[2].devIndex}) 容错队列图前移。");
|
||||
scanPhotos[scanPhotos[2].photoIndex] = scanPhotos[2];
|
||||
scanPhotos[2] = null;
|
||||
}
|
||||
curRecord.ScannerPhotoCount++;
|
||||
}
|
||||
|
||||
//长度剩余提醒
|
||||
if (Config.residueWarnningLen > 0 && curRecord.ErpLen >0 && Config.residueWarnningLen >= curRecord.ErpLen - curRecord.Len)
|
||||
{
|
||||
AddTextEvent(DateTime.Now,$"告警{Thread.CurrentThread.ManagedThreadId}", $"已达剩余长度不足提醒!({curRecord.ErpLen - curRecord.Len}<={Config.residueWarnningLen})", WarningEnum.High);
|
||||
}
|
||||
|
||||
//
|
||||
AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"待处理图像队列:{curRecord.ScannerPhotoCount - curRecord.ScannerPhotoFinishCount}张");
|
||||
if (task.scanPhotos0 != null && task.scanPhotos1 != null)
|
||||
{
|
||||
var scanPhoto = task.scanPhotos0 as ScanPhotoInfo;
|
||||
curRecord.dicPhoto_Defect.TryAdd(scanPhoto.photoIndex, false);//加入索引,默认无瑕疵
|
||||
AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"图像索引:{scanPhoto.photoIndex},标识数:{curRecord.dicPhoto_Defect.Count}");
|
||||
//暂停:瑕疵二次判断
|
||||
if (this.defectPauseForUser)
|
||||
{
|
||||
int liPhotoIndex = scanPhoto.photoIndex - Config.defectPauseSkipPhotoCount;
|
||||
AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"Dev={devIndex},图像{scanPhoto.photoIndex} {liPhotoIndex}={scanPhoto.photoIndex}-{Config.defectPauseSkipPhotoCount};{JsonConvert.SerializeObject(curRecord.dicPhoto_Defect) }");
|
||||
if (liPhotoIndex >= 0 && curRecord.dicPhoto_Defect[liPhotoIndex])
|
||||
{
|
||||
List<DefectInfo> lstEditDefect = curRecord.DefectInfoList.Where(m => m.PhotoIndex == liPhotoIndex).ToList();
|
||||
AddTextEvent(DateTime.Now,$"暂停{Thread.CurrentThread.ManagedThreadId}", $"(图像{liPhotoIndex})已达观察台,瑕疵二次判断=》({string.Join(",", lstEditDefect.Select(m => m.Code).ToArray())})是否包含在({string.Join(",", curRecord.ProductInfo.DefectPauseOption.ToArray())})中。");
|
||||
//瑕疵选项过滤
|
||||
if (curRecord.ProductInfo.DefectPauseOption.Count == 0 || lstEditDefect.Where(x => curRecord.ProductInfo.DefectPauseOption.Contains(x.Code)).Count() > 0)
|
||||
//bitmap.Save($"d:\\{devIndex}_{num}.bmp", ImageFormat.Bmp);
|
||||
//显示图片
|
||||
if (devIndex == 0)
|
||||
{
|
||||
AddTextEvent(DateTime.Now,$"暂停{Thread.CurrentThread.ManagedThreadId}", $"(图像{liPhotoIndex})需瑕疵二次判断,已达观察台,进入暂停。");
|
||||
if (!Config.StopPLC)
|
||||
this.devContainer.devPlc.pauseDev();
|
||||
else if (!Config.StopIO && devContainer.devIOCard.IsInit)
|
||||
{
|
||||
//只是设备暂停,APP没暂停
|
||||
devContainer.io_output(CMDName.绿灯输出, false, true, 0);
|
||||
devContainer.io_output(CMDName.黄灯输出);
|
||||
devContainer.devIOCard.writeBitState(0, 1, true);
|
||||
Task.Run(async () =>
|
||||
{
|
||||
await Task.Delay(500);
|
||||
this.devContainer.devIOCard.writeBitState(0, 1, false);
|
||||
});
|
||||
}
|
||||
picScanner2.Image = bitmap;
|
||||
picScanner2.Refresh();
|
||||
}
|
||||
else
|
||||
{
|
||||
picScanner1.Image = bitmap;
|
||||
picScanner1.Refresh();
|
||||
}
|
||||
}));
|
||||
}
|
||||
errStep = 1;
|
||||
if (!devContainer.state || (currentState != CurrentStateEnum.运行中 && currentState != CurrentStateEnum.暂停))
|
||||
{
|
||||
matone.Dispose();
|
||||
return;
|
||||
}
|
||||
errStep = 2;
|
||||
lock (lockCurrKey)
|
||||
{
|
||||
if (currKey == 0 || !htTask.ContainsKey(currKey))
|
||||
{
|
||||
lock (lockScanPhoto)
|
||||
{
|
||||
if (scanPhotos[0] != null || scanPhotos[1] != null)
|
||||
scanPhotos[0] = scanPhotos[1] = scanPhotos[2] = null;
|
||||
}
|
||||
matone.Dispose();
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{num})-未扫码,采集卡({devIndex}),图像丢弃!", WarningEnum.Low);
|
||||
return;
|
||||
}
|
||||
}
|
||||
errStep = 3;
|
||||
Records curRecord = Hashtable.Synchronized(htTask)[currKey] as Records;
|
||||
Device.PhotoLib.PhotoTask task;
|
||||
Mat myMat = matone;//.Clone();
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{num})-采集卡({devIndex}),size:({myMat.Width}*{myMat.Height})({(myMat == null ? "A" : "B")})");
|
||||
//AddTextEvent(DateTime.Now,"拍照", $"Dev={devIndex},图像{num}-2");
|
||||
lock (lockScanPhoto)//多线程操作
|
||||
{
|
||||
if (scanPhotos[2] != null && scanPhotos[2].photoIndex == num)
|
||||
{
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"相机图像不同步,急停中止(需停机重新开始,不可继续)!!!", WarningEnum.High);
|
||||
warning(WarningEnum.High);
|
||||
//重置...
|
||||
}
|
||||
if (scanPhotos[devIndex] != null) //添加一张容错
|
||||
{
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{num})-采集卡({devIndex}) 容错一张图到队列!", WarningEnum.Low);
|
||||
scanPhotos[2] = new ScanPhotoInfo(devIndex, num, myMat);
|
||||
return;
|
||||
}
|
||||
errStep = 4;
|
||||
//--
|
||||
scanPhotos[devIndex] = new ScanPhotoInfo(devIndex, num, myMat);
|
||||
if (scanPhotos[0] == null || scanPhotos[1] == null)
|
||||
return;
|
||||
//
|
||||
//if (scanPhotos[0].photoIndex != scanPhotos[1].photoIndex)
|
||||
//{
|
||||
// if (scanPhotos[0].photoIndex > scanPhotos[1].photoIndex)
|
||||
// {
|
||||
// AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{num})-索引不一致),丢弃采集卡({scanPhotos[1].devIndex})中较小索引图像({scanPhotos[1].photoIndex})!", WarningEnum.High);
|
||||
// scanPhotos[1] = null;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{num})-索引不一致),丢弃采集卡({scanPhotos[0].devIndex})中较小索引图像({scanPhotos[0].photoIndex})!", WarningEnum.High);
|
||||
// scanPhotos[0] = null;
|
||||
// }
|
||||
// if (num > 1)
|
||||
// {
|
||||
// AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"相机图像不同步,急停中止(需停机重新开始,不可继续)!!!", WarningEnum.High);
|
||||
// warning(WarningEnum.High);
|
||||
// //重置...
|
||||
// }
|
||||
// return;
|
||||
//}
|
||||
|
||||
//不能使用同步Invoke方式,会使相机超时丢帧
|
||||
this.BeginInvoke(new System.Action(() =>
|
||||
//curRecord置新时,相机里最后一张图还是上次的计数器devIndex累计
|
||||
if (curRecord.ScannerPhotoCount == 0 && num >= 1)
|
||||
{
|
||||
devContainer.devCamer1.resetScanIndex();
|
||||
devContainer.devCamer2.resetScanIndex();
|
||||
scanPhotos[0].photoIndex = scanPhotos[1].photoIndex = 0;
|
||||
if (scanPhotos[2] != null)
|
||||
scanPhotos[2].photoIndex = 1;
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"新任务开始,Dev={devIndex},图像({num})重置为图像(0)");
|
||||
}
|
||||
task = new Device.PhotoLib.PhotoTask()
|
||||
{
|
||||
scanPhotos0 = scanPhotos[0],
|
||||
scanPhotos1 = scanPhotos[1],
|
||||
};
|
||||
scanPhotos[0] = scanPhotos[1] = null;
|
||||
if (scanPhotos[2] != null)//容错图前移到正常位置
|
||||
{
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"(图像{scanPhotos[2].photoIndex})-采集卡({scanPhotos[2].devIndex}) 容错队列图前移。");
|
||||
scanPhotos[scanPhotos[2].devIndex] = scanPhotos[2];
|
||||
scanPhotos[2] = null;
|
||||
}
|
||||
curRecord.ScannerPhotoCount++;
|
||||
errStep = 5;
|
||||
}
|
||||
|
||||
//长度剩余提醒
|
||||
if (Config.residueWarnningLen > 0 && curRecord.ErpLen > 0 && Config.residueWarnningLen >= curRecord.ErpLen - curRecord.Len)
|
||||
{
|
||||
AddTextEvent(DateTime.Now, $"告警{Thread.CurrentThread.ManagedThreadId}", $"已达剩余长度不足提醒!({curRecord.ErpLen - curRecord.Len}<={Config.residueWarnningLen})", WarningEnum.High);
|
||||
}
|
||||
errStep = 6;
|
||||
//
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"待处理图像队列:{curRecord.ScannerPhotoCount - curRecord.ScannerPhotoFinishCount}张");
|
||||
if (task.scanPhotos0 != null && task.scanPhotos1 != null)
|
||||
{
|
||||
var scanPhoto = task.scanPhotos0 as ScanPhotoInfo;
|
||||
curRecord.dicPhoto_Defect.TryAdd(scanPhoto.photoIndex, false);//加入索引,默认无瑕疵
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"图像索引:{scanPhoto.photoIndex},标识数:{curRecord.dicPhoto_Defect.Count}");
|
||||
errStep = 7;
|
||||
//暂停:瑕疵二次判断
|
||||
if (this.defectPauseForUser)
|
||||
{
|
||||
int liPhotoIndex = scanPhoto.photoIndex - Config.defectPauseSkipPhotoCount;
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"Dev={devIndex},图像{scanPhoto.photoIndex} {liPhotoIndex}={scanPhoto.photoIndex}-{Config.defectPauseSkipPhotoCount};{JsonConvert.SerializeObject(curRecord.dicPhoto_Defect)}");
|
||||
if (liPhotoIndex >= 0 && curRecord.dicPhoto_Defect[liPhotoIndex])
|
||||
{
|
||||
List<DefectInfo> lstEditDefect = curRecord.DefectInfoList.Where(m => m.PhotoIndex == liPhotoIndex).ToList();
|
||||
AddTextEvent(DateTime.Now, $"暂停{Thread.CurrentThread.ManagedThreadId}", $"(图像{liPhotoIndex})已达观察台,瑕疵二次判断=》({string.Join(",", lstEditDefect.Select(m => m.Code).ToArray())})是否包含在({string.Join(",", curRecord.ProductInfo.DefectPauseOption.ToArray())})中。");
|
||||
//瑕疵选项过滤
|
||||
if (curRecord.ProductInfo.DefectPauseOption.Count == 0 || lstEditDefect.Where(x => curRecord.ProductInfo.DefectPauseOption.Contains(x.Code)).Count() > 0)
|
||||
{
|
||||
int liDefectCount = lstEditDefect.Count;
|
||||
FHome_Defect frmDefect = new FHome_Defect(lstEditDefect);
|
||||
if (frmDefect.ShowDialog() == DialogResult.OK)
|
||||
AddTextEvent(DateTime.Now, $"暂停{Thread.CurrentThread.ManagedThreadId}", $"(图像{liPhotoIndex})需瑕疵二次判断,已达观察台,进入暂停。");
|
||||
if (!Config.StopPLC)
|
||||
this.devContainer.devPlc.pauseDev();
|
||||
else if (!Config.StopIO && devContainer.devIOCard.IsInit)
|
||||
{
|
||||
string oldCode;
|
||||
for (int i = 0; i < this.uiDataGridView1.Rows.Count; i++)
|
||||
//只是设备暂停,APP没暂停
|
||||
devContainer.io_output(CMDName.绿灯输出, false, true, 0);
|
||||
devContainer.io_output(CMDName.黄灯输出);
|
||||
devContainer.devIOCard.writeBitState(0, 1, true);
|
||||
Task.Run(async () =>
|
||||
{
|
||||
if ((int)this.uiDataGridView1.Rows[i].Cells["colIndex"].Value != liPhotoIndex)
|
||||
continue;
|
||||
|
||||
long uid = (long)this.uiDataGridView1.Rows[i].Cells["colUid"].Value;
|
||||
foreach (var row in lstEditDefect)
|
||||
await Task.Delay(500);
|
||||
this.devContainer.devIOCard.writeBitState(0, 1, false);
|
||||
});
|
||||
}
|
||||
errStep = 8;
|
||||
//不能使用同步Invoke方式,会使相机超时丢帧
|
||||
this.BeginInvoke(new System.Action(() =>
|
||||
{
|
||||
int liDefectCount = lstEditDefect.Count;
|
||||
FHome_Defect frmDefect = new FHome_Defect(lstEditDefect);
|
||||
if (frmDefect.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
string oldCode;
|
||||
for (int i = 0; i < this.uiDataGridView1.Rows.Count; i++)
|
||||
{
|
||||
AddTextEvent(DateTime.Now,$"暂停{Thread.CurrentThread.ManagedThreadId}", $"修改第({i + 1})行瑕疵名称,{uid} {row.uid}");
|
||||
if (row.uid == uid)
|
||||
if ((int)this.uiDataGridView1.Rows[i].Cells["colIndex"].Value != liPhotoIndex)
|
||||
continue;
|
||||
|
||||
long uid = (long)this.uiDataGridView1.Rows[i].Cells["colUid"].Value;
|
||||
foreach (var row in lstEditDefect)
|
||||
{
|
||||
oldCode = this.uiDataGridView1.Rows[i].Cells["colCode"].Value.ToString();
|
||||
AddTextEvent(DateTime.Now,$"暂停{Thread.CurrentThread.ManagedThreadId}", $"修改第({i + 1})行瑕疵名称 ({this.uiDataGridView1.Rows[i].Cells["colDefectName"].Value})->({row.Name})");
|
||||
this.uiDataGridView1.Rows[i].Cells["colCode"].Value = row.Code;
|
||||
this.uiDataGridView1.Rows[i].Cells["colDefectName"].Value = row.Name;
|
||||
//this.uiDataGridView1.Refresh();
|
||||
if (!string.IsNullOrWhiteSpace(row.TagFilePath))
|
||||
File.Move(row.TagFilePath, row.TagFilePath.Replace($"_类别{oldCode}", $"_类别{row.Code}"));//
|
||||
break;
|
||||
AddTextEvent(DateTime.Now, $"暂停{Thread.CurrentThread.ManagedThreadId}", $"修改第({i + 1})行瑕疵名称,{uid} {row.uid}");
|
||||
if (row.uid == uid)
|
||||
{
|
||||
oldCode = this.uiDataGridView1.Rows[i].Cells["colCode"].Value.ToString();
|
||||
AddTextEvent(DateTime.Now, $"暂停{Thread.CurrentThread.ManagedThreadId}", $"修改第({i + 1})行瑕疵名称 ({this.uiDataGridView1.Rows[i].Cells["colDefectName"].Value})->({row.Name})");
|
||||
this.uiDataGridView1.Rows[i].Cells["colCode"].Value = row.Code;
|
||||
this.uiDataGridView1.Rows[i].Cells["colDefectName"].Value = row.Name;
|
||||
//this.uiDataGridView1.Refresh();
|
||||
if (!string.IsNullOrWhiteSpace(row.TagFilePath))
|
||||
File.Move(row.TagFilePath, row.TagFilePath.Replace($"_类别{oldCode}", $"_类别{row.Code}"));//
|
||||
break;
|
||||
}
|
||||
}
|
||||
foreach (var item in frmDefect.lstDel)
|
||||
{
|
||||
if (item.uid == uid)
|
||||
{
|
||||
this.uiDataGridView1.Rows.RemoveAt(i);
|
||||
i--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (var item in frmDefect.lstDel)
|
||||
{
|
||||
if (item.uid == uid)
|
||||
curRecord.DefectInfoList.Remove(item);
|
||||
//删除忽略瑕疵小图
|
||||
//if (!string.IsNullOrWhiteSpace(item.TagFilePath))
|
||||
// File.Delete(item.TagFilePath);
|
||||
}
|
||||
|
||||
//double len = (double)this.lblLen.Tag;
|
||||
//this.reDrawDefectPoints(curRecord.DefectInfoList, new double[] { 0, Math.Round(curRecord.FaceWidthMax + 0.005f, 2) }, new double[] { 0, len });
|
||||
AddTextEvent(DateTime.Now, $"二次检测{Thread.CurrentThread.ManagedThreadId}", $"本次忽略{frmDefect.lstDel.Count}个瑕疵,本张图由{liDefectCount} -> {lstEditDefect.Count},总数{curRecord.DefectInfoList.Count}");
|
||||
}
|
||||
this.uiMiniPagination1.TotalCount = curRecord.DefectTotalCount = curRecord.DefectInfoList.Count;
|
||||
//
|
||||
//double len = Math.Round((res.photoIndex + 1) * bmpHeight * 1.0d / Config.cm2px_y + 0.005f, 2);
|
||||
this.reDrawDefectPoints(curRecord.DefectInfoList);
|
||||
errStep = 9;
|
||||
//自动继续运行设备(这里临时暂停后不能再急停,否则无法继续)
|
||||
if (!Config.StopPLC)
|
||||
this.devContainer.devPlc.runDev();
|
||||
else if (!Config.StopIO && devContainer.devIOCard.IsInit)
|
||||
{
|
||||
if (!compareIOInput(CMDName.暂停按钮))
|
||||
{
|
||||
devContainer.io_output(CMDName.绿灯输出);
|
||||
devContainer.io_output(CMDName.黄灯输出, false, true, 0);
|
||||
this.devContainer.devIOCard.writeBitState(0, 0, true);
|
||||
Task.Run(async () =>
|
||||
{
|
||||
this.uiDataGridView1.Rows.RemoveAt(i);
|
||||
i--;
|
||||
break;
|
||||
}
|
||||
await Task.Delay(500);
|
||||
this.devContainer.devIOCard.writeBitState(0, 0, false);
|
||||
});
|
||||
}
|
||||
}
|
||||
foreach (var item in frmDefect.lstDel)
|
||||
{
|
||||
curRecord.DefectInfoList.Remove(item);
|
||||
//删除忽略瑕疵小图
|
||||
//if (!string.IsNullOrWhiteSpace(item.TagFilePath))
|
||||
// File.Delete(item.TagFilePath);
|
||||
}
|
||||
|
||||
//double len = (double)this.lblLen.Tag;
|
||||
//this.reDrawDefectPoints(curRecord.DefectInfoList, new double[] { 0, Math.Round(curRecord.FaceWidthMax + 0.005f, 2) }, new double[] { 0, len });
|
||||
AddTextEvent(DateTime.Now,$"二次检测{Thread.CurrentThread.ManagedThreadId}", $"本次忽略{frmDefect.lstDel.Count}个瑕疵,本张图由{liDefectCount} -> {lstEditDefect.Count},总数{curRecord.DefectInfoList.Count}");
|
||||
}
|
||||
this.uiMiniPagination1.TotalCount = curRecord.DefectTotalCount = curRecord.DefectInfoList.Count;
|
||||
//
|
||||
//double len = Math.Round((res.photoIndex + 1) * bmpHeight * 1.0d / Config.cm2px_y + 0.005f, 2);
|
||||
this.reDrawDefectPoints(curRecord.DefectInfoList);
|
||||
|
||||
//自动继续运行设备(这里临时暂停后不能再急停,否则无法继续)
|
||||
if (!Config.StopPLC)
|
||||
this.devContainer.devPlc.runDev();
|
||||
else if (!Config.StopIO && devContainer.devIOCard.IsInit)
|
||||
{
|
||||
if (!compareIOInput(CMDName.暂停按钮))
|
||||
{
|
||||
devContainer.io_output(CMDName.绿灯输出);
|
||||
devContainer.io_output(CMDName.黄灯输出, false, true, 0);
|
||||
this.devContainer.devIOCard.writeBitState(0, 0, true);
|
||||
Task.Run(async () =>
|
||||
{
|
||||
await Task.Delay(500);
|
||||
this.devContainer.devIOCard.writeBitState(0, 0, false);
|
||||
});
|
||||
}
|
||||
}
|
||||
}));
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
errStep = 10;
|
||||
task.record = curRecord;
|
||||
task.finishEvent = callBackPhotoEvent;
|
||||
devContainer.libPhoto.add(task);
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"Dev={devIndex},图像{scanPhoto.photoIndex},已加入图像处理队列");
|
||||
errStep = 11;
|
||||
}
|
||||
task.record = curRecord;
|
||||
task.finishEvent = callBackPhotoEvent;
|
||||
devContainer.libPhoto.add(task);
|
||||
AddTextEvent(DateTime.Now,$"拍照{Thread.CurrentThread.ManagedThreadId}", $"Dev={devIndex},图像{scanPhoto.photoIndex},已加入图像处理队列");
|
||||
}
|
||||
|
||||
catch (Exception e)
|
||||
{
|
||||
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"errStep:{errStep}-{e.Message}", WarningEnum.High);
|
||||
}
|
||||
}
|
||||
private void callBackPhotoEvent(Device.PhotoLib.PhotoTask task)
|
||||
{
|
||||
@ -1281,7 +1294,7 @@ namespace LeatherApp.Page
|
||||
{
|
||||
step = 1;
|
||||
AddTextEvent(DateTime.Now,$"检测完成{Thread.CurrentThread.ManagedThreadId}", $"(图像{res.photoIndex})-瑕疵检测完成,共{res.excelTable.Rows.Count}个瑕疵!各环节用时:{string.Join(",",res.stopwatch)}");
|
||||
//AddTextEvent(DateTime.Now,$"打标完成", $"第 ({res.tag}) 张照片,计算过程:{res.resultInfo}");
|
||||
//AddTextEvent(DateTime.Now,$"打标完成", $"第 ({res.photoIndex}) 张照片,计算过程:{res.resultInfo}");
|
||||
if (!Config.IsSaveAllImage && Config.IsSaveDefectSourceImage)
|
||||
OpenCvSharp.Extensions.BitmapConverter.ToBitmap(res.bmp).Save($"{dirSourcePath}{res.photoIndex}.bmp", ImageFormat.Bmp);
|
||||
|
||||
@ -1459,7 +1472,10 @@ namespace LeatherApp.Page
|
||||
int count;
|
||||
foreach(GradeLimit item in gradeLimitList)
|
||||
{
|
||||
count = model.DefectInfoList.Where(m => m.Code == item.Code).Count();
|
||||
if((model.DefectInfoList != null)&&(model.DefectInfoList.Count >0))
|
||||
count = model.DefectInfoList.Where(m => m.Code == item.Code).Count();
|
||||
else
|
||||
count = 0;
|
||||
if (count <= item.A && model.Grade <= 1) model.Grade = 1;
|
||||
else if (count <= item.B && item.B > 0 && model.Grade <= 2) model.Grade = 2;
|
||||
else if (count <= item.C && item.C > 0 && model.Grade <= 3) model.Grade = 3;
|
||||
@ -1480,8 +1496,10 @@ namespace LeatherApp.Page
|
||||
catch (Exception ex)
|
||||
{
|
||||
_isDefect = false;
|
||||
if (model==null) AddTextEvent(DateTime.Now,"入库失败", $"记录({key})不存在{step}!" + ex.Message, WarningEnum.High);
|
||||
else AddTextEvent(DateTime.Now,"入库失败", $"({key}) 批号({model.BatchId})检测完成,但保存检测记录失败{step}:" + ex.Message, WarningEnum.High);
|
||||
if (model==null)
|
||||
AddTextEvent(DateTime.Now,"入库失败", $"记录({key})不存在{step}!" + ex.Message, WarningEnum.High);
|
||||
else
|
||||
AddTextEvent(DateTime.Now,"入库失败", $"({key}) 批号({model.BatchId})检测完成,但保存检测记录失败{step}:" + ex.Message, WarningEnum.High);
|
||||
warning(WarningEnum.High, true);//暂停
|
||||
}
|
||||
}
|
||||
@ -1934,7 +1952,7 @@ namespace LeatherApp.Page
|
||||
{
|
||||
step = 1;
|
||||
AddTextEvent(DateTime.Now, $"检测完成{Thread.CurrentThread.ManagedThreadId}", $"(图像{res.photoIndex})-瑕疵检测完成,共{res.excelTable.Rows.Count}个瑕疵!各环节用时:{string.Join(",", res.stopwatch)}");
|
||||
//AddTextEvent(DateTime.Now,$"打标完成", $"第 ({res.tag}) 张照片,计算过程:{res.resultInfo}");
|
||||
//AddTextEvent(DateTime.Now,$"打标完成", $"第 ({res.photoIndex}) 张照片,计算过程:{res.resultInfo}");
|
||||
|
||||
|
||||
}
|
||||
|
@ -318,7 +318,7 @@ namespace LeatherApp.Utils
|
||||
// 计算当前行的灰度直方图
|
||||
Mat absolute_histo = new Mat();
|
||||
Cv2.CalcHist(new Mat[] { smoothed_image }, new int[] { 0 }, new Mat(), absolute_histo, 1, new int[] { 256 }, new Rangef[] { new Rangef(0, 256) });
|
||||
Cv2.GaussianBlur(current_segment, smoothed_image, new Size(9, 1), 0);
|
||||
Cv2.GaussianBlur(current_segment, smoothed_image, new Size(19, 1), 0);
|
||||
|
||||
// 对图片进行分割i+1
|
||||
//double otsu_threshold;
|
||||
@ -326,7 +326,7 @@ namespace LeatherApp.Utils
|
||||
Cv2.Threshold(smoothed_image, smoothed_image, 0, 255, ThresholdTypes.Binary | ThresholdTypes.Otsu);
|
||||
|
||||
// 使用形态学操作进行孔洞填充
|
||||
Mat kernel = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(5, 1));
|
||||
Mat kernel = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(25, 1));
|
||||
Mat filled_image = new Mat();
|
||||
Cv2.MorphologyEx(smoothed_image, filled_image, MorphTypes.Close, kernel);
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -213,14 +213,11 @@ E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\b
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\ClosedXML.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\DocumentFormat.OpenXml.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\ExcelNumberFormat.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\MvCodeReaderSDK.Net.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\MvFGCtrlC.Net.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\OpenCvSharp.Extensions.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\S7.Net.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\SixLabors.Fonts.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\System.Drawing.Common.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\System.IO.Packaging.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\MySql.Data.xml
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\Interop.BDaqOcxLib.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\bin\Debug\AxInterop.BDaqOcxLib.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\obj\Debug\LeatherApp.csproj.AssemblyReference.cache
|
||||
|
@ -28,3 +28,11 @@ E:\CPL\迈沐智能项目\2023\革博士\交付资料\革博士项目交付资
|
||||
E:\CPL\迈沐智能项目\2023\革博士\交付资料\革博士项目交付资料\LeatherProject\Models\obj\Debug\Models.csproj.CopyComplete
|
||||
E:\CPL\迈沐智能项目\2023\革博士\交付资料\革博士项目交付资料\LeatherProject\Models\obj\Debug\Models.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\交付资料\革博士项目交付资料\LeatherProject\Models\obj\Debug\Models.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Models\bin\Debug\Models.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Models\bin\Debug\Models.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Models\bin\Debug\SqlSugar.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Models\obj\Debug\Models.csproj.AssemblyReference.cache
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Models\obj\Debug\Models.csproj.CoreCompileInputs.cache
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Models\obj\Debug\Models.csproj.CopyComplete
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Models\obj\Debug\Models.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Models\obj\Debug\Models.pdb
|
||||
|
@ -95,3 +95,20 @@ E:\CPL\迈沐智能项目\2023\革博士\交付资料\革博士项目交付资
|
||||
E:\CPL\迈沐智能项目\2023\革博士\交付资料\革博士项目交付资料\LeatherProject\Service\obj\Debug\Service.csproj.CopyComplete
|
||||
E:\CPL\迈沐智能项目\2023\革博士\交付资料\革博士项目交付资料\LeatherProject\Service\obj\Debug\Service.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\交付资料\革博士项目交付资料\LeatherProject\Service\obj\Debug\Service.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\Service.dll.config
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\Service.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\Service.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\Models.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\Newtonsoft.Json.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\SqlSugar.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\System.Buffers.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\System.Memory.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\System.Numerics.Vectors.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\System.Threading.Tasks.Extensions.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\Models.pdb
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\obj\Debug\Service.csproj.AssemblyReference.cache
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\obj\Debug\Service.csproj.CoreCompileInputs.cache
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\obj\Debug\Service.csproj.CopyComplete
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\obj\Debug\Service.dll
|
||||
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\obj\Debug\Service.pdb
|
||||
|
BIN
LeatherProject/packages/System.Drawing.Common.5.0.3/.signature.p7s
vendored
Normal file
BIN
LeatherProject/packages/System.Drawing.Common.5.0.3/.signature.p7s
vendored
Normal file
Binary file not shown.
BIN
LeatherProject/packages/System.Drawing.Common.5.0.3/Icon.png
vendored
Normal file
BIN
LeatherProject/packages/System.Drawing.Common.5.0.3/Icon.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.8 KiB |
23
LeatherProject/packages/System.Drawing.Common.5.0.3/LICENSE.TXT
vendored
Normal file
23
LeatherProject/packages/System.Drawing.Common.5.0.3/LICENSE.TXT
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) .NET Foundation and Contributors
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
BIN
LeatherProject/packages/System.Drawing.Common.5.0.3/System.Drawing.Common.5.0.3.nupkg
vendored
Normal file
BIN
LeatherProject/packages/System.Drawing.Common.5.0.3/System.Drawing.Common.5.0.3.nupkg
vendored
Normal file
Binary file not shown.
884
LeatherProject/packages/System.Drawing.Common.5.0.3/THIRD-PARTY-NOTICES.TXT
vendored
Normal file
884
LeatherProject/packages/System.Drawing.Common.5.0.3/THIRD-PARTY-NOTICES.TXT
vendored
Normal file
@ -0,0 +1,884 @@
|
||||
.NET Runtime uses third-party libraries or other resources that may be
|
||||
distributed under licenses different than the .NET Runtime software.
|
||||
|
||||
In the event that we accidentally failed to list a required notice, please
|
||||
bring it to our attention. Post an issue or email us:
|
||||
|
||||
dotnet@microsoft.com
|
||||
|
||||
The attached notices are provided for information only.
|
||||
|
||||
License notice for ASP.NET
|
||||
-------------------------------
|
||||
|
||||
Copyright (c) .NET Foundation. All rights reserved.
|
||||
Licensed under the Apache License, Version 2.0.
|
||||
|
||||
Available at
|
||||
https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt
|
||||
|
||||
License notice for Slicing-by-8
|
||||
-------------------------------
|
||||
|
||||
http://sourceforge.net/projects/slicing-by-8/
|
||||
|
||||
Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved
|
||||
|
||||
|
||||
This software program is licensed subject to the BSD License, available at
|
||||
http://www.opensource.org/licenses/bsd-license.html.
|
||||
|
||||
|
||||
License notice for Unicode data
|
||||
-------------------------------
|
||||
|
||||
https://www.unicode.org/license.html
|
||||
|
||||
Copyright © 1991-2020 Unicode, Inc. All rights reserved.
|
||||
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Unicode data files and any associated documentation
|
||||
(the "Data Files") or Unicode software and any associated documentation
|
||||
(the "Software") to deal in the Data Files or Software
|
||||
without restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, and/or sell copies of
|
||||
the Data Files or Software, and to permit persons to whom the Data Files
|
||||
or Software are furnished to do so, provided that either
|
||||
(a) this copyright and permission notice appear with all copies
|
||||
of the Data Files or Software, or
|
||||
(b) this copyright and permission notice appear in associated
|
||||
Documentation.
|
||||
|
||||
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
|
||||
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
|
||||
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
|
||||
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
||||
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of a copyright holder
|
||||
shall not be used in advertising or otherwise to promote the sale,
|
||||
use or other dealings in these Data Files or Software without prior
|
||||
written authorization of the copyright holder.
|
||||
|
||||
License notice for Zlib
|
||||
-----------------------
|
||||
|
||||
https://github.com/madler/zlib
|
||||
http://zlib.net/zlib_license.html
|
||||
|
||||
/* zlib.h -- interface of the 'zlib' general purpose compression library
|
||||
version 1.2.11, January 15th, 2017
|
||||
|
||||
Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
Jean-loup Gailly Mark Adler
|
||||
jloup@gzip.org madler@alumni.caltech.edu
|
||||
|
||||
*/
|
||||
|
||||
License notice for Mono
|
||||
-------------------------------
|
||||
|
||||
http://www.mono-project.com/docs/about-mono/
|
||||
|
||||
Copyright (c) .NET Foundation Contributors
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the Software), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
License notice for International Organization for Standardization
|
||||
-----------------------------------------------------------------
|
||||
|
||||
Portions (C) International Organization for Standardization 1986:
|
||||
Permission to copy in any form is granted for use with
|
||||
conforming SGML systems and applications as defined in
|
||||
ISO 8879, provided this notice is included in all copies.
|
||||
|
||||
License notice for Intel
|
||||
------------------------
|
||||
|
||||
"Copyright (c) 2004-2006 Intel Corporation - 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 THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT HOLDER 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.
|
||||
|
||||
License notice for Xamarin and Novell
|
||||
-------------------------------------
|
||||
|
||||
Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
Copyright (c) 2011 Novell, Inc (http://www.novell.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
Third party notice for W3C
|
||||
--------------------------
|
||||
|
||||
"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE
|
||||
Status: This license takes effect 13 May, 2015.
|
||||
This work is being provided by the copyright holders under the following license.
|
||||
License
|
||||
By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions.
|
||||
Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications:
|
||||
The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
|
||||
Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included.
|
||||
Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)."
|
||||
Disclaimers
|
||||
THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
|
||||
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
|
||||
The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders."
|
||||
|
||||
License notice for Bit Twiddling Hacks
|
||||
--------------------------------------
|
||||
|
||||
Bit Twiddling Hacks
|
||||
|
||||
By Sean Eron Anderson
|
||||
seander@cs.stanford.edu
|
||||
|
||||
Individually, the code snippets here are in the public domain (unless otherwise
|
||||
noted) — feel free to use them however you please. The aggregate collection and
|
||||
descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are
|
||||
distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and
|
||||
without even the implied warranty of merchantability or fitness for a particular
|
||||
purpose.
|
||||
|
||||
License notice for Brotli
|
||||
--------------------------------------
|
||||
|
||||
Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
compress_fragment.c:
|
||||
Copyright (c) 2011, Google Inc.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* 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.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
""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 THE COPYRIGHT
|
||||
OWNER 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.
|
||||
|
||||
decode_fuzzer.c:
|
||||
Copyright (c) 2015 The Chromium Authors. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* 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.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
""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 THE COPYRIGHT
|
||||
OWNER 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."
|
||||
|
||||
License notice for Json.NET
|
||||
-------------------------------
|
||||
|
||||
https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2007 James Newton-King
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
License notice for vectorized base64 encoding / decoding
|
||||
--------------------------------------------------------
|
||||
|
||||
Copyright (c) 2005-2007, Nick Galbreath
|
||||
Copyright (c) 2013-2017, Alfred Klomp
|
||||
Copyright (c) 2015-2017, Wojciech Mula
|
||||
Copyright (c) 2016-2017, Matthieu Darbois
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
- 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 THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT
|
||||
HOLDER 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.
|
||||
|
||||
License notice for RFC 3492
|
||||
---------------------------
|
||||
|
||||
The punycode implementation is based on the sample code in RFC 3492
|
||||
|
||||
Copyright (C) The Internet Society (2003). All Rights Reserved.
|
||||
|
||||
This document and translations of it may be copied and furnished to
|
||||
others, and derivative works that comment on or otherwise explain it
|
||||
or assist in its implementation may be prepared, copied, published
|
||||
and distributed, in whole or in part, without restriction of any
|
||||
kind, provided that the above copyright notice and this paragraph are
|
||||
included on all such copies and derivative works. However, this
|
||||
document itself may not be modified in any way, such as by removing
|
||||
the copyright notice or references to the Internet Society or other
|
||||
Internet organizations, except as needed for the purpose of
|
||||
developing Internet standards in which case the procedures for
|
||||
copyrights defined in the Internet Standards process must be
|
||||
followed, or as required to translate it into languages other than
|
||||
English.
|
||||
|
||||
The limited permissions granted above are perpetual and will not be
|
||||
revoked by the Internet Society or its successors or assigns.
|
||||
|
||||
This document and the information contained herein is provided on an
|
||||
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
||||
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
|
||||
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
License notice for Algorithm from Internet Draft document "UUIDs and GUIDs"
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
|
||||
Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
|
||||
Digital Equipment Corporation, Maynard, Mass.
|
||||
To anyone who acknowledges that this file is provided "AS IS"
|
||||
without any express or implied warranty: permission to use, copy,
|
||||
modify, and distribute this file for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notices and
|
||||
this notice appears in all source code copies, and that none of
|
||||
the names of Open Software Foundation, Inc., Hewlett-Packard
|
||||
Company, or Digital Equipment Corporation be used in advertising
|
||||
or publicity pertaining to distribution of the software without
|
||||
specific, written prior permission. Neither Open Software
|
||||
Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment
|
||||
Corporation makes any representations about the suitability of
|
||||
this software for any purpose.
|
||||
|
||||
Copyright(C) The Internet Society 1997. All Rights Reserved.
|
||||
|
||||
This document and translations of it may be copied and furnished to others,
|
||||
and derivative works that comment on or otherwise explain it or assist in
|
||||
its implementation may be prepared, copied, published and distributed, in
|
||||
whole or in part, without restriction of any kind, provided that the above
|
||||
copyright notice and this paragraph are included on all such copies and
|
||||
derivative works.However, this document itself may not be modified in any
|
||||
way, such as by removing the copyright notice or references to the Internet
|
||||
Society or other Internet organizations, except as needed for the purpose of
|
||||
developing Internet standards in which case the procedures for copyrights
|
||||
defined in the Internet Standards process must be followed, or as required
|
||||
to translate it into languages other than English.
|
||||
|
||||
The limited permissions granted above are perpetual and will not be revoked
|
||||
by the Internet Society or its successors or assigns.
|
||||
|
||||
This document and the information contained herein is provided on an "AS IS"
|
||||
basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
|
||||
DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
|
||||
RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
|
||||
PARTICULAR PURPOSE.
|
||||
|
||||
License notice for Algorithm from RFC 4122 -
|
||||
A Universally Unique IDentifier (UUID) URN Namespace
|
||||
----------------------------------------------------
|
||||
|
||||
Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
|
||||
Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
|
||||
Digital Equipment Corporation, Maynard, Mass.
|
||||
Copyright (c) 1998 Microsoft.
|
||||
To anyone who acknowledges that this file is provided "AS IS"
|
||||
without any express or implied warranty: permission to use, copy,
|
||||
modify, and distribute this file for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notices and
|
||||
this notice appears in all source code copies, and that none of
|
||||
the names of Open Software Foundation, Inc., Hewlett-Packard
|
||||
Company, Microsoft, or Digital Equipment Corporation be used in
|
||||
advertising or publicity pertaining to distribution of the software
|
||||
without specific, written prior permission. Neither Open Software
|
||||
Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
|
||||
Equipment Corporation makes any representations about the
|
||||
suitability of this software for any purpose."
|
||||
|
||||
License notice for The LLVM Compiler Infrastructure
|
||||
---------------------------------------------------
|
||||
|
||||
Developed by:
|
||||
|
||||
LLVM Team
|
||||
|
||||
University of Illinois at Urbana-Champaign
|
||||
|
||||
http://llvm.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal with
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimers.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimers in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the names of the LLVM Team, University of Illinois at
|
||||
Urbana-Champaign, nor the names of its contributors may be used to
|
||||
endorse or promote products derived from this Software without specific
|
||||
prior written permission.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
|
||||
SOFTWARE.
|
||||
|
||||
License notice for Bob Jenkins
|
||||
------------------------------
|
||||
|
||||
By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this
|
||||
code any way you wish, private, educational, or commercial. It's free.
|
||||
|
||||
License notice for Greg Parker
|
||||
------------------------------
|
||||
|
||||
Greg Parker gparker@cs.stanford.edu December 2000
|
||||
This code is in the public domain and may be copied or modified without
|
||||
permission.
|
||||
|
||||
License notice for libunwind based code
|
||||
----------------------------------------
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
License notice for Printing Floating-Point Numbers (Dragon4)
|
||||
------------------------------------------------------------
|
||||
|
||||
/******************************************************************************
|
||||
Copyright (c) 2014 Ryan Juckett
|
||||
http://www.ryanjuckett.com/
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
******************************************************************************/
|
||||
|
||||
License notice for Printing Floating-point Numbers (Grisu3)
|
||||
-----------------------------------------------------------
|
||||
|
||||
Copyright 2012 the V8 project authors. All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* 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.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"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 THE COPYRIGHT
|
||||
OWNER 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.
|
||||
|
||||
License notice for xxHash
|
||||
-------------------------
|
||||
|
||||
xxHash Library
|
||||
Copyright (c) 2012-2014, Yann Collet
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* 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 THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT HOLDER 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.
|
||||
|
||||
License notice for Berkeley SoftFloat Release 3e
|
||||
------------------------------------------------
|
||||
|
||||
https://github.com/ucb-bar/berkeley-softfloat-3
|
||||
https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt
|
||||
|
||||
License for Berkeley SoftFloat Release 3e
|
||||
|
||||
John R. Hauser
|
||||
2018 January 20
|
||||
|
||||
The following applies to the whole of SoftFloat Release 3e as well as to
|
||||
each source file individually.
|
||||
|
||||
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
|
||||
University of California. 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.
|
||||
|
||||
3. Neither the name of the University nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "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 THE REGENTS 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.
|
||||
|
||||
License notice for Xorshift RNGs
|
||||
--------------------------------
|
||||
|
||||
George Marsaglia
|
||||
2003-07-04
|
||||
Journal of Statistical Software
|
||||
License: http://creativecommons.org/licenses/by/3.0/
|
||||
|
||||
https://www.jstatsoft.org/article/view/v008i14
|
||||
https://www.jstatsoft.org/index.php/jss/article/view/v008i14/xorshift.pdf
|
||||
|
||||
License notice for Xorshift (Wikipedia)
|
||||
---------------------------------------
|
||||
|
||||
https://en.wikipedia.org/wiki/Xorshift
|
||||
License: https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License
|
||||
|
||||
License for fastmod (https://github.com/lemire/fastmod)
|
||||
--------------------------------------
|
||||
|
||||
Copyright 2018 Daniel Lemire
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
License notice for The C++ REST SDK
|
||||
-----------------------------------
|
||||
|
||||
C++ REST SDK
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
License notice for MessagePack-CSharp
|
||||
-------------------------------------
|
||||
|
||||
MessagePack for C#
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Yoshifumi Kawai
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
License notice for lz4net
|
||||
-------------------------------------
|
||||
|
||||
lz4net
|
||||
|
||||
Copyright (c) 2013-2017, Milosz Krajewski
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
|
||||
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 THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT HOLDER 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.
|
||||
|
||||
License notice for Nerdbank.Streams
|
||||
-----------------------------------
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Andrew Arnott
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
License notice for RapidJSON
|
||||
----------------------------
|
||||
|
||||
Tencent is pleased to support the open source community by making RapidJSON available.
|
||||
|
||||
Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
|
||||
|
||||
Licensed under the MIT License (the "License"); you may not use this file except
|
||||
in compliance with the License. You may obtain a copy of the License at
|
||||
|
||||
http://opensource.org/licenses/MIT
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software distributed
|
||||
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||
CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations under the License.
|
||||
|
||||
License notice for DirectX Math Library
|
||||
---------------------------------------
|
||||
|
||||
https://github.com/microsoft/DirectXMath/blob/master/LICENSE
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2011-2020 Microsoft Corp
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||
software and associated documentation files (the "Software"), to deal in the Software
|
||||
without restriction, including without limitation the rights to use, copy, modify,
|
||||
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies
|
||||
or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
License notice for ldap4net
|
||||
---------------------------
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2018 Alexander Chermyanin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
License notice for vectorized sorting code
|
||||
------------------------------------------
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 Dan Shechter
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/MonoAndroid10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/MonoAndroid10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/MonoTouch10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/MonoTouch10/_._
vendored
Normal file
12076
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/netcoreapp3.0/System.Drawing.Common.xml
vendored
Normal file
12076
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/netcoreapp3.0/System.Drawing.Common.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/xamarinios10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/xamarinios10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/xamarinmac20/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/xamarinmac20/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/xamarintvos10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/xamarintvos10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/xamarinwatchos10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/lib/xamarinwatchos10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/MonoAndroid10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/MonoAndroid10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/MonoTouch10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/MonoTouch10/_._
vendored
Normal file
12076
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/netcoreapp3.0/System.Drawing.Common.xml
vendored
Normal file
12076
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/netcoreapp3.0/System.Drawing.Common.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/xamarinios10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/xamarinios10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/xamarinmac20/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/xamarinmac20/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/xamarintvos10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/xamarintvos10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/xamarinwatchos10/_._
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/ref/xamarinwatchos10/_._
vendored
Normal file
File diff suppressed because it is too large
Load Diff
12076
LeatherProject/packages/System.Drawing.Common.5.0.3/runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.xml
vendored
Normal file
12076
LeatherProject/packages/System.Drawing.Common.5.0.3/runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
0
LeatherProject/packages/System.Drawing.Common.5.0.3/useSharedDesignerContext.txt
vendored
Normal file
0
LeatherProject/packages/System.Drawing.Common.5.0.3/useSharedDesignerContext.txt
vendored
Normal file
1
LeatherProject/packages/System.Drawing.Common.5.0.3/version.txt
vendored
Normal file
1
LeatherProject/packages/System.Drawing.Common.5.0.3/version.txt
vendored
Normal file
@ -0,0 +1 @@
|
||||
7211aa01b34bb55ca67bdddd6e80ce23ee201bd2
|
Loading…
Reference in New Issue
Block a user