Commit b7caf6ec 刘韬

853二期

1 个父辈 43fb10e8
正在显示 55 个修改的文件 包含 4249 行增加190 行删除
......@@ -35,9 +35,9 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\增广夹爪\Rmaxis\bin\Debug\log4net.dll</HintPath>
<HintPath>..\DLL\log4net.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
......
此文件类型无法预览
<?xml version="1.0"?>
<doc>
<assembly>
<name>Asa.Camera.VisionLib</name>
</assembly>
<members>
<member name="M:CameraVisionLib.Model.BarcodeAPI.eyemImageRead(System.String,System.Int32,CameraVisionLib.Model.BarcodeAPI.EyemImage@)">
<summary>
读取图像
</summary>
<param name="filename"></param>
<param name="iFalgs"></param>
<param name="ucpImage"></param>
<returns></returns>
</member>
<member name="M:CameraVisionLib.Model.BarcodeAPI.eyemImageFree(System.IntPtr)">
<summary>
释放图像资源
</summary>
<param name="ipImage"></param>
</member>
<member name="M:CameraVisionLib.Model.BarcodeAPI.eyemDetectAndDecodeFree(System.IntPtr)">
<summary>
释放工具
</summary>
<param name="hObject"></param>
<returns></returns>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemImage.ucpImage">
<summary>
地址
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemImage.iWidth">
<summary>
图像内存 x 方向大小
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemImage.iHeight">
<summary>
图像内存 y 方向大小
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemImage.iChannel">
<summary>
图像通道数
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemRect.iXs">
<summary>
起始点(左上角) x 坐标
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemRect.iYs">
<summary>
起始点(左上角) y 坐标
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemRect.iWidth">
<summary>
x 方向大小(宽度)
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemRect.iHeight">
<summary>
y 方向大小(高度)
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemBarCode.dAngle">
<summary>
角度
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemBarCode.iCenterX">
<summary>
x坐标
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemBarCode.iCenterY">
<summary>
y坐标
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemBarCode.hType">
<summary>
码类型
</summary>
</member>
<member name="F:CameraVisionLib.Model.BarcodeAPI.EyemBarCode.hText">
<summary>
码内容
</summary>
</member>
<member name="T:CameraVisionLib.Model.BarcodeInfo">
<summary>
条码信息,1DBarcode、2DBarcode
</summary>
</member>
<member name="P:CameraVisionLib.Model.BarcodeInfo.Text">
<summary>
文本
</summary>
</member>
<member name="P:CameraVisionLib.Model.BarcodeInfo.CodeType">
<summary>
条码类型
</summary>
</member>
<member name="P:CameraVisionLib.Model.BarcodeInfo.Center">
<summary>
中心点
</summary>
</member>
<member name="P:CameraVisionLib.Model.BarcodeInfo.Angle">
<summary>
角度,3点钟方向0°,逆时针为正,顺时针为负。
</summary>
</member>
<member name="P:CameraVisionLib.Model.BarcodeInfo.Size">
<summary>
条码尺寸大小
</summary>
</member>
<member name="P:CameraVisionLib.Model.BarcodeInfo.Distance">
<summary>
原点垂直于经过中心点的直线的距离
</summary>
</member>
<member name="M:CameraVisionLib.Model.BarcodeInfo.Clone">
<summary>
副本,深拷贝
</summary>
<returns></returns>
</member>
<member name="T:CameraVisionLib.Model.ScanCodeOrder">
<summary>
扫描条码的顺序
</summary>
</member>
<member name="F:CameraVisionLib.Model.ScanCodeOrder.HalconOnly">
<summary>
仅使用Halcon
</summary>
</member>
<member name="F:CameraVisionLib.Model.ScanCodeOrder.EyemLibOnly">
<summary>
仅使用EyemLib
</summary>
</member>
<member name="F:CameraVisionLib.Model.ScanCodeOrder.HalconEyemLib">
<summary>
优先Halcon,扫码失败时使用EyemLib
</summary>
</member>
<member name="F:CameraVisionLib.Model.ScanCodeOrder.EyemLibHalcon">
<summary>
优先EyemLib,扫码失败时使用Halcon
</summary>
</member>
<member name="T:CameraVisionLib.Model.CodeType">
<summary>
条码类型
</summary>
</member>
<member name="F:CameraVisionLib.Model.CodeType.All">
<summary>
一维和二维条码
</summary>
</member>
<member name="F:CameraVisionLib.Model.CodeType.Barcode1D">
<summary>
一维条码
</summary>
</member>
<member name="F:CameraVisionLib.Model.CodeType.Barcode2D">
<summary>
二维条码,QRCode,DataMatrix,PDF417
</summary>
</member>
<member name="T:CameraVisionLib.Model.IPCameraAPI">
<summary>
CHCNetSDK 的摘要说明。
</summary>
</member>
<member name="F:CameraVisionLib.Model.IPCameraAPI.NET_DVR_IPADDR.sIpV4">
char[16]
</member>
<member name="F:CameraVisionLib.Model.IPCameraAPI.NET_DVR_IPADDR.byRes">
BYTE[128]
</member>
<member name="F:CameraVisionLib.Model.IPCameraAPI.NET_DVR_ATM_FRAMEFORMAT_V30.byRes1">
输入方式:0-网络监听、1网络协议、2-串口监听、3-串口协议
</member>
<member name="F:CameraVisionLib.Model.IPCameraAPI.NET_VCA_POLYGON.dwPointNum">
DWORD->unsigned int
</member>
<member name="F:CameraVisionLib.Model.IPCameraAPI.MAX_OVERLAP_ITEM_NUM">
抓拍机
</member>
<member name="T:CameraVisionLib.Model.IPCameraInfo">
<summary>
登录信息
</summary>
</member>
<member name="T:Asa.Barcode.Identify">
<summary>
条码识别,1DBarcode、2DBarcode
</summary>
</member>
<member name="M:Asa.Barcode.Identify.#ctor(CameraVisionLib.Model.ScanParam)">
<summary>
条码识别,1DBarcode、2DBarcode
</summary>
<param name="param"></param>
</member>
<member name="M:Asa.Barcode.Identify.GetCode(System.Drawing.Bitmap)">
<summary>
获取条码
</summary>
<param name="image"></param>
<returns></returns>
</member>
<member name="T:Asa.Camera.VisionLib">
<summary>
视觉库
</summary>
</member>
<member name="M:Asa.Camera.VisionLib.#ctor(System.String,System.Boolean,System.String)">
<summary>
视觉库
</summary>
<param name="configPath"></param>
<param name="preload"></param>
<param name="logName"></param>
</member>
<member name="M:Asa.Camera.VisionLib.Dispose">
<summary>
释放
</summary>
</member>
<member name="P:Asa.Camera.VisionLib.Count">
<summary>
相机数量
</summary>
</member>
<member name="M:Asa.Camera.VisionLib.Load">
<summary>
加载相机,有预加载了就不需要调用
</summary>
</member>
<member name="M:Asa.Camera.VisionLib.SaveAsConfig(System.String)">
<summary>
另存为配置文件
</summary>
<param name="path"></param>
</member>
<member name="M:Asa.Camera.VisionLib.GetCameraName">
<summary>
获取相机名称
</summary>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.Open">
<summary>
打开
</summary>
</member>
<member name="M:Asa.Camera.VisionLib.Open(System.String)">
<summary>
打开
</summary>
<param name="cameraName"></param>
</member>
<member name="M:Asa.Camera.VisionLib.Close">
<summary>
关闭
</summary>
</member>
<member name="M:Asa.Camera.VisionLib.Close(System.String)">
<summary>
关闭
</summary>
<param name="cameraName"></param>
</member>
<member name="M:Asa.Camera.VisionLib.GetImage">
<summary>
获取当前图像
</summary>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.GetImage(System.Int32)">
<summary>
按索引获取当前图像
</summary>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.GetImage(System.String)">
<summary>
获取当前图像
</summary>
<param name="cameraName"></param>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.SaveImage(System.String,System.String,System.Drawing.Imaging.ImageFormat)">
<summary>
保存当前图像
</summary>
<param name="path">文件夹路径</param>
<param name="fileName">文件名,不带扩展名</param>
<param name="format">图像类型</param>
</member>
<member name="M:Asa.Camera.VisionLib.SaveImage(System.String,System.String,System.String,System.Drawing.Imaging.ImageFormat)">
<summary>
保存当前图像
</summary>
<param name="cameraName">相机名称</param>
<param name="path">文件夹路径</param>
<param name="fileName">文件名,不带扩展名</param>
<param name="format">图像类型</param>
</member>
<member name="M:Asa.Camera.VisionLib.PreviewImage(System.String,System.IntPtr)">
<summary>
预览图像,目前仅支持 HIK.IPCamera
</summary>
<param name="cameraName"></param>
<param name="handle"></param>
</member>
<member name="M:Asa.Camera.VisionLib.GetBarCodeText(System.Collections.Generic.List{System.Drawing.Bitmap}@)">
<summary>
从相机图像获取条码
</summary>
<param name="image"></param>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.GetBarCodeText(System.String,System.Drawing.Bitmap@)">
<summary>
从相机图像获取条码
</summary>
<param name="cameraName"></param>
<param name="image"></param>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.GetBarCodeText(System.Drawing.Bitmap)">
<summary>
从给定的图像中获取条码文本
</summary>
<param name="bmp"></param>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.GetBarCodeText(System.Collections.Generic.List{CameraVisionLib.Model.BarcodeInfo})">
<summary>
从给定的条码中获取条码文本
</summary>
<param name="info"></param>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.GetBarCode(System.Collections.Generic.List{System.Drawing.Bitmap}@)">
<summary>
从相机图像获取条码
</summary>
<param name="image"></param>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.GetBarCode(System.String,System.Drawing.Bitmap@)">
<summary>
从相机图像获取条码
</summary>
<param name="cameraName"></param>
<param name="image"></param>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.GetBarCode(System.Drawing.Bitmap)">
<summary>
从给定的图像中获取条码
</summary>
<param name="bmp"></param>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.FeatureSingleCompare(System.String,System.String,System.Collections.Generic.Dictionary{System.String,System.Boolean}@,System.Drawing.Bitmap@)">
<summary>
特征单张比较图,没有原图
</summary>
<param name="cameraName"></param>
<param name="planName"></param>
<param name="exist"></param>
<param name="image"></param>
<returns></returns>
</member>
<member name="M:Asa.Camera.VisionLib.FeatureSingleCompare(System.Drawing.Bitmap,System.String,System.String,System.Collections.Generic.Dictionary{System.String,System.Boolean}@)">
<summary>
特征单张比较图,没有原图
</summary>
<param name="bmp"></param>
<param name="cameraName"></param>
<param name="planName"></param>
<param name="exist"></param>
<returns></returns>
</member>
<member name="F:Asa.Camera.FrmOpenCamera.components">
<summary>
Required designer variable.
</summary>
</member>
<member name="M:Asa.Camera.FrmOpenCamera.Dispose(System.Boolean)">
<summary>
Clean up any resources being used.
</summary>
<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
</member>
<member name="M:Asa.Camera.FrmOpenCamera.InitializeComponent">
<summary>
Required method for Designer support - do not modify
the contents of this method with the code editor.
</summary>
</member>
<member name="F:Asa.Camera.FrmSetting.components">
<summary>
Required designer variable.
</summary>
</member>
<member name="M:Asa.Camera.FrmSetting.Dispose(System.Boolean)">
<summary>
Clean up any resources being used.
</summary>
<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
</member>
<member name="M:Asa.Camera.FrmSetting.InitializeComponent">
<summary>
Required method for Designer support - do not modify
the contents of this method with the code editor.
</summary>
</member>
<member name="T:Asa.HIK.IPCamera">
<summary>
网络监控摄像机
</summary>
</member>
<member name="M:Asa.HIK.IPCamera.#ctor(System.Collections.Generic.List{CameraVisionLib.Model.IPCameraInfo})">
<summary>
网络监控摄像机
</summary>
<param name="info"></param>
</member>
<member name="P:Asa.HIK.IPCamera.Name">
<summary>
相机名称
</summary>
</member>
<member name="P:Asa.HIK.IPCamera.Count">
<summary>
相机总数
</summary>
</member>
<member name="P:Asa.HIK.IPCamera.IsOpen">
<summary>
相机是否打开
</summary>
</member>
<member name="P:Asa.HIK.IPCamera.Size">
<summary>
图像分辨率
</summary>
</member>
<member name="P:Asa.HIK.IPCamera.Image">
<summary>
相机获取到的图像
</summary>
</member>
<member name="M:Asa.HIK.IPCamera.Load">
<summary>
加载
</summary>
<returns></returns>
</member>
<member name="M:Asa.HIK.IPCamera.Dispose">
<summary>
释放所有
</summary>
</member>
<member name="M:Asa.HIK.IPCamera.OpenAll">
<summary>
打开所有摄像机
</summary>
<returns></returns>
</member>
<member name="M:Asa.HIK.IPCamera.CloseAll">
<summary>
关闭所有摄像机
</summary>
</member>
<member name="M:Asa.HIK.IPCamera.Open(System.Int32)">
<summary>
打开摄像机
</summary>
<param name="cameraIndex"></param>
<returns></returns>
</member>
<member name="M:Asa.HIK.IPCamera.Open(System.String)">
<summary>
打开摄像机
</summary>
<param name="cameraName"></param>
<returns></returns>
</member>
<member name="M:Asa.HIK.IPCamera.Close(System.Int32)">
<summary>
关闭摄像机
</summary>
<param name="cameraIndex"></param>
</member>
<member name="M:Asa.HIK.IPCamera.Close(System.String)">
<summary>
关闭摄像机
</summary>
<param name="cameraName"></param>
</member>
<member name="M:Asa.HIK.IPCamera.GrabOne(System.Drawing.Bitmap[]@)">
<summary>
抓取所有摄像机一张图像
</summary>
<param name="bmp"></param>
</member>
<member name="M:Asa.HIK.IPCamera.GrabOne(System.Int32)">
<summary>
抓取一张图像
</summary>
<param name="cameraIndex">相机索引</param>
<returns></returns>
</member>
<member name="M:Asa.HIK.IPCamera.GrabOne(System.Int32,System.Drawing.Bitmap@)">
<summary>
抓取一张图像
</summary>
<param name="cameraIndex">相机索引</param>
<param name="bmp">Bitmap图像</param>
<returns></returns>
</member>
<member name="M:Asa.HIK.IPCamera.GrabOne(System.String,System.Drawing.Bitmap@)">
<summary>
抓取一张图像
</summary>
<param name="cameraName">相机名称</param>
<param name="bmp">Bitmap图像</param>
<returns></returns>
</member>
<member name="M:Asa.HIK.IPCamera.GrabOne(System.Int32,System.Byte[]@,System.Drawing.Imaging.PixelFormat@)">
<summary>
抓取一张图像字节
</summary>
<param name="cameraIndex">相机索引</param>
<param name="buff">图像字节数组</param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:Asa.HIK.IPCamera.GrabOne(System.Int32,System.IntPtr@,System.Drawing.Imaging.PixelFormat@)">
<summary>
抓取一张图像指针
</summary>
<param name="cameraIndex"></param>
<param name="handle"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:Asa.HIK.IPCamera.PreviewImage(System.String,System.IntPtr)">
<summary>
预览图像
</summary>
<param name="cameraName"></param>
<param name="handle"></param>
<returns></returns>
</member>
<member name="T:Asa.HIK.VisionCamera">
<summary>
机器视觉面阵相机
</summary>
</member>
<member name="M:Asa.HIK.VisionCamera.#ctor">
<summary>
机器视觉面阵相机
</summary>
</member>
<member name="P:Asa.HIK.VisionCamera.Name">
<summary>
相机名称
</summary>
</member>
<member name="P:Asa.HIK.VisionCamera.Count">
<summary>
相机总数
</summary>
</member>
<member name="P:Asa.HIK.VisionCamera.IsOpen">
<summary>
相机是否打开
</summary>
</member>
<member name="P:Asa.HIK.VisionCamera.Size">
<summary>
图像分辨率
</summary>
</member>
<member name="P:Asa.HIK.VisionCamera.Image">
<summary>
相机获取到的图像
</summary>
</member>
<member name="M:Asa.HIK.VisionCamera.Load">
<summary>
加载
</summary>
<returns></returns>
</member>
<member name="M:Asa.HIK.VisionCamera.Dispose">
<summary>
释放所有
</summary>
</member>
<member name="M:Asa.HIK.VisionCamera.OpenAll">
<summary>
打开所有相机
</summary>
<returns></returns>
</member>
<member name="M:Asa.HIK.VisionCamera.CloseAll">
<summary>
关闭所有相机
</summary>
</member>
<member name="M:Asa.HIK.VisionCamera.Open(System.Int32)">
<summary>
打开相机
</summary>
<param name="cameraIndex"></param>
<returns></returns>
</member>
<member name="M:Asa.HIK.VisionCamera.Open(System.String)">
<summary>
打开相机
</summary>
<param name="cameraName"></param>
<returns></returns>
</member>
<member name="M:Asa.HIK.VisionCamera.Close(System.Int32)">
<summary>
关闭相机
</summary>
<param name="cameraIndex"></param>
</member>
<member name="M:Asa.HIK.VisionCamera.Close(System.String)">
<summary>
关闭相机
</summary>
<param name="cameraName"></param>
</member>
<member name="M:Asa.HIK.VisionCamera.GrabOne(System.Drawing.Bitmap[]@)">
<summary>
抓取所有相机一张图像
</summary>
<param name="bmp"></param>
</member>
<member name="M:Asa.HIK.VisionCamera.GrabOne(System.Int32)">
<summary>
抓取一张图像
</summary>
<param name="cameraIndex">相机索引</param>
<returns></returns>
</member>
<member name="M:Asa.HIK.VisionCamera.GrabOne(System.Int32,System.Drawing.Bitmap@)">
<summary>
抓取一张图像
</summary>
<param name="cameraIndex">相机索引</param>
<param name="bmp">Bitmap图像</param>
<returns></returns>
</member>
<member name="M:Asa.HIK.VisionCamera.GrabOne(System.String,System.Drawing.Bitmap@)">
<summary>
抓取一张图像
</summary>
<param name="cameraName">相机名称</param>
<param name="bmp">Bitmap图像</param>
<returns></returns>
</member>
<member name="M:Asa.HIK.VisionCamera.GrabOne(System.Int32,System.Byte[]@,System.Drawing.Imaging.PixelFormat@)">
<summary>
抓取一张图像字节
</summary>
<param name="cameraIndex">相机索引</param>
<param name="buff">图像字节数组</param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:Asa.HIK.VisionCamera.GrabOne(System.Int32,System.IntPtr@,System.Drawing.Imaging.PixelFormat@)">
<summary>
抓取一张图像指针
</summary>
<param name="cameraIndex"></param>
<param name="handle"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="T:Asa.Basler.VisionCamera">
<summary>
机器视觉面阵相机
</summary>
</member>
<member name="F:Asa.Basler.VisionCamera.cameraCurr">
<summary>
当前相机
</summary>
</member>
<member name="F:Asa.Basler.VisionCamera.cameraAll">
<summary>
所有相机列表
</summary>
</member>
<member name="F:Asa.Basler.VisionCamera.cameraName">
<summary>
所有相机的名称
</summary>
</member>
<member name="M:Asa.Basler.VisionCamera.#ctor">
<summary>
机器视觉面阵相机
</summary>
</member>
<member name="P:Asa.Basler.VisionCamera.Name">
<summary>
相机名称
</summary>
</member>
<member name="P:Asa.Basler.VisionCamera.Count">
<summary>
相机总数
</summary>
</member>
<member name="P:Asa.Basler.VisionCamera.IsOpen">
<summary>
相机是否打开
</summary>
</member>
<member name="P:Asa.Basler.VisionCamera.Size">
<summary>
图像分辨率
</summary>
</member>
<member name="P:Asa.Basler.VisionCamera.Image">
<summary>
相机获取到的图像
</summary>
</member>
<member name="M:Asa.Basler.VisionCamera.Load">
<summary>
加载
</summary>
<returns></returns>
</member>
<member name="M:Asa.Basler.VisionCamera.Dispose">
<summary>
释放所有
</summary>
</member>
<member name="M:Asa.Basler.VisionCamera.OpenAll">
<summary>
打开所有摄像机
</summary>
<returns></returns>
</member>
<member name="M:Asa.Basler.VisionCamera.CloseAll">
<summary>
关闭所有摄像机
</summary>
</member>
<member name="M:Asa.Basler.VisionCamera.Open(System.Int32)">
<summary>
打开摄像机
</summary>
<param name="cameraIndex"></param>
<returns></returns>
</member>
<member name="M:Asa.Basler.VisionCamera.Open(System.String)">
<summary>
打开相机
</summary>
<param name="cameraName"></param>
<returns></returns>
</member>
<member name="M:Asa.Basler.VisionCamera.Close(System.Int32)">
<summary>
关闭摄像机
</summary>
<param name="cameraIndex"></param>
</member>
<member name="M:Asa.Basler.VisionCamera.Close(System.String)">
<summary>
关闭摄像机
</summary>
<param name="cameraName"></param>
</member>
<member name="M:Asa.Basler.VisionCamera.GrabOne(System.Drawing.Bitmap[]@)">
<summary>
抓取所有摄像机一张图像
</summary>
<param name="bmp"></param>
</member>
<member name="M:Asa.Basler.VisionCamera.GrabOne(System.Int32)">
<summary>
抓取一张图像
</summary>
<param name="cameraIndex">相机索引</param>
<returns></returns>
</member>
<member name="M:Asa.Basler.VisionCamera.GrabOne(System.Int32,System.Drawing.Bitmap@)">
<summary>
抓取一张图像
</summary>
<param name="cameraIndex">相机索引</param>
<param name="bmp">Bitmap图像</param>
<returns></returns>
</member>
<member name="M:Asa.Basler.VisionCamera.GrabOne(System.String,System.Drawing.Bitmap@)">
<summary>
抓取一张图像
</summary>
<param name="cameraName">相机名称</param>
<param name="bmp">Bitmap图像</param>
<returns></returns>
</member>
<member name="M:Asa.Basler.VisionCamera.GrabOne(System.Int32,System.Byte[]@,System.Drawing.Imaging.PixelFormat@)">
<summary>
抓取一张图像字节
</summary>
<param name="cameraIndex">相机索引</param>
<param name="buff">图像字节数组</param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:Asa.Basler.VisionCamera.GrabOne(System.Int32,System.IntPtr@,System.Drawing.Imaging.PixelFormat@)">
<summary>
抓取一张图像指针
</summary>
<param name="cameraIndex"></param>
<param name="handle"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="T:Asa.Region.Feature">
<summary>
区域特征
</summary>
</member>
<member name="M:Asa.Region.Feature.#ctor(System.Collections.Generic.List{System.String},System.Collections.Generic.List{CameraVisionLib.Model.RegionAPI.EyemRegion})">
<summary>
区域特征
</summary>
<param name="name"></param>
<param name="regions"></param>
</member>
<member name="M:Asa.Region.Feature.OriginalImage(System.Drawing.Bitmap)">
<summary>
原始图像
</summary>
<param name="image"></param>
<returns></returns>
</member>
<member name="M:Asa.Region.Feature.CompareImage(System.Drawing.Bitmap,System.Collections.Generic.Dictionary{System.String,System.Boolean}@)">
<summary>
比较图像
</summary>
<param name="image"></param>
<param name="exist"></param>
<returns></returns>
</member>
<member name="M:Asa.Region.Feature.CompareImage(System.Drawing.Bitmap,System.Collections.Generic.Dictionary{System.String,System.Boolean}@,System.Drawing.Bitmap@)">
<summary>
比较图像
</summary>
<param name="image"></param>
<param name="exist"></param>
<param name="dspImage"></param>
<returns></returns>
</member>
<member name="M:Asa.Region.Feature.CompareImage(System.IntPtr,System.Drawing.Imaging.PixelFormat,System.Collections.Generic.Dictionary{System.String,System.Boolean}@,System.Drawing.Bitmap@)">
<summary>
比较图像
</summary>
<param name="bmpPtr"></param>
<param name="format"></param>
<param name="exist"></param>
<param name="dspImage"></param>
<returns></returns>
</member>
<member name="M:Asa.Region.Feature.CompareSingleImage(System.Drawing.Bitmap,System.Collections.Generic.Dictionary{System.String,System.Boolean}@)">
<summary>
比较单张图像,没有原图
</summary>
<param name="image"></param>
<param name="exist"></param>
<returns></returns>
</member>
</members>
</doc>
此文件类型无法预览
<?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>
</assemblyBinding>
</runtime>
</configuration>
\ No newline at end of file
<?xml version="1.0"?>
<doc>
<assembly>
<name>Asa.CarerayImage</name>
</assembly>
<members>
<member name="T:Asa.HBIRETCODE">
<summary>
昊博错误代码
</summary>
</member>
<member name="P:Asa.haobo_v1.ImageWidth">
<summary>
图像宽度
</summary>
</member>
<member name="P:Asa.haobo_v1.ImageHeight">
<summary>
图像高度
</summary>
</member>
<member name="P:Asa.haobo_v1.WindowWidth">
<summary>
窗宽
</summary>
</member>
<member name="P:Asa.haobo_v1.WindowLevel">
<summary>
窗位
</summary>
</member>
<member name="M:Asa.haobo_v1.SetExposureTime(System.Int32)">
<summary>
设置曝光时间
</summary>
<param name="time"></param>
</member>
<member name="M:Asa.haobo_v1.LoadRAW(System.String)">
<summary>
加载本地RAW图片,64字节头
</summary>
<param name="filePath">图片路径</param>
</member>
<member name="M:Asa.haobo_v1.SaveRAW(System.String)">
<summary>
保存本地RAW图片
</summary>
<param name="filePath">图片路径</param>
</member>
<member name="M:Asa.haobo_v1.GenerateTemplate(System.Int32)">
<summary>
校准平板
</summary>
<param name="mode">1:暗场校准,2亮场校准</param>
<returns></returns>
</member>
<member name="F:Asa.HaoboSDK_v2.HBI_FPD_DLL._handel">
<summary>
记录与Detector连接后的句柄
</summary>
</member>
<member name="F:Asa.HaoboSDK_v1.HBI_FPD_DLL._handel">
<summary>
记录与Detector连接后的句柄
</summary>
</member>
<member name="T:Asa.ONNXAlgoMatch">
<summary>
ONNX算法匹配
</summary>
</member>
<member name="M:Asa.ONNXAlgoMatch.MatchPID(System.String,System.Int32,System.Single@)">
<summary>
匹配算法PID
</summary>
<param name="fileName"></param>
<param name="ShrinkOffset"></param>
<param name="matchDeg">匹配百分比</param>
<returns></returns>
</member>
<member name="T:Asa.eyemLib">
<summary>
点料和解码
</summary>
</member>
<member name="M:Asa.eyemLib.setSkipProcessID(System.Int32)">
<summary>
结束之前的算法计算
</summary>
<param name="pid">-1复位, 0结束</param>
<returns></returns>
</member>
<member name="M:Asa.eyemLib.eyemInitONNXModel(System.String)">
<summary>
初始化ONNX模型(10.0)
</summary>
<param name="extractorModelPath">模型路径</param>
<returns></returns>
</member>
<member name="M:Asa.eyemLib.eyemExtractWithONNX(Asa.eyemLib.EyemImage,System.Single[])">
<summary>
特征提取器
</summary>
<param name="tpImage">图像(128X128)</param>
<param name="fFeatures">特征</param>
<returns></returns>
</member>
<member name="M:Asa.eyemLib.calcSimilarity(System.Single[],System.Single[])">
<summary>
特征匹配
</summary>
<param name="lhs">向量一</param>
<param name="rhs">向量二</param>
<returns></returns>
</member>
<member name="M:Asa.eyemLib.eyemTrainImageSampler(Asa.eyemLib.EyemImage,System.Int32,System.String,System.String,Asa.eyemLib.EyemImage@,Asa.eyemLib.EyemImage@)">
<summary>
对图像进行采样生成训练样本
</summary>
<param name="tpImage">图像</param>
<param name="iSize">尺寸128(最大224)</param>
<param name="ccClassName">类名</param>
<param name="ccToPath">保存路径</param>
<returns></returns>
</member>
<member name="T:Asa.eyemLib.EyemImage">
<summary>
图像信息
</summary>
</member>
<member name="F:Asa.eyemLib.EyemImage.ucpImage">
<summary>
地址
</summary>
</member>
<member name="F:Asa.eyemLib.EyemImage.iWidth">
<summary>
图像内存 x 方向大小
</summary>
</member>
<member name="F:Asa.eyemLib.EyemImage.iHeight">
<summary>
图像内存 y 方向大小
</summary>
</member>
<member name="F:Asa.eyemLib.EyemImage.iDepth">
<summary>
iDepth:
uint8_t 取值范围[0, 255], iDepth = 0(常用,解码图像一般为此种格式)
int8_t 取值范围[-128, 127], iDepth = 1
uint16_t 取值范围[0, 56635], iDepth = 2(常用,点料机图像一般为此种格式)
int16_t 取值范围[-32768, 32767], iDepth = 3
int32_t 取值范围[-2147483648, 2147483647], iDepth = 4
float_t 取值范围[-3.4028235E38, 3.4028235E38], iDepth = 5
double_t 取值范围[-1.7E-308, 1.7E+308], iDepth = 6
</summary>
</member>
<member name="F:Asa.eyemLib.EyemImage.iChannels">
<summary>
彩色图 iChannels=3或4(比RGB多了Alpha通道),一般为3
灰度图 iChannels = 1
</summary>
</member>
<member name="M:Asa.eyemLib.eyemDetectAndDecode(Asa.eyemLib.EyemImage,Asa.eyemLib.EyemRect,System.String,System.String,Asa.eyemLib.DataCodeHandle@,Asa.eyemLib.EyemBarCode*@,System.Int32@,System.Boolean,System.Int32,System.Int32,System.Int32,System.Int32,System.Double,System.Double,System.Double)">
<summary>
扫码接口
</summary>
<param name="tpImage"></param>
<param name="tpRoi">扫码区域</param>
<param name="fileName"></param>
<param name="strCodeType"></param>
<param name="hObject"></param>
<param name="tpResults"></param>
<param name="ipNum"></param>
<param name="bUseNiBlack"></param>
<param name="iBlockSize"></param>
<param name="iRangeC"></param>
<param name="iSymbolMin"></param>
<param name="iSymbolMax"></param>
<param name="dScaleUpAndDown">缩放值</param>
<param name="dToleErr"></param>
<param name="dMinorStep"></param>
<returns></returns>
</member>
<member name="M:Asa.eyemLib.eyemDetectAndDecodeFree(System.IntPtr)">
<summary>
释放工具
</summary>
<param name="hObject"></param>
<returns></returns>
</member>
<member name="T:Asa.eyemLib.DataCodeHandle">
<summary>
释放
</summary>
</member>
<member name="M:Asa.eyemLib.eyemMulFuncTool(Asa.eyemLib.EyemImage,Asa.eyemLib.EyemRect,System.String,System.Double,Asa.eyemLib.EyemOcsFXYR@,Asa.eyemLib.EyemImage@)">
<summary>
</summary>
<param name="tpImage"></param>
<param name="tpRoi"></param>
<param name="funcName">__func1</param>
<param name="dThreshold"></param>
<param name="tpCircle"></param>
<param name="tpDstImg"></param>
<returns></returns>
</member>
<member name="P:Asa.haobo_v2.ImageWidth">
<summary>
图像宽度
</summary>
</member>
<member name="P:Asa.haobo_v2.ImageHeight">
<summary>
图像高度
</summary>
</member>
<member name="P:Asa.haobo_v2.WindowWidth">
<summary>
窗宽
</summary>
</member>
<member name="P:Asa.haobo_v2.WindowLevel">
<summary>
窗位
</summary>
</member>
<member name="M:Asa.haobo_v2.SetExposureTime(System.Int32)">
<summary>
设置曝光时间
</summary>
<param name="time"></param>
</member>
<member name="M:Asa.haobo_v2.LoadRAW(System.String)">
<summary>
加载本地RAW图片,64字节头
</summary>
<param name="filePath">图片路径</param>
</member>
<member name="M:Asa.haobo_v2.SaveRAW(System.String)">
<summary>
保存本地RAW图片
</summary>
<param name="filePath">图片路径</param>
</member>
<member name="M:Asa.haobo_v2.GenerateTemplate(System.Int32)">
<summary>
校准平板
</summary>
<param name="mode">1:暗场校准,2亮场校准</param>
<returns></returns>
</member>
<member name="M:Asa.MatchLib.match(System.String,System.Int32,System.String@)">
<summary>
匹配元器件外观类型
</summary>
<param name="filename">x光图像文件名</param>
<param name="ShrinkOffset">图像剪裁范围</param>
<param name="pn">返回标识</param>
<returns>匹配分值 -1:匹配失败 >=0:匹配成功</returns>
</member>
<member name="M:Asa.MatchLib.learn(System.String,System.Int32,System.String)">
<summary>
学习元器件外观
</summary>
<param name="filename">x光图像</param>
<param name="ShrinkOffset">图像剪裁范围</param>
<param name="pn">标识符</param>
</member>
<member name="T:Asa.XrayImage">
<summary>
Careray平板图像
</summary>
</member>
<member name="M:Asa.XrayImage.ReloadEyemlib">
<summary>
重载eyemLib.dll
</summary>
</member>
<member name="F:Asa.XrayImage.AlgoIndex">
<summary>
算法名称对索引应序号
</summary>
</member>
<member name="M:Asa.XrayImage.GetAlgoIndex(System.String[])">
<summary>
返回算法索引序列
</summary>
</member>
<member name="P:Asa.XrayImage.WindowLevel">
<summary>
16位窗位
</summary>
</member>
<member name="P:Asa.XrayImage.WindowWidth">
<summary>
16位窗宽
</summary>
</member>
<member name="M:Asa.XrayImage.#ctor(System.String,Asa.XrayImage.DeviceType)">
<summary>
Careray平板图像
</summary>
</member>
<member name="M:Asa.XrayImage.Open">
<summary>
打开设备
</summary>
<returns></returns>
</member>
<member name="M:Asa.XrayImage.Close">
<summary>
关闭设备
</summary>
<returns></returns>
</member>
<member name="M:Asa.XrayImage.GetImage(System.Int32,System.Int32)">
<summary>
获取图像
</summary>
<returns></returns>
</member>
<member name="M:Asa.XrayImage.Get48bImage">
<summary>
获取48位RGB图像
</summary>
<returns></returns>
</member>
<member name="M:Asa.XrayImage.GetRawBufferHandle">
<summary>
获取raw数据指针
</summary>
<returns></returns>
</member>
<member name="M:Asa.XrayImage.FreeRawBufferHandle">
<summary>
释放raw指针
</summary>
</member>
<member name="M:Asa.XrayImage.GetLocalCount(System.String,System.Int32,System.Int32[]@,System.Drawing.Bitmap@)">
<summary>
本地文件普通器件点料
</summary>
<param name="path"></param>
<param name="ShrinkOffset"></param>
<param name="count"></param>
<param name="tpDstImg"></param>
<returns></returns>
</member>
<member name="M:Asa.XrayImage.GetLocalCountIrregular(System.String,System.Int32,System.String,System.Int32[]@,System.Drawing.Bitmap@)">
<summary>
本地文件异性器件点料
</summary>
<param name="path"></param>
<param name="ShrinkOffset"></param>
<param name="type"></param>
<param name="count"></param>
<param name="tpDstImg"></param>
<returns></returns>
</member>
<member name="M:Asa.XrayImage.GetCountObjectIrregularPartsMultiopt(System.String,System.Int32,System.String[],System.Int32[]@,System.Drawing.Bitmap@)">
<summary>
4盘算法点料
1 4
5
2 3
</summary>
</member>
<member name="M:Asa.XrayImage.GetCountObjectIrregularPartsMultiopt(Asa.eyemLib.EyemImage,System.Int32,System.String[],System.Int32[]@,System.Drawing.Bitmap@)">
<summary>
4盘算法点料
</summary>
</member>
<member name="M:Asa.XrayImage.ReloadTpl">
<summary>
重新载入点料模版
.\CountTemplate
</summary>
<returns></returns>
</member>
<member name="M:Asa.XrayImage.SkipCounting">
<summary>
终止点料
</summary>
<returns></returns>
</member>
<!-- Badly formed XML comment ignored for member "M:Asa.XrayImage.setProcessLevel(System.Double)" -->
<member name="P:Asa.XrayImage.setFineTuning">
<summary>
仅算法A有效
微调元器件黑点与背景之间的图像过滤阈值,一般来说都是0.6-0.85默认值0.7
这个值越小越容易多点,越大越容易少点
</summary>
<returns></returns>
</member>
<member name="M:Asa.XrayImage.GenerateTemplate(System.Int32)">
<summary>
校准平板
</summary>
<param name="mode">1:暗场校准,2亮场校准</param>
<returns></returns>
</member>
<member name="T:Asa.CarerayImage">
<summary>
Careray平板图像
</summary>
</member>
<member name="M:Asa.CarerayImage.#ctor(System.String)">
<summary>
Careray平板图像
</summary>
</member>
<member name="P:Asa.CarerayImage.WindowWidth">
<summary>
窗宽
</summary>
</member>
<member name="P:Asa.CarerayImage.WindowLevel">
<summary>
窗位
</summary>
</member>
<member name="P:Asa.CarerayImage.ImageWidth">
<summary>
图像宽度
</summary>
</member>
<member name="P:Asa.CarerayImage.ImageHeight">
<summary>
图像高度
</summary>
</member>
<member name="P:Asa.CarerayImage.IP">
<summary>
IP地址
</summary>
</member>
<member name="M:Asa.CarerayImage.Open">
<summary>
打开设备
</summary>
<returns></returns>
</member>
<member name="M:Asa.CarerayImage.Close">
<summary>
关闭设备
</summary>
<returns></returns>
</member>
<member name="M:Asa.CarerayImage.GetImage(System.Int32,System.Int32)">
<summary>
获取图像
</summary>
<returns></returns>
</member>
<member name="M:Asa.CarerayImage.LoadRAW(System.String)">
<summary>
加载本地RAW图片,64字节头
</summary>
<param name="filePath">图片路径</param>
</member>
<member name="M:Asa.CarerayImage.SaveRAW(System.String)">
<summary>
保存本地RAW图片
</summary>
<param name="filePath">图片路径</param>
</member>
<member name="M:Asa.CarerayImage.Get48bImage">
<summary>
获取48位RGB图像
</summary>
<returns></returns>
</member>
<member name="M:Asa.CarerayImage.GetRawBufferHandle">
<summary>
获取raw数据指针
</summary>
<returns></returns>
</member>
<member name="M:Asa.CarerayImage.FreeRawBufferHandle">
<summary>
释放RawBuffer指针
</summary>
</member>
<member name="T:Asa.API">
<summary>
CRInterface API
</summary>
</member>
<member name="P:Asa.XrayImageInterface.WindowWidth">
<summary>
窗宽
</summary>
</member>
<member name="P:Asa.XrayImageInterface.WindowLevel">
<summary>
窗位
</summary>
</member>
<member name="M:NeoX.HasNeox">
<summary>
是否有NeoX算法
</summary>
<returns></returns>
</member>
<member name="M:NeoX.ConverterType(System.String,System.Boolean)">
<summary>
转换新老算法的名称
</summary>
<param name="type"></param>
<param name="isToNeoX"></param>
<returns></returns>
</member>
</members>
</doc>
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
<?xml version="1.0"?>
<doc>
<assembly>
<name>ConfigHelper</name>
</assembly>
<members>
<member name="F:ConfigHelper.AdvanceConfigEdit.CustomEditor">
<summary>
自定义编辑器
</summary>
</member>
<member name="F:ConfigHelper.AdvanceConfigEdit.components">
<summary>
必需的设计器变量。
</summary>
</member>
<member name="M:ConfigHelper.AdvanceConfigEdit.Dispose(System.Boolean)">
<summary>
清理所有正在使用的资源。
</summary>
<param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
</member>
<member name="M:ConfigHelper.AdvanceConfigEdit.InitializeComponent">
<summary>
设计器支持所需的方法 - 不要修改
使用代码编辑器修改此方法的内容。
</summary>
</member>
<member name="M:ConfigHelper.AdvanceConfigForm.AddCustomEditor``1(System.String)">
<summary>
添加自定义编辑器
</summary>
<typeparam name="T"></typeparam>
<param name="name"></param>
</member>
<member name="M:ConfigHelper.AdvanceConfigForm.ShowEditDialog(System.Windows.Forms.IWin32Window,System.Boolean)">
<summary>
显示配置界面,2秒内调用约6次后显示
</summary>
<param name="owner"></param>
<param name="TopMost"></param>
</member>
<member name="F:ConfigHelper.AdvanceConfigForm.components">
<summary>
Required designer variable.
</summary>
</member>
<member name="M:ConfigHelper.AdvanceConfigForm.Dispose(System.Boolean)">
<summary>
Clean up any resources being used.
</summary>
<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
</member>
<member name="M:ConfigHelper.AdvanceConfigForm.InitializeComponent">
<summary>
Required method for Designer support - do not modify
the contents of this method with the code editor.
</summary>
</member>
<member name="P:ConfigHelper.CheckedListBoxEx.DataSource">
<summary>
绑定数据源
</summary>
<param name="data"></param>
</member>
<member name="T:ConfigHelper.CheckItem">
<summary>
Represents an item in the checklistbox
</summary>
</member>
<member name="T:ConfigHelper.Config">
<summary>
自定义配置存取
</summary>
</member>
<member name="F:ConfigHelper.Config.hasChange">
<summary>
指示配置文件是否存在变化
</summary>
</member>
<member name="P:ConfigHelper.Config.SaveToAppdata">
<summary>
将设置保存至appdata目录
</summary>
</member>
<member name="M:ConfigHelper.Config.ReloadConfig">
<summary>
重载配置
</summary>
</member>
<member name="M:ConfigHelper.Config.SetComment(System.String,System.String)">
<summary>
设置备注
</summary>
<param name="key"></param>
<param name="Comment"></param>
</member>
<member name="M:ConfigHelper.Config.Get(System.String)">
<summary>
读取配置
</summary>
<param name="key"></param>
<returns></returns>
</member>
<member name="M:ConfigHelper.Config.Get(System.Object)">
<summary>
读取配置
</summary>
<param name="key">传入一个枚举值</param>
<returns></returns>
</member>
<member name="M:ConfigHelper.Config.Get``1(System.Object,``0)">
<summary>
读取配置
</summary>
<typeparam name="T">返回类型</typeparam>
<param name="key">传入一个枚举值</param>
<param name="defaultvalue">失败默认值</param>
<returns></returns>
</member>
<member name="M:ConfigHelper.Config.Get``1(System.String,``0)">
<summary>
读取配置
</summary>
<typeparam name="T">返回类型</typeparam>
<param name="key">key</param>
<param name="defaultvalue">失败默认值</param>
<returns></returns>
</member>
<member name="M:ConfigHelper.Config.Set(System.String,System.String)">
<summary>
设置配置
</summary>
<param name="key"></param>
<param name="value"></param>
</member>
<member name="M:ConfigHelper.Config.Set(System.Object,System.String)">
<summary>
设置配置
</summary>
<param name="key">配置枚举值</param>
<param name="value"></param>
</member>
<member name="M:ConfigHelper.Config.Set``1(System.Object,``0)">
<summary>
设置配置
</summary>
<param name="key">配置枚举值</param>
<param name="value"></param>
</member>
<member name="M:ConfigHelper.Config.Set``1(System.String,``0)">
<summary>
设置配置
</summary>
<typeparam name="T">值类型</typeparam>
<param name="key"></param>
<param name="value"></param>
</member>
<member name="M:ConfigHelper.Config.Del(System.String)">
<summary>
删除配置
</summary>
<param name="key"></param>
</member>
<member name="M:ConfigHelper.Config.SaveChangeDebounce">
<summary>
保存设置
</summary>
</member>
<member name="M:ConfigHelper.Config.SaveChange">
<summary>
保存设置
</summary>
</member>
<member name="P:ConfigHelper.Config.Configlist">
<summary>
获取所有配置文本
</summary>
</member>
<member name="M:ConfigHelper.Config.FileSave(System.String,System.String)">
<summary>
不通过系统缓存立刻写入磁盘
</summary>
<param name="content"></param>
<param name="destfilename"></param>
</member>
<member name="M:ConfigHelper.Config.PropertyBind(System.Object,System.Object,System.String,System.String,System.String)">
<summary>
绑定UI属性
</summary>
<param name="key">配置key</param>
<param name="uiobj">ui对象</param>
<param name="Property">绑定属性</param>
<param name="SaveEvent">绑定事件(object s, EventArgs x),可以为空</param>
<param name="defaultvalue">默认值</param>
</member>
<member name="M:ConfigHelper.Config.PropertyBind``1(System.Object,System.Object,System.String,System.String,``0)">
<summary>
绑定UI属性
</summary>
<param name="key">配置key</param>
<param name="uiobj">ui对象</param>
<param name="Property">绑定属性</param>
<param name="SaveEvent">绑定事件(object s, EventArgs x),可以为空</param>
<param name="defaultvalue">默认值</param>
</member>
<member name="M:ConfigHelper.Config.LoadMyConfig(System.Type)">
<summary>
转换自定义配置类
</summary>
<param name="ConfigClassType"></param>
<returns>加载到的配置Key数量</returns>
</member>
<member name="T:ConfigHelper.ICustEditor">
<summary>
自定义编辑器接口
</summary>
</member>
<member name="M:ConfigHelper.ICustEditor.ValueEdit(System.Object)">
<summary>
自己的编辑方法或界面
</summary>
<param name="value">传入的值</param>
<returns>传出的值</returns>
</member>
<member name="T:ConfigHelper.MyConfig`1">
<summary>
自动化我的配置
</summary>
</member>
<member name="F:ConfigHelper.MyConfig`1.Key">
<summary>
配置的Key
</summary>
</member>
<member name="P:ConfigHelper.MyConfig`1.Val">
<summary>
配置的值
</summary>
</member>
<member name="M:ConfigHelper.MyConfig`1.ToString">
<summary>
获取配置数据的文本
</summary>
<returns></returns>
</member>
<member name="M:ConfigHelper.MyConfig`1.op_Implicit(ConfigHelper.MyConfig{`0})~`0">
<summary>
隐式转换,读值
</summary>
<param name="m1"></param>
</member>
<member name="M:ConfigHelper.MyConfig`1.op_Implicit(`0)~ConfigHelper.MyConfig{`0}">
<summary>
隐式转换,写值
</summary>
<param name="v1"></param>
</member>
<member name="T:ConfigHelper.MyConfigComment">
<summary>
自定义配置描述
</summary>
</member>
<member name="M:ConfigHelper.MyConfigComment.#ctor(System.String)">
<summary>
配置的说明
</summary>
<param name="comment"></param>
</member>
<member name="T:CommonLib">
<summary>
程序公共类
</summary>
</member>
<member name="P:CommonLib.AppPathExe">
<summary>
程序exe全路经 如d:\app\app.exe
</summary>
</member>
<member name="P:CommonLib.AppPathDir">
<summary>
程序所在路径 如d:\app\
</summary>
</member>
<member name="P:CommonLib.AppPathRoot">
<summary>
程序所在盘符 如d:\
</summary>
</member>
<member name="P:CommonLib.AppName">
<summary>
程序exe名称
</summary>
</member>
<member name="P:CommonLib.AppAssemblyTitle">
<summary>
程序AssemblyTitle
</summary>
</member>
<member name="M:CommonLib.GetPath(System.String)">
<summary>
获取相对当前程序的目录
</summary>
<param name="dirname"></param>
<returns></returns>
</member>
<member name="M:CommonLib.RegisterInstall">
<summary>
将程序路径写到注册表, 方便以后做软件更新
</summary>
</member>
<member name="M:CommonLib.AddOrUpdateStartupTask(System.Boolean,System.Int32)">
<summary>
将程序设置为计划任务电脑开机,用户登陆后自动启动
</summary>
<param name="enable">是否启用</param>
<param name="delaysec">延迟启动时间秒</param>
</member>
<member name="M:CommonLib.AddTaskAction(System.Action)">
<summary>
添加需要每天定时运行的任务
</summary>
<param name="action"></param>
</member>
<member name="M:CommonLib.DeleteOverDayFile(System.String,System.String,System.Int32)">
<summary>
删除超过指定天数的文件
</summary>
<param name="path">文件路经</param>
<param name="ext">扩展名检索格式:*.jpg</param>
<param name="day">天数</param>
</member>
</members>
</doc>
此文件类型无法预览
此文件类型无法预览
<?xml version="1.0"?>
<doc>
<assembly>
<name>HuichuanLibrary</name>
</assembly>
<members>
<member name="M:HuichuanLibrary.HCBoardBase.OpenCard(System.Int32)">
<summary>
初始化板卡
</summary>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.CloseCard">
<summary>
关闭板卡
</summary>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.CardInitOk(System.Boolean)">
<summary>
板卡是否已经初始化OK
</summary>
<param name="isShowLog"></param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetAdVal(System.Int16)">
<summary>
模拟量IO值获取 获取EtherCAT 第 adNo号的ad值
</summary>
<param name="adNo">ad的通道:0~配置个数</param>
<returns>获取AD的输入值</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.StartHomeMove(System.Int16,System.UInt32,System.UInt32,System.UInt32,System.Int16,System.Int32,System.UInt32,System.Int16)">
<summary>
开始回零
</summary>
<param name="axisNo">轴号</param>
<param name="highVel">回零高速</param>
<param name="lowVel">回零低速</param>
<param name="acc">回零加速度</param>
<param name="homeMethod">回零方法,默认28</param>
<param name="offset">回零偏移,默认0</param>
<param name="overtime">超时时间,默认120000</param>
<param name="posSrc">端子板信号源,默认0</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.HomeingIsEnd(System.Int16)">
<summary>
判断回零是否完成
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.IsInPosition(System.Int16,System.Double,System.Double)">
<summary>
判断轴是否在指定的位置
</summary>
<param name="axisNo">轴号</param>
<param name="targetPos">目标位置</param>
<param name="maxError">最大误差脉冲值</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.AxisStop(System.Int16,System.Int16)">
<summary>
</summary>
<param name="axisNo"></param>
<param name="stoplevel">1=立即停止,0=缓慢停止</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.SetEcatSdo(System.UInt16,System.Int32,System.Int32)">
<summary>
设置齿轮比
</summary>
<param name="axisNo">轴号</param>
<param name="Motor_Revolution">电子齿轮分子:电机分辨率</param>
<param name="Shaft_Revolution">电子齿轮分母:一圈脉冲数</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.SetSdo(System.UInt16,System.UInt16,System.UInt16,System.Byte[])">
<summary>
写sdo
</summary>
<param name="axisNo">轴号</param>
<param name="index">0x6091</param>
<param name="subindex">0x02</param>
<param name="value">2000</param>
<param name="datasize">4</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetAxisPrfMode(System.Int16)">
<summary>
获取轴规划模式
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetAxisSts(System.Int16)">
<summary>
获取轴状态
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetAxisPrfPos(System.Int16)">
<summary>
获取轴规划位置
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetAxisPrfVel(System.Int16)">
<summary>
获取轴规划速度
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetAxisCurrPos(System.Int16)">
<summary>
获取轴反馈位置
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetAxisCurrVel(System.Int16)">
<summary>
获取轴反馈速度
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetAxisCurrAcc(System.Int16)">
<summary>
获取轴反馈加速度
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.ClearAxisSts(System.Int16)">
<summary>
清楚轴报警状态
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetEcatAxPosTorqLmt(System.Int16)">
<summary>
获取EtherCAT类型轴对应的正向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<returns>正向力矩限制</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.SetEcatAxPosTorqLmt(System.Int16,System.Int16)">
<summary>
设置EtherCAT类型轴对应的正向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<param name="value">正向力矩限制</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetEcatAxNegTorqLmt(System.Int16)">
<summary>
获取EtherCAT类型轴对应的负向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<returns>负向力矩限制</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.SetEcatAxNegTorqLmt(System.Int16,System.Int16)">
<summary>
设置EtherCAT类型轴对应的负向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<param name="value">负向力矩限制</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetEcatAxMaxTorqLmt(System.Int16)">
<summary>
获取EtherCAT类型轴对应的最大力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<returns>最大力矩限制</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.SetEcatAxMaxTorqLmt(System.Int16,System.Int16)">
<summary>
设置EtherCAT类型轴对应的最大力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<param name="value">最大力矩限制</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.SetAxCurPos(System.Int16,System.Double)">
<summary>
将当前位置设置为指定值
</summary>
<param name="axisNo">轴号</param>
<param name="setPos">位置值</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBase.GetAxisLoadRate(System.Int16)">
<summary>
获取轴的负载率
</summary>
<param name="axisNo"></param>
<returns></returns>
</member>
<member name="P:HuichuanLibrary.emManager.ConfigBase.ProType">
<summary>
DI=输入IO,DO=输出IO,PRO=属性,AXIS=轴
</summary>
</member>
<member name="P:HuichuanLibrary.emManager.ConfigBase.Explain">
<summary>
说明
</summary>
</member>
<member name="P:HuichuanLibrary.emManager.ConfigBase.ProName">
<summary>
名称
</summary>
</member>
<member name="P:HuichuanLibrary.emManager.ConfigBase.ProValue">
<summary>
属性值
</summary>
</member>
<member name="P:HuichuanLibrary.emManager.ConfigBase.SubType">
<summary>
分类编号
</summary>
</member>
<member name="P:HuichuanLibrary.emManager.ConfigBase.TargetSpeed">
<summary>
目标速度
</summary>
</member>
<member name="T:HuichuanLibrary.emManager.ConfigMoveAxis">
<summary>
运动轴配置
</summary>
</member>
<member name="F:HuichuanLibrary.emManager.ConfigMoveAxis.Disable">
<summary>
屏蔽伺服
</summary>
</member>
<member name="F:HuichuanLibrary.emManager.ConfigMoveAxis.ServerOnDO">
<summary>
伺服ON的Do信号
</summary>
</member>
<member name="F:HuichuanLibrary.emManager.ConfigMoveAxis.BreakOnDO">
<summary>
伺服刹车信号
</summary>
</member>
<member name="M:HuichuanLibrary.emManager.CSVReaderBase.ReadCSVFile(System.String)">
<summary>
读取一个csv文件的所有内容
</summary>
</member>
<member name="M:HuichuanLibrary.emManager.CSVReaderBase.WriteCSVFile(System.String,System.String[])">
<summary>
把数据写入csv中
</summary>
</member>
<member name="M:HuichuanLibrary.emManager.CSVReaderBase.GetTitleIndex(System.String,System.Collections.Generic.List{System.String})">
<summary>
根据csv标题查找对应的索引
</summary>
<param name="lineValue">标题行的值</param>
<param name="cvsTitleList">csv标题集合</param>
<returns>key=csv标题,value=索引</returns>
</member>
<member name="M:HuichuanLibrary.emManager.CSVReaderBase.GetProTitleIndex(System.String,System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{System.String}})">
<summary>
根据属性名称查找对应的列索引
</summary>
<returns>key=属性名称,value=列索引</returns>
</member>
<member name="M:HuichuanLibrary.emManager.CSVReadManager.LoadFile(System.String)">
<summary>
添加一个csv文件的数据到位置集合中
</summary>
<param name="filePath">cvs文件路径+文件名</param>
<returns></returns>
</member>
<!-- Badly formed XML comment ignored for member "M:HuichuanLibrary.emManager.FileUtil.GetType(System.String)" -->
<!-- Badly formed XML comment ignored for member "M:HuichuanLibrary.emManager.FileUtil.GetType(System.IO.FileStream)" -->
<!-- Badly formed XML comment ignored for member "M:HuichuanLibrary.emManager.FileUtil.IsUTF8Bytes(System.Byte[])" -->
<member name="F:HuichuanLibrary.emManager.EmulationManager.AutoProcessCy">
<summary>
自动处理气缸di信号
</summary>
</member>
<member name="F:HuichuanLibrary.emManager.IOCylinderBean.MoveMS">
<summary>
运动时间,默认2秒
</summary>
</member>
<member name="M:HuichuanLibrary.emManager.EMDeviceControl.OpenCard(System.Collections.Generic.List{System.String})">
<summary>
初始化板卡
</summary>
<returns></returns>
</member>
<member name="F:HuichuanLibrary.emManager.AxisMoveControl.components">
<summary>
必需的设计器变量。
</summary>
</member>
<member name="M:HuichuanLibrary.emManager.AxisMoveControl.Dispose(System.Boolean)">
<summary>
清理所有正在使用的资源。
</summary>
<param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
</member>
<member name="M:HuichuanLibrary.emManager.AxisMoveControl.InitializeComponent">
<summary>
设计器支持所需的方法 - 不要修改
使用代码编辑器修改此方法的内容。
</summary>
</member>
<member name="F:HuichuanLibrary.emManager.IOControl.components">
<summary>
必需的设计器变量。
</summary>
</member>
<member name="M:HuichuanLibrary.emManager.IOControl.Dispose(System.Boolean)">
<summary>
清理所有正在使用的资源。
</summary>
<param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
</member>
<member name="M:HuichuanLibrary.emManager.IOControl.InitializeComponent">
<summary>
设计器支持所需的方法 - 不要修改
使用代码编辑器修改此方法的内容。
</summary>
</member>
<member name="F:HuichuanLibrary.FrmEMTest.components">
<summary>
Required designer variable.
</summary>
</member>
<member name="M:HuichuanLibrary.FrmEMTest.Dispose(System.Boolean)">
<summary>
Clean up any resources being used.
</summary>
<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
</member>
<member name="M:HuichuanLibrary.FrmEMTest.InitializeComponent">
<summary>
Required method for Designer support - do not modify
the contents of this method with the code editor.
</summary>
</member>
<member name="F:HuichuanLibrary.EmAxisInfo.errCode">
<summary>
错误信息。
1=伺服未开
2=重复运动
</summary>
</member>
<member name="F:HuichuanLibrary.HomeSts.HomeSts_Moveing">
<summary>
回原点状态:0=正在回零中
</summary>
</member>
<member name="F:HuichuanLibrary.HomeSts.HomeSts_NotStart">
<summary>
回原点状态:1=回零中断或者没有开始启动
</summary>
</member>
<member name="F:HuichuanLibrary.HomeSts.HomeSts_OK">
<summary>
回原点状态:3=回零完成
</summary>
</member>
<member name="F:HuichuanLibrary.MoveParam.moveType">
<summary>
1=绝对运动,2=相对运动,3=匀速运动,4=减速停止,5=回零
</summary>
</member>
<member name="F:HuichuanLibrary.EMBoardBean._dataMap">
<summary>
key=protName+axisNo
</summary>
</member>
<member name="F:HuichuanLibrary.EMBoardBean.mstart">
<summary>
整机启动变量,设置为false后将退出线程,只在停止时调用
</summary>
</member>
<member name="F:HuichuanLibrary.FrmHuiChuanTest.components">
<summary>
Required designer variable.
</summary>
</member>
<member name="M:HuichuanLibrary.FrmHuiChuanTest.Dispose(System.Boolean)">
<summary>
Clean up any resources being used.
</summary>
<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
</member>
<member name="M:HuichuanLibrary.FrmHuiChuanTest.InitializeComponent">
<summary>
Required method for Designer support - do not modify
the contents of this method with the code editor.
</summary>
</member>
<member name="F:HuichuanLibrary.FrmTest.components">
<summary>
Required designer variable.
</summary>
</member>
<member name="M:HuichuanLibrary.FrmTest.Dispose(System.Boolean)">
<summary>
Clean up any resources being used.
</summary>
<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
</member>
<member name="M:HuichuanLibrary.FrmTest.InitializeComponent">
<summary>
Required method for Designer support - do not modify
the contents of this method with the code editor.
</summary>
</member>
<member name="F:HuichuanLibrary.HCBoardManager.ConfigPath">
<summary>
配置文件路径
</summary>
</member>
<member name="F:HuichuanLibrary.HCBoardManager.UseEmulation">
<summary>
是否使用模拟设备,false=否,true=是
</summary>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.InitConfig(System.String,System.String,System.String)">
<summary>
初始化配置信息,初始化板卡之前,先初始化配置
</summary>
<param name="deviceConfigPath"></param>
<param name="systemConfigPath"></param>
<param name="logName"></param>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetCardCount">
<summary>
获取板卡数量
</summary>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.OpenCard(System.Int32)">
<summary>
初始化板卡
</summary>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.CloseCard">
<summary>
关闭板卡
</summary>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.CardInitOk(System.Boolean)">
<summary>
板卡是否已经初始化OK
</summary>
<param name="isShowLog"></param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetAdVal(System.Int16)">
<summary>
模拟量IO值获取 获取EtherCAT 第 adNo号的ad值
</summary>
<param name="adNo">ad的通道:0~配置个数</param>
<returns>获取AD的输入值</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetAxisErrorDetail(System.Int16)">
<summary>
获取错误信息
</summary>
<param name="axisNo"></param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.UpdatePos(System.Int16,System.Int32)">
<summary>
更改轴当前位置
</summary>
<param name="axisNo"></param>
<param name="position"></param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.UpdateAxisSts(System.Int16,HuichuanLibrary.AxisSts)">
<summary>
更改轴状态
</summary>
<param name="axisNo"></param>
<param name="sts"></param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.SetAdVal(System.Int16,System.Int16)">
<summary>
设置模拟量IO的值
</summary>
<param name="index"></param>
<param name="value"></param>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.SetBitDI(System.Int16,System.Int16)">
<summary>
设置单个DI值
</summary>
<param name="index"></param>
<param name="v"></param>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.DelayedWriteDI(System.Int16,System.Int16,System.Int32)">
<summary>
延迟写入DI
</summary>
<param name="index"></param>
<param name="value"></param>
<param name="time"></param>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.DelayedSetDO(System.Int16,System.Int16,System.Int32)">
<summary>
延迟写入DO
</summary>
<param name="index"></param>
<param name="value"></param>
<param name="time"></param>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.DelayedSetAdVal(System.Int16,System.Int16,System.Int32)">
<summary>
延迟设置模拟量IO
</summary>
<param name="index"></param>
<param name="value"></param>
<param name="time"></param>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetAxisExtraIO(System.Int16)">
<summary>
获取驱动器扩展IO
</summary>
<param name="axisNo"></param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.StartHomeMove(System.Int16,System.UInt32,System.UInt32,System.UInt32,System.Int16,System.Int32,System.UInt32,System.Int16)">
<summary>
开始回零
</summary>
<param name="axisNo">轴号</param>
<param name="highVel">回零高速</param>
<param name="lowVel">回零低速</param>
<param name="acc">回零加速度</param>
<param name="homeMethod">回零方法,默认28</param>
<param name="offset">回零偏移,默认0</param>
<param name="overtime">超时时间,默认120000</param>
<param name="posSrc">端子板信号源,默认0</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.HomeingIsEnd(System.Int16)">
<summary>
判断回零是否完成
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.IsInPosition(System.Int16,System.Double,System.Double)">
<summary>
判断轴是否在指定的位置
</summary>
<param name="axisNo">轴号</param>
<param name="targetPos">目标位置</param>
<param name="maxError">最大误差脉冲值</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.AxisStop(System.Int16,System.Int16)">
<summary>
</summary>
<param name="axisNo"></param>
<param name="stoplevel">1=立即停止,0=缓慢停止</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.SetEcatSdo(System.UInt16,System.Int32,System.Int32)">
<summary>
设置齿轮比
</summary>
<param name="axisNo">轴号</param>
<param name="Motor_Revolution">电子齿轮分子:电机分辨率</param>
<param name="Shaft_Revolution">电子齿轮分母:一圈脉冲数</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.SetSdo(System.UInt16,System.UInt16,System.UInt16,System.Byte[])">
<summary>
写sdo
</summary>
<param name="axisNo">轴号</param>
<param name="index">0x6091</param>
<param name="subindex">0x02</param>
<param name="value">2000</param>
<param name="datasize">4</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetAxisPrfMode(System.Int16)">
<summary>
获取轴规划模式
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetAxisSts(System.Int16)">
<summary>
获取轴状态
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetAxisPrfPos(System.Int16)">
<summary>
获取轴规划位置
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetAxisPrfVel(System.Int16)">
<summary>
获取轴规划速度
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetAxisCurrPos(System.Int16)">
<summary>
获取轴反馈位置
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetAxisCurrVel(System.Int16)">
<summary>
获取轴反馈速度
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetAxisCurrAcc(System.Int16)">
<summary>
获取轴反馈加速度
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.ClearAxisSts(System.Int16)">
<summary>
清楚轴报警状态
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetEcatAxPosTorqLmt(System.Int16)">
<summary>
获取EtherCAT类型轴对应的正向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<returns>正向力矩限制</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.SetEcatAxPosTorqLmt(System.Int16,System.Int16)">
<summary>
设置EtherCAT类型轴对应的正向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<param name="value">正向力矩限制</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetEcatAxNegTorqLmt(System.Int16)">
<summary>
获取EtherCAT类型轴对应的负向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<returns>负向力矩限制</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.SetEcatAxNegTorqLmt(System.Int16,System.Int16)">
<summary>
设置EtherCAT类型轴对应的负向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<param name="value">负向力矩限制</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetEcatAxMaxTorqLmt(System.Int16)">
<summary>
获取EtherCAT类型轴对应的最大力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<returns>最大力矩限制</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.SetEcatAxMaxTorqLmt(System.Int16,System.Int16)">
<summary>
设置EtherCAT类型轴对应的最大力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<param name="value">最大力矩限制</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.SetAxCurPos(System.Int16,System.Double)">
<summary>
将当前位置设置为指定值
</summary>
<param name="axisNo">轴号</param>
<param name="setPos">位置值</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardManager.GetAxisLoadRate(System.Int16)">
<summary>
获取轴的负载率
</summary>
<param name="axisNo"></param>
<returns></returns>
</member>
<member name="F:HuichuanLibrary.HCBoardManager.HomeSts_Moveing">
<summary>
回原点状态:0=正在回零中
</summary>
</member>
<member name="F:HuichuanLibrary.HCBoardManager.HomeSts_NotStart">
<summary>
回原点状态:1=回零中断或者没有开始启动
</summary>
</member>
<member name="F:HuichuanLibrary.HCBoardManager.HomeSts_OK">
<summary>
回原点状态:3=回零完成
</summary>
</member>
<member name="F:HuichuanLibrary.AxisSts.ALM">
<summary>
轴报警信号
</summary>
</member>
<member name="F:HuichuanLibrary.AxisSts.WARN">
<summary>
轴警告信号
</summary>
</member>
<member name="F:HuichuanLibrary.AxisSts.EMG">
<summary>
轴急停信号
</summary>
</member>
<member name="F:HuichuanLibrary.AxisSts.ServoOn">
<summary>
轴伺服使能信号
</summary>
</member>
<member name="F:HuichuanLibrary.AxisSts.BUSY">
<summary>
轴忙碌状态
</summary>
</member>
<member name="F:HuichuanLibrary.AxisSts.INP">
<summary>
轴到位信号
</summary>
</member>
<member name="F:HuichuanLibrary.AxisSts.PEL">
<summary>
正限位信号
</summary>
</member>
<member name="F:HuichuanLibrary.AxisSts.ORG">
<summary>
原点信号
</summary>
</member>
<member name="F:HuichuanLibrary.AxisSts.NEL">
<summary>
负限位信号
</summary>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.InitConfig(System.String,System.String,System.String)">
<summary>
初始化配置信息,初始化板卡之前,先初始化配置
</summary>
<param name="deviceConfigPath"></param>
<param name="systemConfigPath"></param>
<param name="logName"></param>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.OpenCard(System.Int32)">
<summary>
初始化板卡
</summary>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.CloseCard">
<summary>
关闭板卡
</summary>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.CardInitOk(System.Boolean)">
<summary>
板卡是否已经初始化OK
</summary>
<param name="isShowLog"></param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetAdVal(System.Int16)">
<summary>
模拟量IO值获取 获取EtherCAT 第 adNo号的ad值
</summary>
<param name="adNo">ad的通道:0~配置个数</param>
<returns>获取AD的输入值</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.StartHomeMove(System.Int16,System.UInt32,System.UInt32,System.UInt32,System.Int16,System.Int32,System.UInt32,System.Int16)">
<summary>
开始回零
</summary>
<param name="axisNo">轴号</param>
<param name="highVel">回零高速</param>
<param name="lowVel">回零低速</param>
<param name="acc">回零加速度</param>
<param name="homeMethod">回零方法,默认28</param>
<param name="offset">回零偏移,默认0</param>
<param name="overtime">超时时间,默认120000</param>
<param name="posSrc">端子板信号源,默认0</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.HomeingIsEnd(System.Int16)">
<summary>
判断回零是否完成
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.IsInPosition(System.Int16,System.Double,System.Double)">
<summary>
判断轴是否在指定的位置
</summary>
<param name="axisNo">轴号</param>
<param name="targetPos">目标位置</param>
<param name="maxError">最大误差脉冲值</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.AxisStop(System.Int16,System.Int16)">
<summary>
</summary>
<param name="axisNo"></param>
<param name="stoplevel">1=立即停止,0=缓慢停止</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.SetEcatSdo(System.UInt16,System.Int32,System.Int32)">
<summary>
设置齿轮比
</summary>
<param name="axisNo">轴号</param>
<param name="Motor_Revolution">电子齿轮分子:电机分辨率</param>
<param name="Shaft_Revolution">电子齿轮分母:一圈脉冲数</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.SetSdo(System.UInt16,System.UInt16,System.UInt16,System.Byte[])">
<summary>
写sdo
</summary>
<param name="axisNo">轴号</param>
<param name="index">0x6091</param>
<param name="subindex">0x02</param>
<param name="value">2000</param>
<param name="datasize">4</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetAxisPrfMode(System.Int16)">
<summary>
获取轴规划模式
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetAxisSts(System.Int16)">
<summary>
获取轴状态
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetAxisPrfPos(System.Int16)">
<summary>
获取轴规划位置
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetAxisPrfVel(System.Int16)">
<summary>
获取轴规划速度
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetAxisCurrPos(System.Int16)">
<summary>
获取轴反馈位置
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetAxisCurrVel(System.Int16)">
<summary>
获取轴反馈速度
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetAxisCurrAcc(System.Int16)">
<summary>
获取轴反馈加速度
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.ClearAxisSts(System.Int16)">
<summary>
清楚轴报警状态
</summary>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetEcatAxPosTorqLmt(System.Int16)">
<summary>
获取EtherCAT类型轴对应的正向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<returns>正向力矩限制</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.SetEcatAxPosTorqLmt(System.Int16,System.Int16)">
<summary>
设置EtherCAT类型轴对应的正向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<param name="value">正向力矩限制</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetEcatAxNegTorqLmt(System.Int16)">
<summary>
获取EtherCAT类型轴对应的负向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<returns>负向力矩限制</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.SetEcatAxNegTorqLmt(System.Int16,System.Int16)">
<summary>
设置EtherCAT类型轴对应的负向力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<param name="value">负向力矩限制</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetEcatAxMaxTorqLmt(System.Int16)">
<summary>
获取EtherCAT类型轴对应的最大力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<returns>最大力矩限制</returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.SetEcatAxMaxTorqLmt(System.Int16,System.Int16)">
<summary>
设置EtherCAT类型轴对应的最大力矩限制
</summary>
<param name="axisNo">轴号0-31</param>
<param name="value">最大力矩限制</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.SetAxCurPos(System.Int16,System.Double)">
<summary>
将当前位置设置为指定值
</summary>
<param name="axisNo">轴号</param>
<param name="setPos">位置值</param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetAxisLoadRate(System.Int16)">
<summary>
获取轴的负载率
</summary>
<param name="axisNo"></param>
<returns></returns>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetAxisExtraIO(System.Int16)">
<summary>
获取伺服驱动器IO 6~8
</summary>
<param name="axisNo"></param>
<returns></returns>
</member>
<member name="F:HuichuanLibrary.HCBoardBean.HomeSts_Moveing">
<summary>
回原点状态:0=正在回零中
</summary>
</member>
<member name="F:HuichuanLibrary.HCBoardBean.HomeSts_NotStart">
<summary>
回原点状态:1=回零中断或者没有开始启动
</summary>
</member>
<member name="F:HuichuanLibrary.HCBoardBean.HomeSts_OK">
<summary>
回原点状态:3=回零完成
</summary>
</member>
<member name="M:HuichuanLibrary.HCBoardBean.GetAxisErrorDetail(System.Int16)">
<summary>
获取伺服报警错误信息
</summary>
<param name="axisNo"></param>
<returns>[0]错误编号,[1]错误信息,[2]cd[5] ,[3]错误范围,[4],[5],[6]axisNo</returns>
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_GetCardsNum(System.Int32@)">
*==========================================================================*/
*---- FUNCTION DEFINE ---*/
*==========================================================================*/
*==========================================================================*/
*----1.1 板卡的操作以及资源的获取接口 ---*/
*==========================================================================*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_SetEcatGrpDiInverse(System.UInt64,System.Int16,System.Int16)">
*==========================================================================*/
*----1.2.1 ECAT资源设置接口 ---*/
*==========================================================================*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_GetBoardWorkSts(System.UInt64,System.Int16@)">
*==========================================================================*/
*----1.2.2 端子板资源设置接口 ---*/
*==========================================================================*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_GetHwSysPara(System.UInt64,System.Int16@,System.Int16@)">
*==========================================================================*/
*----1.2.3 系统参数设置接口 ---*/
*==========================================================================*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_SetAxActive(System.UInt64,System.Int16,System.Int16)">
*==========================================================================*/
*----1.2.4 轴参数设置接口 ---*/
*==========================================================================*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_GetSlaveCurSts(System.UInt64,System.UInt16,System.UInt16,System.Int16[])">
*==========================================================================*/
*----2.1 ECAT硬件操作接口 ---*/
*==========================================================================*/
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
*----2.1.1ECAT总线 SDO操作以及状态查询 ---*/
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_SetLocalDoBit(System.UInt64,System.Int16,System.Int16)">
*==========================================================================*/
*----2.2 端子板硬件操作接口 ---*/
*==========================================================================*/
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
*----2.2.1 DIO操作接口 ---*/
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_GetLocalCntPos(System.UInt64,System.Int16,System.Int32[],System.Int16)">
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
*----2.2.2 编码器操作接口 ---*/
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_CompareSrcConfig(System.UInt64,System.Int16,System.Int16,System.Int16[],System.Int16[])">
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
*----2.2.4 位置比较输出操作接口 ---*/
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_StartHoming(System.UInt64,System.Int16,HuichuanLibrary.ImcApi.THomingPara@)">
*==========================================================================*/
*----3 回零操作接口 ---*/
*==========================================================================*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_GetAxPrfMode(System.UInt64,System.Int16,System.Int16[],System.Int16)">
*==========================================================================*/
*----4 状态管理接口 ---*/
*==========================================================================*/
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
*----4.2 轴状态管理接口 ---*/
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_SetAxCaptMode(System.UInt64,System.Int16,System.Int16,System.Int16,System.Int16)">
*==========================================================================*/
*----5 数据采集接口 ---*/
*==========================================================================*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_SetSingleAxMvPara(System.UInt64,System.Int16,System.Double,System.Double,System.Double)">
*==========================================================================*/
*----7 运动模式接口 ---*/
*==========================================================================*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_StartPtpMove(System.UInt64,System.Int16,System.Double,System.Int16)">
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
*----7.1 PTP点位模式接口 ---*/
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_StartJogMove(System.UInt64,System.Int16,System.Double)">
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
*----7.2 Jog运动模式接口 ---*/
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
</member>
<member name="M:HuichuanLibrary.ImcApi.IMC_EnterHandWheelMode(System.UInt64,System.Int16,System.Int16,System.Int16,System.Double,System.Double,System.Double)">
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
*----7.3 手轮跟随运动模式接口 ---*/
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
</member>
</members>
</doc>
此文件类型无法预览
此文件类型无法预览
此文件的差异太大,无法显示。
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
<?xml version="1.0"?>
<doc>
<assembly>
<name>RemoteSheardObject</name>
</assembly>
<members>
<member name="F:RemoteLoad.Action">
<summary>
动作
</summary>
</member>
<member name="F:RemoteLoad.GroupName">
<summary>
设备名称
</summary>
</member>
<member name="F:RemoteLoad.RequestLoadInfo">
<summary>
物料信息
</summary>
</member>
<member name="F:RequestLoadInfo.DeviceGroupName">
<summary>
目的地设备名称
</summary>
</member>
<member name="F:RequestLoadInfo.TrayType">
<summary>
托盘类型
</summary>
</member>
<member name="F:RequestLoadInfo.IsEmpty">
<summary>
是否空托盘
</summary>
</member>
<member name="F:RequestLoadInfo.LoadParam">
<summary>
料盘数据
</summary>
</member>
<member name="T:TrayTypeE">
<summary>
治具类型
</summary>
</member>
<member name="F:TrayTypeE.MTP1">
<summary>
流水线料盘托盘
</summary>
</member>
<member name="F:TrayTypeE.MTP2">
<summary>
流水线治具托盘
</summary>
</member>
<member name="F:TrayTypeE.S007">
<summary>
料串
</summary>
</member>
<member name="F:TrayTypeE.M03">
<summary>
Tray料格
</summary>
</member>
<member name="F:TrayTypeE.M02">
<summary>
PCB料格
</summary>
</member>
<member name="F:TrayTypeE.M01">
<summary>
PizzaBOX料格
</summary>
</member>
<member name="F:TrayTypeE.M04">
<summary>
ShoeBOX料格
</summary>
</member>
<member name="M:ReelParam.#ctor(System.String,System.Int32,System.Int32,System.Boolean,System.String)">
<summary>
创建新出入库信息
</summary>
<param name="wareNo">二维码内容</param>
<param name="platew">宽度</param>
<param name="plateh">高度</param>
<param name="IsNg">是否是入库NG料</param>
<param name="ngMsg">NG消息</param>
</member>
<member name="P:ReelParam.WareCode">
<summary>
物品二维码信息
</summary>
</member>
<member name="P:ReelParam.PosID">
<summary>
库位号
</summary>
</member>
<member name="P:ReelParam.PlateH">
<summary>
料盘高度
</summary>
</member>
<member name="P:ReelParam.PlateW">
<summary>
料盘宽度
</summary>
</member>
<member name="F:ReelParam.IsNg">
<summary>
是否是入料NG料
</summary>
</member>
<member name="F:ReelParam.NgMsg">
<summary>
入料NG消息
</summary>
</member>
<member name="P:ReelParam.PN">
<summary>
物料编码
</summary>
</member>
<member name="P:ReelParam.QTY">
<summary>
数量
</summary>
</member>
<member name="P:ReelParam.FC">
<summary>
厂家代码
</summary>
</member>
<member name="P:ReelParam.RI">
<summary>
唯一序列号
</summary>
</member>
<member name="P:ReelParam.Batch">
<summary>
批次号
</summary>
</member>
<member name="M:ReelParam.logresult(System.Int32,System.Boolean)">
<summary>
NG口位置,1=左侧,2=右侧
</summary>
<param name="NgPos"></param>
<param name="isInstore"></param>
</member>
<member name="F:MTP.MTP1">
<summary>
料盘托盘
</summary>
</member>
<member name="F:MTP.MTP2">
<summary>
治具托盘
</summary>
</member>
<member name="P:RemoteSheardObject.EquipMsgData.status">
<summary>
1.正常, 2.报警, 3.入库中, 4.出库中, 5,满料穿
</summary>
</member>
<member name="F:RemoteSheardObject.EquipMessage.type">
消息类型,info,warning,error
</member>
<member name="P:RemoteSheardObject.MyWebClient.Timeout">
<summary>
超时时间(毫秒)
</summary>
</member>
<member name="T:RemoteSheardObject.Snowflake">
<summary>
动态生产有规律的ID Snowflake算法是Twitter的工程师为实现递增而不重复的ID实现的
http://blog.csdn.net/w200221626/article/details/52064976
C# 实现 Snowflake算法
</summary>
</member>
<member name="M:RemoteSheardObject.Snowflake.GetTimestamp">
<summary>
生成当前时间戳
</summary>
<returns>毫秒</returns>
</member>
<member name="M:RemoteSheardObject.Snowflake.GetNextTimestamp(System.Int64)">
<summary>
获取下一微秒时间戳
</summary>
<param name="lastTimestamp"></param>
<returns></returns>
</member>
<member name="M:RemoteSheardObject.Snowflake.GetId">
<summary>
获取长整形的ID
</summary>
<returns></returns>
</member>
<member name="M:RemoteSheardObject.TheLine.GetTaskCount">
<summary>
获取正在进行的任务数量
</summary>
<returns></returns>
</member>
<member name="M:RemoteSheardObject.TheLine.UploadCarrierInformation(System.Collections.Generic.List{RemoteSheardObject.TheLine.CarrierInformationData})">
<summary>
上传mycronic库存信息
</summary>
<param name="equipMsgData"></param>
</member>
<member name="M:RemoteSheardObject.TheLine.ClearNgPos(System.Int32)">
<summary>
NG口位置,1=左侧,2=右侧
</summary>
<param name="ngPos"></param>
</member>
<member name="M:RemoteSheardObject.TheLine.UploadCustData(System.String,System.String)">
<summary>
上传自定义数据
</summary>
<param name="key"></param>
<param name="value"></param>
</member>
<member name="M:RemoteSheardObject.TheLine.GetCustData(System.String)">
<summary>
上传自定义数据
</summary>
<param name="key"></param>
<param name="value"></param>
</member>
<member name="M:RemoteSheardObject.TheLine.Regetposid(ReelParam,System.String,System.String@)">
<summary>
料仓离线后二次重新获取物料库位
</summary>
<param name="reelParam"></param>
<param name="traytype"></param>
<param name="msg"></param>
<returns></returns>
</member>
<member name="M:RemoteClient.SendAndWait(RemoteLoad,System.Int32)">
<summary>
发送并等待结果
</summary>
<param name="remoteLoad"></param>
<param name="waittime"></param>
<returns></returns>
</member>
<member name="F:StoreCID.AMH_ML5_1">
<summary>
治具出入库口
</summary>
</member>
<member name="F:StoreCID.AMH_ML5_2">
<summary>
料串出入库口
</summary>
</member>
</members>
</doc>
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1"/>
</startup>
</configuration>
此文件类型无法预览
此文件类型无法预览
此文件的差异太大,无法显示。
copy /y D:\rick\vs\GeneralClassLibrary\CodeLibraryProject\CodeLibrary\bin\Debug\CodeLibrary.* .\
copy /y D:\rick\vs\ConfigHelper\ConfigHelper\bin\Debug\ConfigHelper.* .\
copy /y D:\rick\vs\Camera\CameraVisionLib\bin\Debug\Asa.Camera.VisionLib.* .\
copy /y D:\rick\vs\RC1271-DUOStore\dll\halcondotnet.* .\
copy /y D:\rick\vs\HuichuanLibrary\HuichuanLibrary\bin\Debug\HuichuanLibrary.* .\
copy /y D:\rick\vs\SO20242_Gree_Main\IDHIKCamera\bin\Debug\IDHIKCamera.* .\
copy /y D:\rick\vs\צ\Rmaxis\bin\Debug\log4net.* .\
copy /y D:\rick\vs\SO775-DUOStore\dll\UserFromControl.* .\
copy /y D:\rick\vs\PrintLabel\PrintLabel\bin\Debug\Asa.PrintLabel.* .\
copy /y D:\rick\vs\PrintLabel\PrintLabel\bin\Debug\zxing.* .\
copy /y D:\rick\vs\1053_CycleLine\RemoteSheardObject\bin\Debug\RemoteSheardObject.* .\
copy /y D:\rick\vs\X-Ray\X-Ray\bin\Debug\X-Ray.* .\
copy /y D:\rick\vs\CarerayImage\CarerayImage\bin\Debug\Asa.CarerayImage.* .\
copy /y D:\rick\vs\PrintLabel\ZebraPrinterHelper\bin\Debug\ZebraPrinterHelper.* .\
\ No newline at end of file
此文件类型无法预览
此文件类型无法预览
<?xml version="1.0"?>
<doc>
<assembly>
<name>zxing.presentation</name>
</assembly>
<members>
<member name="T:ZXing.Presentation.BarcodeReader">
<summary>
A smart class to decode the barcode inside a bitmap object which is derived from BitmapSource
</summary>
</member>
<member name="M:ZXing.Presentation.BarcodeReader.#ctor">
<summary>
Initializes a new instance of the <see cref="T:ZXing.Presentation.BarcodeReader"/> class.
</summary>
</member>
<member name="M:ZXing.Presentation.BarcodeReader.#ctor(ZXing.Reader,System.Func{System.Windows.Media.Imaging.BitmapSource,ZXing.LuminanceSource},System.Func{ZXing.LuminanceSource,ZXing.Binarizer})">
<summary>
Initializes a new instance of the <see cref="T:ZXing.Presentation.BarcodeReader"/> class.
</summary>
<param name="reader">Sets the reader which should be used to find and decode the barcode.
If null then MultiFormatReader is used</param>
<param name="createLuminanceSource">Sets the function to create a luminance source object for a bitmap.
If null, default is used</param>
<param name="createBinarizer">Sets the function to create a binarizer object for a luminance source.
If null then HybridBinarizer is used</param>
</member>
<member name="M:ZXing.Presentation.BarcodeReader.#ctor(ZXing.Reader,System.Func{System.Windows.Media.Imaging.BitmapSource,ZXing.LuminanceSource},System.Func{ZXing.LuminanceSource,ZXing.Binarizer},System.Func{System.Byte[],System.Int32,System.Int32,ZXing.RGBLuminanceSource.BitmapFormat,ZXing.LuminanceSource})">
<summary>
Initializes a new instance of the <see cref="T:ZXing.Presentation.BarcodeReader"/> class.
</summary>
<param name="reader">Sets the reader which should be used to find and decode the barcode.
If null then MultiFormatReader is used</param>
<param name="createLuminanceSource">Sets the function to create a luminance source object for a bitmap.
If null, default is used</param>
<param name="createBinarizer">Sets the function to create a binarizer object for a luminance source.
If null then HybridBinarizer is used</param>
<param name="createRGBLuminanceSource">The create RGB luminance source.</param>
</member>
<member name="T:ZXing.Presentation.BarcodeWriter">
<summary>
A smart class to encode some content to a barcode image
</summary>
</member>
<member name="M:ZXing.Presentation.BarcodeWriter.#ctor">
<summary>
Initializes a new instance of the <see cref="T:ZXing.Presentation.BarcodeWriter"/> class.
</summary>
</member>
<member name="T:ZXing.Presentation.BarcodeWriterGeometry">
<summary>
A smart class to encode some content to a barcode image into a geometry
Autor: Rob Fonseca-Ensor
</summary>
</member>
<member name="M:ZXing.Presentation.BarcodeWriterGeometry.#ctor">
<summary>
Initializes a new instance of the <see cref="T:ZXing.Presentation.BarcodeWriterGeometry"/> class.
</summary>
</member>
<member name="T:ZXing.BarcodeReaderExtensions">
<summary>
extensions methods which are working directly on any IBarcodeReaderGeneric implementation
</summary>
</member>
<member name="M:ZXing.BarcodeReaderExtensions.Decode(ZXing.IBarcodeReaderGeneric,System.Windows.Media.Imaging.BitmapSource)">
<summary>
uses the IBarcodeReaderGeneric implementation and the <see cref="T:ZXing.BitmapSourceLuminanceSource"/> class for decoding
</summary>
<param name="reader"></param>
<param name="image"></param>
<returns></returns>
</member>
<member name="M:ZXing.BarcodeReaderExtensions.DecodeMultiple(ZXing.IBarcodeReaderGeneric,System.Windows.Media.Imaging.BitmapSource)">
<summary>
uses the IBarcodeReaderGeneric implementation and the <see cref="T:ZXing.BitmapSourceLuminanceSource"/> class for decoding
</summary>
<param name="reader"></param>
<param name="image"></param>
<returns></returns>
</member>
<member name="T:ZXing.BarcodeWriterExtensions">
<summary>
extensions methods which are working directly on any BarcodeWriterGeneric implementation
</summary>
</member>
<member name="M:ZXing.BarcodeWriterExtensions.WriteAsWriteableBitmap(ZXing.IBarcodeWriterGeneric,System.String)">
<summary>
uses the BarcodeWriterGeneric implementation and the <see cref="T:ZXing.Rendering.WriteableBitmapRenderer"/> class for decoding
</summary>
<param name="writer"></param>
<param name="content"></param>
<returns></returns>
</member>
<member name="T:ZXing.BarcodeWriterGeometryExtensions">
<summary>
extensions methods which are working directly on any BarcodeWriterGeneric implementation
</summary>
</member>
<member name="M:ZXing.BarcodeWriterGeometryExtensions.WriteAsGeometry(ZXing.IBarcodeWriterGeneric,System.String)">
<summary>
uses the BarcodeWriterGeneric implementation and the <see cref="T:ZXing.Rendering.GeometryRenderer"/> class for decoding
</summary>
<param name="writer"></param>
<param name="content"></param>
<returns></returns>
</member>
<member name="T:ZXing.BitmapSourceLuminanceSource">
<summary>
class which represents the luminance source values for bitmap source objects
</summary>
</member>
<member name="M:ZXing.BitmapSourceLuminanceSource.#ctor(System.Int32,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:ZXing.BitmapSourceLuminanceSource"/> class.
</summary>
<param name="width">The width.</param>
<param name="height">The height.</param>
</member>
<member name="M:ZXing.BitmapSourceLuminanceSource.#ctor(System.Windows.Media.Imaging.BitmapSource)">
<summary>
Initializes a new instance of the <see cref="T:ZXing.BitmapSourceLuminanceSource"/> class.
</summary>
<param name="bitmap">The bitmap.</param>
</member>
<member name="M:ZXing.BitmapSourceLuminanceSource.CreateLuminanceSource(System.Byte[],System.Int32,System.Int32)">
<summary>
Should create a new luminance source with the right class type.
The method is used in methods crop and rotate.
</summary>
<param name="newLuminances">The new luminances.</param>
<param name="width">The width.</param>
<param name="height">The height.</param>
<returns></returns>
</member>
<member name="T:ZXing.Rendering.GeometryRenderer">
<summary>
Renders a barcode into a geometry
Autor: Rob Fonseca-Ensor
</summary>
</member>
<member name="M:ZXing.Rendering.GeometryRenderer.Render(ZXing.Common.BitMatrix,ZXing.BarcodeFormat,System.String)">
<summary>
Renders the specified matrix.
</summary>
<param name="matrix">The matrix.</param>
<param name="format">The format.</param>
<param name="content">The content.</param>
<returns></returns>
</member>
<member name="M:ZXing.Rendering.GeometryRenderer.Render(ZXing.Common.BitMatrix,ZXing.BarcodeFormat,System.String,ZXing.Common.EncodingOptions)">
<summary>
Renders the specified matrix.
</summary>
<param name="matrix">The matrix.</param>
<param name="format">The format.</param>
<param name="content">The content.</param>
<param name="options">The options.</param>
<returns></returns>
</member>
<member name="T:ZXing.Rendering.WriteableBitmapRenderer">
<summary>
Renders a <see cref="T:ZXing.Common.BitMatrix" /> to a <see cref="T:System.Windows.Media.Imaging.WriteableBitmap" />
</summary>
</member>
<member name="P:ZXing.Rendering.WriteableBitmapRenderer.Foreground">
<summary>
Gets or sets the foreground color.
</summary>
<value>
The foreground color.
</value>
</member>
<member name="P:ZXing.Rendering.WriteableBitmapRenderer.Background">
<summary>
Gets or sets the background color.
</summary>
<value>
The background color.
</value>
</member>
<member name="P:ZXing.Rendering.WriteableBitmapRenderer.FontFamily">
<summary>
Gets or sets the font family.
</summary>
<value>
The font family.
</value>
</member>
<member name="P:ZXing.Rendering.WriteableBitmapRenderer.FontSize">
<summary>
Gets or sets the size of the font.
</summary>
<value>
The size of the font.
</value>
</member>
<member name="P:ZXing.Rendering.WriteableBitmapRenderer.FontStretch">
<summary>
Gets or sets the font stretch.
</summary>
<value>
The font stretch.
</value>
</member>
<member name="P:ZXing.Rendering.WriteableBitmapRenderer.FontStyle">
<summary>
Gets or sets the font style.
</summary>
<value>
The font style.
</value>
</member>
<member name="P:ZXing.Rendering.WriteableBitmapRenderer.FontWeight">
<summary>
Gets or sets the font weight.
</summary>
<value>
The font weight.
</value>
</member>
<member name="M:ZXing.Rendering.WriteableBitmapRenderer.#ctor">
<summary>
Initializes a new instance of the <see cref="T:ZXing.Rendering.WriteableBitmapRenderer"/> class.
</summary>
</member>
<member name="M:ZXing.Rendering.WriteableBitmapRenderer.Render(ZXing.Common.BitMatrix,ZXing.BarcodeFormat,System.String)">
<summary>
Renders the specified matrix.
</summary>
<param name="matrix">The matrix.</param>
<param name="format">The format.</param>
<param name="content">The content.</param>
<returns></returns>
</member>
<member name="M:ZXing.Rendering.WriteableBitmapRenderer.Render(ZXing.Common.BitMatrix,ZXing.BarcodeFormat,System.String,ZXing.Common.EncodingOptions)">
<summary>
Renders the specified matrix.
</summary>
<param name="matrix">The matrix.</param>
<param name="format">The format.</param>
<param name="content">The content.</param>
<param name="options">The options.</param>
<returns></returns>
</member>
</members>
</doc>
此文件的差异太大,无法显示。
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using CodeLibrary;
using Newtonsoft.Json;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
namespace DeviceLibrary
{
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ProgressBar;
using crc = OnlineStore.CodeResourceControl;
public partial class LabelMachine
{
/// <summary>
/// 等待响应料盘移栽
/// </summary>
public bool NextNeedWaitTransplanting=false;
public bool CanNextWaitTransplanting(RemoteLoad remoteLoad, out string msg)
{
msg = "";
if (!RobotManage.isRunning || runStatus != RunStatus.Running)
{
msg = "主设备不在运行,不能放料";
return false;
}
if (IOValue(IO_Label_Type.Tray_Check, IO_VALUE.HIGH))
{
msg = "等待1号机物料流走";
return false;
}
if (TransMoveInfo.MoveStep != MoveStep.Wait)
{
msg = "正在处理移栽物料,不能放料";
return false;
}
NextNeedWaitTransplanting=true;
TransMoveInfo.NextMoveStep(MoveStep.Trans_WaitReady);
TransMoveInfo.ReelParam = remoteLoad.RequestLoadInfo.LoadParam.clone();
TransMoveInfo.log($"等待2号机放置料盘:"+ TransMoveInfo.ReelParam.ToDetailStr());
return true;
}
public bool PutReelFinish(RemoteLoad remoteLoad, out string msg)
{
msg = "";
NextNeedWaitTransplanting=false;
TransMoveInfo.NextMoveStep(MoveStep.Trans_01);
TransMoveInfo.ReelParam = remoteLoad.RequestLoadInfo.LoadParam.clone();
TransMoveInfo.log("收到料盘:"+ TransMoveInfo.ReelParam.ToDetailStr());
return true;
}
string GroupName = "XRAY02";
void TransProcess()
{
if (CheckWait(TransMoveInfo))
return;
switch (TransMoveInfo.MoveStep)
{
case MoveStep.Wait:
break;
case MoveStep.Trans_WaitReady:
var xrstep = (RobotManage.xrayMachine.MoveInfo.MoveStep == MoveStep.XRay_11_GetCoutResult
|| RobotManage.xrayMachine.MoveInfo.MoveStep <= MoveStep.XRay_09_SentToLabelStop);
var lbstep = (MoveInfo.MoveStep == MoveStep.Lbl_01_Wait_ATray || MoveInfo.MoveStep >= MoveStep.Lbl_03_StopDown_and_wait);
if (xrstep && lbstep
&& IOValue(IO_Label_Type.Line1_Run).Equals(IO_VALUE.LOW)
&& secPreReelParam == null
)
{
Msg.add($"等待2号机放置料盘", MsgLevel.info);
RemoteLoad remoteLoad1 = new RemoteLoad();
remoteLoad1.Seq = Snowflake.Instance().GetId();
remoteLoad1.Action = "StartPutReel";
remoteLoad1.RequestLoadInfo = new RequestLoadInfo();
var remoteresult = RemoteService.SendAndWait(GroupName, remoteLoad1);
if (remoteresult == RemoteResult.True)
{
TransMoveInfo.log($"{GroupName} 等待物料到位");
TransMoveInfo.NextMoveStep(MoveStep.Trans_WaitReel);
ConfigHelper.Config.Set($"Runtime_{GroupName}_MoveParamJson", JsonConvert.SerializeObject(TransMoveInfo.ReelParam));
return;
}
else if (remoteresult == RemoteResult.False)
{
TransMoveInfo.NextMoveStep(MoveStep.Wait);
TransMoveInfo.log($"{GroupName} 没有准备好放料盘");
}
else
{
Msg.add($"{GroupName} 通讯超时", MsgLevel.warning);
}
}
else {
Msg.add($"等待二号机放料位置空闲,D:{secPreReelParam == null},XR:{xrstep},LB:{lbstep},LR:{IOValue(IO_Label_Type.Line1_Run).Equals(IO_VALUE.LOW)}", MsgLevel.info);
}
break;
case MoveStep.Trans_WaitReel:
TransMoveInfo.log($"{GroupName} 等待料盘放下");
break;
case MoveStep.Trans_01:
TransMoveInfo.NextMoveStep(MoveStep.Trans_02);
//RobotManage.Line1.LineRun("trans", 999, "Trans_01");
//TransMoveInfo.StopwatchLog(false, "开始送出");
break;
case MoveStep.Trans_02:
if (RobotManage.labelMachine.IOValue(IO_Label_Type.Line_HasTray_Check).Equals(IO_VALUE.HIGH))
{
if (!RobotManage.offlinemode && !TransMoveInfo.ReelParam.IsNg)
{
var cl = ServerConn.inputCounterDataByXRayMachine(TransMoveInfo.ReelParam.WareCode, TransMoveInfo.ReelParam.QTY);
if (cl == null)
{
TransMoveInfo.ReelParam.IsNg = true;
TransMoveInfo.ReelParam.NgMsg = "点料数量上传失败";
TransMoveInfo.ReelParam.logresult();
}
}
TransMoveInfo.NextMoveStep(MoveStep.Trans_03);
RobotManage.labelMachine.secPreReelParam = TransMoveInfo.ReelParam;
TransMoveInfo.log("料盘到达贴标线入口");
}
else if (MoveInfo.IsTimeOut(10))
{
Msg.add("等待二号机料盘放到皮带线", MsgLevel.warning);
TransMoveInfo.log("等待二号机料盘放到皮带线");
}
break;
case MoveStep.Trans_03:
TransMoveInfo.NextMoveStep(MoveStep.Trans_04);
TransMoveInfo.log("二号料盘已准备好,等待贴标机1");
break;
case MoveStep.Trans_04:
TransMoveInfo.NextMoveStep(MoveStep.Trans_05);
TransMoveInfo.log("二号料盘已准备好,等待贴标机2");
break;
case MoveStep.Trans_05:
if (RobotManage.labelMachine.IOValue(IO_Label_Type.Line_HasTray_Check).Equals(IO_VALUE.LOW))
{
TransMoveInfo.NextMoveStep(MoveStep.Trans_06);
TransMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
TransMoveInfo.log("料盘已离开");
}
else if (TransMoveInfo.IsTimeOut(15))
{
Msg.add("等待贴标机处理二号机料盘", MsgLevel.warning);
TransMoveInfo.log("等待贴标机处理二号机料盘");
}
break;
case MoveStep.Trans_06:
TransMoveInfo.log("完成");
TransMoveInfo.EndMove();
break;
}
}
}
}
......@@ -37,6 +37,8 @@ namespace DeviceLibrary
public MoveInfo SendOutMoveInfo;
public MoveInfo VacuumMoveInfo;
public MoveInfo TransMoveInfo;
public bool Init(out string msg)
{
msg = "";
......@@ -56,6 +58,7 @@ namespace DeviceLibrary
MoveInfo = new MoveInfo(DeviceName);
SendOutMoveInfo = new MoveInfo("贴标送出");
VacuumMoveInfo = new MoveInfo("贴标吸标");
TransMoveInfo = new MoveInfo("移栽接收");
SendOutMoveInfo.Hide = true;
VacuumMoveInfo.Hide = true;
ResetMoveInfo = MoveInfo;
......@@ -97,6 +100,7 @@ namespace DeviceLibrary
if (runStatus == RunStatus.Running)
{
WorkProcess();
TransProcess();
SendOutProcess();
VacuumLabelProcess();
}
......@@ -230,6 +234,7 @@ namespace DeviceLibrary
ResetMoveInfo.log("回源完成");
ResetMoveInfo.EndMove();
MoveInfo.NewMove(MoveStep.Lbl_01_Wait_ATray);
TransMoveInfo.NewMove(MoveStep.Wait);
runStatus = RunStatus.Running;
break;
}
......
......@@ -15,16 +15,17 @@ namespace DeviceLibrary
{
//保存贴标位置调试图像
public bool saveLabelDebugBmp = true;
public void test() {
Console.WriteLine(preReelParam);
}
double labelRAxisPos = 0;
Point p1;
bool ReverseLabel = false;
//是否允许进入贴标线体
public bool TrayCanIN()
{
return IOValue(IO_Label_Type.Tray_Check).Equals(IO_VALUE.LOW) && IOValue(IO_Label_Type.TrayStop_Down).Equals(IO_VALUE.HIGH) && preReelParam==null;
return IOValue(IO_Label_Type.Tray_Check).Equals(IO_VALUE.LOW)
&& IOValue(IO_Label_Type.TrayStop_Down).Equals(IO_VALUE.HIGH)
&& preReelParam == null
&& TransMoveInfo.MoveStep == MoveStep.Wait;
//return IOValue(IO_Label_Type.Line_HasTray_Check).Equals(IO_VALUE.LOW);
}
......@@ -50,6 +51,7 @@ namespace DeviceLibrary
WaitCheckLabeltypeE WaitCheckLabeltype;
Task printTask = null;
int reelcount = 0;
bool isSecondReel = false;
void WorkProcess()
{
if (CheckWait(MoveInfo))
......@@ -58,17 +60,32 @@ namespace DeviceLibrary
switch (MoveInfo.MoveStep)
{
case MoveStep.Lbl_01_Wait_ATray:
var Label_TaryStop_Check = IOValue(IO_Label_Type.Label_TaryStop_Check);
//LogUtil.OutputDebugString($"Tray_Check:{IOValue(IO_Label_Type.Tray_Check)},Label_TaryStop_Check:{Label_TaryStop_Check},preReelParam:{preReelParam!=null}");
if (RobotManage.labelMachine.TransMoveInfo.MoveStep > MoveStep.Wait
&& RobotManage.labelMachine.TransMoveInfo.MoveStep< MoveStep.Trans_05) {
Msg.add("等待二号机完成放料", MsgLevel.warning);
MoveInfo.log("等待二号机完成放料");
return;
}
if (IOValue(IO_Label_Type.Tray_Check,IO_VALUE.HIGH) && Label_TaryStop_Check.Equals(IO_VALUE.LOW) && preReelParam != null)
var Label_TaryStop_Check = IOValue(IO_Label_Type.Label_TaryStop_Check);
//LogUtil.OutputDebugString($"Tray_Check:{IOValue(IO_Label_Type.Tray_Check)},Label_TaryStop_Check:{Label_TaryStop_Check},preReelParam:{preReelParam!=null}");
if (IOValue(IO_Label_Type.Line_HasTray_Check, IO_VALUE.HIGH) && Label_TaryStop_Check.Equals(IO_VALUE.LOW) && secPreReelParam != null)
{
isSecondReel=true;
MoveInfo.NextMoveStep(MoveStep.Lbl_02_StopUP);
MoveInfo.ReelParam = secPreReelParam;
secPreReelParam = null;
MoveInfo.log("检测到二号机料盘 ReelParam:" + MoveInfo.ReelParam.ToStr());
MoveInfo.StopwatchReset();
}else
if (IOValue(IO_Label_Type.Tray_Check,IO_VALUE.HIGH) && IOValue(IO_Label_Type.Line_HasTray_Check, IO_VALUE.LOW) && Label_TaryStop_Check.Equals(IO_VALUE.LOW) && preReelParam != null)
{
isSecondReel = false;
MoveInfo.NextMoveStep(MoveStep.Lbl_02_StopUP);
MoveInfo.ReelParam = preReelParam;
preReelParam = null;
MoveInfo.log("检测到料盘 ReelParam:" + MoveInfo.ReelParam.ToStr());
MoveInfo.StopwatchReset();
}
//else if (Tray_Check.Equals(IO_VALUE.HIGH) && MoveInfo.IsTimeOut(30))
//{
......@@ -99,8 +116,10 @@ namespace DeviceLibrary
if (MoveInfo.ReelParam.IsNg || DisableLabel)
{
MoveInfo.NextMoveStep(MoveStep.Lbl_BeginOut);
CylinderMove(MoveInfo, IO_Label_Type.TrayStop_Down, IO_Label_Type.TrayStop_Up, IO_VALUE.HIGH);
if (!isSecondReel)
CylinderMove(MoveInfo, IO_Label_Type.TrayStop_Down, IO_Label_Type.TrayStop_Up, IO_VALUE.HIGH);
CylinderMove(null, IO_Label_Type.Label_Stop_Down, IO_Label_Type.Label_Stop_Up, IO_VALUE.HIGH);
RobotManage.Line1.LineRun("label", 5, "Lbl_02_StopUP");
MoveInfo.log("NG盘直接通过");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
if (RobotManage.offlinemode)
......@@ -130,7 +149,8 @@ namespace DeviceLibrary
MoveInfo.NextMoveStep(MoveStep.Lbl_03_LineRun);
MoveInfo.log("上料区阻挡上升,贴标区阻挡下降");
CylinderMove(MoveInfo, IO_Label_Type.TrayStop_Down, IO_Label_Type.TrayStop_Up, IO_VALUE.HIGH);
if (!isSecondReel)
CylinderMove(MoveInfo, IO_Label_Type.TrayStop_Down, IO_Label_Type.TrayStop_Up, IO_VALUE.HIGH);
CylinderMove(null, IO_Label_Type.Label_Stop_Down, IO_Label_Type.Label_Stop_Up, IO_VALUE.LOW);
ReelLocation reelLocation;
if (RobotManage.offlinemode)
......@@ -173,6 +193,7 @@ namespace DeviceLibrary
else
{
MoveInfo.NextMoveStep(MoveStep.Lbl_BeginOut);
RobotManage.Line1.LineRun("label", 5, "Lbl_02_StopUP");
MoveInfo.ReelParam.IsNg = true;
MoveInfo.ReelParam.NgMsg = "服务器没有返回明确目标";
MoveInfo.ReelParam.logresult();
......@@ -319,8 +340,8 @@ namespace DeviceLibrary
Label_R_Axis.AbsMove(null, Config.Label_R_P2, Config.Label_R_P2_speed);
if (MoveInfo.ReelParam.IsNg || DisableLabel)
{
RobotManage.Line1.LineRun("label", 5, "Lbl_BeginOut");
RobotManage.Line2.LineRun("label", 999, "Lbl_BeginOut");
//RobotManage.Line1.LineRun("label", 5, "Lbl_BeginOut");
RobotManage.Line2.LineRun("label", 5, "Lbl_BeginOut");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
}
MoveInfo.log("Label_XYR转到取标点,待机");
......
......@@ -16,7 +16,7 @@ namespace DeviceLibrary
public virtual bool UserPause { get; set; }
public RunStatus runStatus { get; set; } = RunStatus.Stop;
protected MoveInfo ResetMoveInfo;
public MoveInfo MoveInfo;
public MoveInfo MoveInfo;
protected List<Msg> Msg = new List<Msg>();
//public delegate void Event(List<Msg> msg);
public event EventHandler<List<Msg>> ProcessMsgEvent;
......@@ -36,7 +36,18 @@ namespace DeviceLibrary
_preReelParam = value.clone();
}
}
ReelParam _secPreReelParam = null;
public ReelParam secPreReelParam
{
get => _secPreReelParam;
set
{
if (value == null)
_secPreReelParam = null;
else
_secPreReelParam = value.clone();
}
}
Thread thread;
/// <summary>
/// 整机启动变量,设置为false后将退出线程,只在停止时调用
......@@ -70,12 +81,12 @@ namespace DeviceLibrary
DeviceSuddenStop();
ok = false;
}
if (IOManager.GetDIValue("",0,16).Equals(IO_VALUE.LOW))
{
ok = false;
DeviceSuddenStop();
Msg.add(crc.GetString("device_safedoor_open", "贴标或出料机构门禁被打开"), MsgLevel.warning);
}
//if (IOManager.GetDIValue("",0,16).Equals(IO_VALUE.LOW))
//{
// ok = false;
// DeviceSuddenStop();
// Msg.add(crc.GetString("device_safedoor_open", "贴标或出料机构门禁被打开"), MsgLevel.warning);
//}
lastSafeCheckStatus = ok;
return ok;
}
......@@ -87,8 +98,7 @@ namespace DeviceLibrary
//lastSafeCheckStatus = false;
var al = new Dictionary<string, List<AxisBean>>(AxisBean.List);
AxisBean.StopMultiAxis(AxisBean.List[RobotManage.labelMachine.DeviceName]);
AxisBean.StopMultiAxis(AxisBean.List[RobotManage.t1Machine.DeviceName]);
AxisBean.StopMultiAxis(AxisBean.List[RobotManage.xrayMachine.DeviceName]);
//AxisBean.StopMultiAxis();
MoveInfo.List.ForEach((m) => { m.CanWhileCount = 5; });
......@@ -191,6 +201,14 @@ namespace DeviceLibrary
{
isOk = false;
}
MoveInfo.WaitList.ForEach((w) =>
{
if (w.WaitType.Equals(WaitEnum.W014_Msg))
{
w.IsEnd = true;
Msg.add(w.ActionMsg, (MsgLevel)w.Data);
}
});
foreach (WaitResultInfo wait in MoveInfo.WaitList)
{
if (wait.IsEnd)
......@@ -262,8 +280,6 @@ namespace DeviceLibrary
else if (wait.WaitType.Equals(WaitEnum.W008_BatchAxis))
{
AxisBean axisBean=null;
axisBean = RobotManage.t1Machine.T_Batch_Axis;
//if (wait.AxisInfo.ProName == "Right_Batch_Axis")
// axisBean = Right_Batch_Axis;
//else
......
......@@ -84,8 +84,10 @@ namespace DeviceLibrary
XRay_01_LocationDown,
XRay_02_RunIn,
XRay_02_CheckReel,
XRay_03_CloseDoor,
XRay_04_OpenXray,
XRay_04_CheckXray,
XRay_05_GetImage,
XRay_06_WaitMatchPN,
XRay_06_WaitMatchPN2,
......@@ -143,6 +145,15 @@ namespace DeviceLibrary
T1_09_ReleaseReel_Test,
Shelf_19_LocationString,
Shelf_19_LocationString_wait,
Trans_WaitReady,
Trans_WaitReel,
Trans_01,
Trans_02,
Trans_03,
Trans_04,
Trans_05,
Trans_06,
}
......
using Fleck;
using Newtonsoft.Json;
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DeviceLibrary
{
public static class RemoteService
{
/// <summary>
/// deviceGroupName
/// </summary>
static Dictionary<string,IWebSocketConnection> allClients;
static WebSocketServer server;
/// <summary>
/// 初始化监听服务
/// </summary>
public static void Init() {
FleckLog.Level = LogLevel.Debug;
allClients = new Dictionary<string, IWebSocketConnection>();
server = new WebSocketServer("ws://0.0.0.0:26901");
server.RestartAfterListenError=true;
server.Start(client =>
{
client.OnOpen = () =>
{
var deviceGroupName = client.ConnectionInfo.Path.Substring(1);
LogUtil.info($"客户端OnOpen:{deviceGroupName}");
lock (allClients)
{
if (allClients.ContainsKey(deviceGroupName))
allClients[deviceGroupName]=client;
else
allClients.Add(deviceGroupName,client);
}
};
client.OnClose = () =>
{
var deviceGroupName = client.ConnectionInfo.Path.Substring(1);
LogUtil.info($"客户端OnClose:{deviceGroupName}");
lock (allClients)
{
allClients.Remove(deviceGroupName);
}
};
client.OnMessage = message =>
{
var deviceGroupName = client.ConnectionInfo.Path.Substring(1);
ProcessMessage(deviceGroupName,message);
};
});
}
static volatile Dictionary<long, RemoteResult> lastresult = new Dictionary<long, RemoteResult>();
static void ProcessMessage(string deviceGroupName, string message) {
bool isok = true;
string msg = "";
long Seq = 1;
try
{
var remoteLoad = JsonConvert.DeserializeObject<RemoteLoad>(message);
Seq = remoteLoad.Seq;
lock (lastresult) {
lastresult[Seq] = RemoteResult.None;
}
switch (remoteLoad.Action)
{
case "RequestPutReel":
isok = RobotManage.labelMachine.CanNextWaitTransplanting(remoteLoad,out msg);
break;
case "PutReelFinish":
isok = RobotManage.labelMachine.PutReelFinish(remoteLoad,out msg);
break;
case "Heartbeats": //客户端心跳包
isok = true;
break;
case "OK":
case "FAIL":
lock (lastresult)
{
lastresult[Seq] = remoteLoad.Action == "OK" ? RemoteResult.True : RemoteResult.False;
}
LogUtil.info($"[{remoteLoad.GroupName}] Revice Command Callback:" + remoteLoad.Action);
return;
default:
break;
}
}
catch(Exception e) {
isok = false;
LogUtil.info("Remote process error:"+e.ToString());
}
SendResult(deviceGroupName, isok, msg, Seq);
}
/// <summary>
/// 发送消息,不接收返回信息
/// </summary>
/// <param name="deviceGroupName">设备ID</param>
/// <param name="message"></param>
public static void SendMessage(string deviceGroupName,RemoteLoad message) {
if (!allClients.ContainsKey(deviceGroupName))
{
LogUtil.info($"设备:{deviceGroupName} 不在线");
return;
}
try
{
allClients[deviceGroupName].Send(JsonConvert.SerializeObject(message));
}
catch (Exception ex){
LogUtil.error($"设备:{deviceGroupName} 消息发送出错:"+ex.ToString());
}
}
/// <summary>
/// 发送并等待返回
/// </summary>
/// <param name="GroupName">设备ID</param>
/// <param name="remoteLoad">载荷信息</param>
/// <param name="waittime">等待时间默认3000毫秒</param>
/// <returns></returns>
public static RemoteResult SendAndWait(string GroupName, RemoteLoad remoteLoad, int waittime = 3000)
{
remoteLoad.GroupName = GroupName;
if (remoteLoad.RequestLoadInfo != null && string.IsNullOrEmpty(remoteLoad.RequestLoadInfo.DeviceGroupName))
remoteLoad.RequestLoadInfo.DeviceGroupName = GroupName;
LogUtil.info($"[{GroupName}],发送:{remoteLoad.Action},Seq:{remoteLoad.Seq}");
lock (lastresult)
{
lastresult[remoteLoad.Seq] = RemoteResult.None;
}
SendMessage(GroupName, remoteLoad);
return WaitResult(GroupName, remoteLoad.Seq,waittime);
}
static RemoteResult WaitResult(string GroupName,long seq,int waittime = 3000)
{
if (!lastresult.ContainsKey(seq))
return RemoteResult.Timeout;
try
{
while (lastresult[seq] == RemoteResult.None && waittime > 0)
{
System.Threading.Thread.Sleep(50);
waittime = waittime - 50;
}
if (lastresult[seq] == RemoteResult.None)
{
LogUtil.info($"等待{GroupName}反馈超时 seq:" + seq);
lastresult[seq] = RemoteResult.Timeout;
}
var result = lastresult[seq];
lock (lastresult)
{
lastresult.Remove(seq);
}
return result;
}
catch(Exception ex) {
LogUtil.error($"等待{GroupName}反馈超时 seq:" + seq +" 出错:"+ex);
return RemoteResult.Timeout;
}
}
static void SendResult(string deviceGroupName, bool result,string msg,long Seq)
{
RemoteLoad remoteLoad = new RemoteLoad();
remoteLoad.Seq = Seq;
remoteLoad.Action = result?"OK":"FAIL";
remoteLoad.GroupName = deviceGroupName;
remoteLoad.Msg = msg;
SendMessage(deviceGroupName, remoteLoad);
}
}
}
......@@ -56,7 +56,7 @@ namespace DeviceLibrary
wistonAgvClient = new WistonAgvClient();
RemoteService.Init();
robots.AddRange(new IRobot[] { xrayMachine, labelMachine, filterMachine, t1Machine });
//robots.AddRange(new IRobot[] { xrayMachine });
robots.ForEach((device)=> {
......
......@@ -60,15 +60,23 @@ namespace DeviceLibrary
T_TrayPos_Axis.AbsMove(MoveInfo, Config.GetTrayPos(MoveInfo.ReelParam.PlateW), Config.TrayPos_P1_speed);
T_Pan_Axis.AbsMove(MoveInfo, Config.Pan_P1, Config.Pan_P1_speed);
T_Y_Axis.AbsMove(MoveInfo, Config.Y_P1, Config.Y_P1_speed);
RobotManage.electricGripper.Release();
//MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
break;
case MoveStep.T1_03_LocationUp:
MoveInfo.NextMoveStep(MoveStep.T1_04_DownToReel);
MoveInfo.log($"料盘顶升");
IOMove(IO_T1_Type.Line4_Run, IO_VALUE.LOW);
CylinderMove(MoveInfo, IO_T1_Type.End_Lift_Cylinder_Down, IO_T1_Type.End_Lift_Cylinder_Up, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_T1_Type.End_Lift_Tray_Check, IO_VALUE.HIGH));
if (RobotManage.electricGripper.Release())
{
MoveInfo.NextMoveStep(MoveStep.T1_04_DownToReel);
MoveInfo.log($"料盘顶升");
IOMove(IO_T1_Type.Line4_Run, IO_VALUE.LOW);
CylinderMove(MoveInfo, IO_T1_Type.End_Lift_Cylinder_Down, IO_T1_Type.End_Lift_Cylinder_Up, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_T1_Type.End_Lift_Tray_Check, IO_VALUE.HIGH));
}
else
{
Msg.add("夹爪忙碌中...", MsgLevel.warning);
MoveInfo.log($"夹爪忙碌中...");
}
break;
case MoveStep.T1_04_DownToReel:
MoveInfo.NextMoveStep(MoveStep.T1_05_ClampReel);
......@@ -79,18 +87,18 @@ namespace DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
break;
case MoveStep.T1_05_ClampReel:
//if (RobotManage.electricGripper.Clamp(null))
//{
MoveInfo.NextMoveStep(MoveStep.T1_06_UpToTop);
RobotManage.electricGripper.Clamp(null);
MoveInfo.log($"夹爪张开");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
//}
//else
//{
// Msg.add("夹爪忙碌中...", MsgLevel.warning);
// MoveInfo.log($"夹爪忙碌中...");
//}
if (RobotManage.electricGripper.Clamp(null))
{
MoveInfo.NextMoveStep(MoveStep.T1_06_UpToTop);
//RobotManage.electricGripper.Clamp(null);
MoveInfo.log($"夹爪张开");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
}
else
{
Msg.add("夹爪忙碌中...", MsgLevel.warning);
MoveInfo.log($"夹爪忙碌中...");
}
break;
case MoveStep.T1_06_UpToTop:
MoveInfo.NextMoveStep(MoveStep.T1_07_PanToOut);
......@@ -160,11 +168,16 @@ namespace DeviceLibrary
}
break;
case MoveStep.T1_09_ReleaseReel:
MoveInfo.NextMoveStep(MoveStep.T1_09_ReleaseReel_Test);
RobotManage.electricGripper.Release();
MoveInfo.log($"夹爪放松");
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_T1_Type.T1_Tray_Check, IO_VALUE.HIGH));
//MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
if (RobotManage.electricGripper.Release())
{
MoveInfo.NextMoveStep(MoveStep.T1_09_ReleaseReel_Test);
MoveInfo.log($"夹爪放松");
}
else
{
Msg.add("夹爪忙碌中...", MsgLevel.warning);
MoveInfo.log($"夹爪忙碌中...");
}
break;
case MoveStep.T1_09_ReleaseReel_Test:
if (IOValue(IO_T1_Type.T1_Tray_Check).Equals(IO_VALUE.HIGH))
......
......@@ -158,18 +158,27 @@ namespace DeviceLibrary
MoveInfo.log($"打开出口门");
break;
case MoveStep.XRay_09_SentToLabelStop:
if (RobotManage.labelMachine.TrayCanIN())
if (RobotManage.labelMachine.TransMoveInfo.MoveStep == MoveStep.Wait)
{
MoveInfo.NextMoveStep(MoveStep.XRay_10_CloseOutDoor);
MoveInfo.log($"打开出口门,送出到贴标机构");
Line_In_Axis.SpeedMove(Config.Line_In_Relative_speed*2);
RobotManage.Line1.LineRun("xray", 999, "XRay_09_SentToLabelStop");
MoveInfo.StopwatchLog(false, "开始送出");
if (RobotManage.labelMachine.TrayCanIN())
{
MoveInfo.NextMoveStep(MoveStep.XRay_10_CloseOutDoor);
MoveInfo.log($"打开出口门,送出到贴标机构");
Line_In_Axis.SpeedMove(Config.Line_In_Relative_speed * 2);
RobotManage.Line1.LineRun("xray", 999, "XRay_09_SentToLabelStop");
MoveInfo.StopwatchLog(false, "开始送出");
}
else if (MoveInfo.IsTimeOut(30))
{
Msg.add(crc.GetString("wait_xx_free", "等待{0}空闲", RobotManage.labelMachine.DeviceNameShow), MsgLevel.warning);
MoveInfo.log("等待贴标机构入口空闲");
}
}
else if (MoveInfo.IsTimeOut(30)) {
Msg.add(crc.GetString("wait_xx_free", "等待{0}空闲", RobotManage.labelMachine.DeviceNameShow), MsgLevel.warning);
MoveInfo.log("等待贴标机构入口空闲");
else
{
Msg.add("点料机出口等待处理二号机物料", MsgLevel.warning);
MoveInfo.log($"等待处理二号机物料");
}
break;
case MoveStep.XRay_10_CloseOutDoor:
......@@ -192,12 +201,21 @@ namespace DeviceLibrary
case MoveStep.XRay_11_GetCoutResult:
if (GetResultTask == null || GetResultTask.IsCompleted)
{
RobotManage.labelMachine.preReelParam = MoveInfo.ReelParam;
MoveInfo.NextMoveStep(MoveStep.XRay_End);
MoveInfo.log($"获得点料结果 QTY:{MoveInfo.ReelParam.QTY}");
MoveInfo.StopwatchLog(false, "获得点料结果");
if (RobotManage.labelMachine.TransMoveInfo.MoveStep == MoveStep.Wait)
{
RobotManage.labelMachine.preReelParam = MoveInfo.ReelParam;
MoveInfo.NextMoveStep(MoveStep.XRay_End);
MoveInfo.log($"获得点料结果 QTY:{MoveInfo.ReelParam.QTY}");
MoveInfo.StopwatchLog(false, "获得点料结果");
}
else
{
Msg.add("点料机出口等待处理二号机物料", MsgLevel.warning);
MoveInfo.log($"等待处理二号机物料");
}
}
else if (MoveInfo.IsTimeOut(30)) {
else if (MoveInfo.IsTimeOut(30))
{
MoveInfo.NextMoveStep(MoveStep.XRay_End);
MoveInfo.log("获取点料结果超时");
MoveInfo.ReelParam.IsNg = true;
......
......@@ -6,6 +6,7 @@ using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
using X_Ray;
namespace DeviceLibrary
{
......@@ -44,10 +45,14 @@ namespace DeviceLibrary
set
{
_WareCode = value;
var w = _WareCode.Split('|');
if (w.Length == 5) {
PN = w[0];
ReeID = w[3];
if (!string.IsNullOrEmpty(_WareCode))
{
var w = _WareCode.Split('|');
if (w.Length == 5)
{
PN = w[0];
ReeID = w[3];
}
}
}
}
......@@ -95,7 +100,7 @@ namespace DeviceLibrary
/// </summary>
public ReelDest ReelDest { get; set; }
public string xrayfile, resultfile, Algo;
public ReelParam clone() {
return this.MemberwiseClone() as ReelParam;
}
......@@ -151,4 +156,46 @@ namespace DeviceLibrary
Tower,
Unknow
}
public enum RemoteResult
{
None,
Timeout,
False,
True
}
[Serializable]
public class RemoteLoad
{
/// <summary>
/// 动作
/// </summary>
public string Action;
public long Seq;
/// <summary>
/// 设备名称
/// </summary>
public string GroupName;
/// <summary>
/// 消息
/// </summary>
public string Msg;
/// <summary>
/// 物料信息
/// </summary>
public RequestLoadInfo RequestLoadInfo;
}
[Serializable]
public class RequestLoadInfo
{
/// <summary>
/// 目的地设备名称
/// </summary>
public string DeviceGroupName;
/// <summary>
/// 料盘数据
/// </summary>
public ReelParam LoadParam;
//public DoorStatusE DoorStatus;
}
}
......@@ -142,7 +142,10 @@ namespace DeviceLibrary
LogUtil.error(msg);
}
}
public void Msg(string msg, MsgLevel msgLevel)
{
WaitList.Add(WaitResultInfo.WaitMsg(msg, msgLevel));
}
public void StopwatchReset() {
Stopwatch.Restart();
}
......@@ -161,7 +164,15 @@ namespace DeviceLibrary
IsEnd = false;
CanWhileMoveCount = 0;
}
public static WaitResultInfo WaitMsg(string msg, MsgLevel msgLevel)
{
WaitResultInfo wait = new WaitResultInfo();
wait.WaitType = WaitEnum.W014_Msg;
wait.ActionMsg = msg;
wait.IsEnd = true;
wait.Data = msgLevel;
return wait;
}
public static WaitResultInfo WaitIO(string ioType, IO_VALUE ioValue)
{
WaitResultInfo wait = new WaitResultInfo();
......@@ -336,6 +347,7 @@ namespace DeviceLibrary
/// </summary>
public Func<WaitResultInfo, bool> Action { get; set; }
public string ActionMsg { get; set; }
public dynamic Data { get; set; }
}
internal class WaitEnum
......@@ -376,5 +388,9 @@ namespace DeviceLibrary
/// 通用代理等待方法
/// </summary>
internal static int W013_Action = 13;
/// <summary>
/// 等待时反馈消息
/// </summary>
internal static int W014_Msg = 14;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace DeviceLibrary
{
public class Snowflake
{
private static long machineId;//机器ID
private static long datacenterId = 0L;//数据ID
private static long sequence = 0L;//计数从零开始
private static long twepoch = 687888001020L; //唯一时间随机量
private static long machineIdBits = 5L; //机器码字节数
private static long datacenterIdBits = 5L;//数据字节数
public static long maxMachineId = -1L ^ -1L << (int)machineIdBits; //最大机器ID
private static long maxDatacenterId = -1L ^ (-1L << (int)datacenterIdBits);//最大数据ID
private static long sequenceBits = 12L; //计数器字节数,12个字节用来保存计数码
private static long machineIdShift = sequenceBits; //机器码数据左移位数,就是后面计数器占用的位数
private static long datacenterIdShift = sequenceBits + machineIdBits;
private static long timestampLeftShift = sequenceBits + machineIdBits + datacenterIdBits; //时间戳左移动位数就是机器码+计数器总字节数+数据字节数
public static long sequenceMask = -1L ^ -1L << (int)sequenceBits; //一微秒内可以产生计数,如果达到该值则等到下一微妙在进行生成
private static long lastTimestamp = -1L;//最后时间戳
private static object syncRoot = new object();//加锁对象
static Snowflake snowflake;
public static Snowflake Instance()
{
if (snowflake == null)
snowflake = new Snowflake();
return snowflake;
}
public Snowflake()
{
Snowflakes(0L, -1);
}
public Snowflake(long machineId)
{
Snowflakes(machineId, -1);
}
public Snowflake(long machineId, long datacenterId)
{
Snowflakes(machineId, datacenterId);
}
private void Snowflakes(long machineId, long datacenterId)
{
if (machineId >= 0)
{
if (machineId > maxMachineId)
{
throw new Exception("机器码ID非法");
}
Snowflake.machineId = machineId;
}
if (datacenterId >= 0)
{
if (datacenterId > maxDatacenterId)
{
throw new Exception("数据中心ID非法");
}
Snowflake.datacenterId = datacenterId;
}
}
/// <summary>
/// 生成当前时间戳
/// </summary>
/// <returns>毫秒</returns>
private static long GetTimestamp()
{
//让他2000年开始
return (long)(DateTime.UtcNow - new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;
}
/// <summary>
/// 获取下一微秒时间戳
/// </summary>
/// <param name="lastTimestamp"></param>
/// <returns></returns>
private static long GetNextTimestamp(long lastTimestamp)
{
long timestamp = GetTimestamp();
int count = 0;
while (timestamp <= lastTimestamp)//这里获取新的时间,可能会有错,这算法与comb一样对机器时间的要求很严格
{
count++;
if (count > 10)
throw new Exception("机器的时间可能不对");
Thread.Sleep(1);
timestamp = GetTimestamp();
}
return timestamp;
}
/// <summary>
/// 获取长整形的ID
/// </summary>
/// <returns></returns>
public long GetId()
{
lock (syncRoot)
{
long timestamp = GetTimestamp();
if (Snowflake.lastTimestamp == timestamp)
{ //同一微妙中生成ID
sequence = (sequence + 1) & sequenceMask; //用&运算计算该微秒内产生的计数是否已经到达上限
if (sequence == 0)
{
//一微妙内产生的ID计数已达上限,等待下一微妙
timestamp = GetNextTimestamp(Snowflake.lastTimestamp);
}
}
else
{
//不同微秒生成ID
sequence = 0L;
}
if (timestamp < lastTimestamp)
{
throw new Exception("时间戳比上一次生成ID时时间戳还小,故异常");
}
Snowflake.lastTimestamp = timestamp; //把当前时间戳保存为最后生成ID的时间戳
long Id = ((timestamp - twepoch) << (int)timestampLeftShift)
| (datacenterId << (int)datacenterIdShift)
| (machineId << (int)machineIdShift)
| sequence;
return Id;
}
}
}
}
......@@ -35,29 +35,32 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="Asa.CarerayImage">
<HintPath>..\..\CarerayImage\CarerayImage\bin\Debug\Asa.CarerayImage.dll</HintPath>
<HintPath>..\DLL\Asa.CarerayImage.dll</HintPath>
</Reference>
<Reference Include="Asa.PrintLabel">
<HintPath>..\..\PrintLabel\PrintLabel\bin\Debug\Asa.PrintLabel.dll</HintPath>
<HintPath>..\DLL\Asa.PrintLabel.dll</HintPath>
</Reference>
<Reference Include="CodeLibrary">
<HintPath>..\..\GeneralClassLibrary\CodeLibraryProject\CodeLibrary\bin\Debug\CodeLibrary.dll</HintPath>
<HintPath>..\DLL\CodeLibrary.dll</HintPath>
</Reference>
<Reference Include="ConfigHelper">
<HintPath>..\..\ConfigHelper\ConfigHelper\bin\Debug\ConfigHelper.dll</HintPath>
<HintPath>..\DLL\ConfigHelper.dll</HintPath>
</Reference>
<Reference Include="Fleck, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Fleck.1.2.0\lib\net45\Fleck.dll</HintPath>
</Reference>
<Reference Include="halcondotnet">
<HintPath>..\..\RC1271-DUOStore\dll\halcondotnet.dll</HintPath>
<HintPath>..\DLL\halcondotnet.dll</HintPath>
</Reference>
<Reference Include="HuichuanLibrary">
<HintPath>..\..\HuichuanLibrary\HuichuanLibrary\bin\Debug\HuichuanLibrary.dll</HintPath>
<HintPath>..\DLL\HuichuanLibrary.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, processorArchitecture=x86">
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\HuichuanLibrary\HuichuanLibrary\bin\Debug\log4net.dll</HintPath>
<HintPath>..\DLL\log4net.dll</HintPath>
</Reference>
<Reference Include="Neotel.Rmaxis">
<HintPath>..\..\增广夹爪\Rmaxis\bin\Debug\Neotel.Rmaxis.dll</HintPath>
<HintPath>..\DLL\Neotel.Rmaxis.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
......@@ -79,9 +82,8 @@
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="X-Ray, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\X-Ray\X-Ray\bin\Debug\X-Ray.dll</HintPath>
<Reference Include="X-Ray">
<HintPath>..\DLL\X-Ray.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
......@@ -93,11 +95,14 @@
<Compile Include="AutoScan\common\OcrProcess.cs" />
<Compile Include="AutoScan\common\SensorDebounce.cs" />
<Compile Include="AutoScan\common\ServerConn.cs" />
<Compile Include="AutoScan\common\Snowflake.cs" />
<Compile Include="AutoScan\common\TextBlock.cs" />
<Compile Include="AutoScan\FilterMachine.partial.cs" />
<Compile Include="AutoScan\LabelMachine.partial.cs" />
<Compile Include="AutoScan\LabelMachine.Ledprocess.cs" />
<Compile Include="AutoScan\LabelMachine.claclabel.cs" />
<Compile Include="AutoScan\LabelMachine.Tmove.cs" />
<Compile Include="AutoScan\RemoteService.cs" />
<Compile Include="AutoScan\T1Machine.cs" />
<Compile Include="AutoScan\FilterMachine.cs" />
<Compile Include="AutoScan\LabelMachine.cs" />
......
......@@ -113,7 +113,7 @@ namespace DeviceLibrary
LogUtil.error("加载HIK相机出错:" + ex.ToString());
}
}
string[] names = Camera._cam.Name;
string[] names = Camera._cam?.Name;
if (names != null)
......
......@@ -35,75 +35,88 @@ namespace DeviceLibrary
}
public bool Clamp(MoveInfo moveInfo = null)
{
OpenPort();
GripperType = GripperTypeE.Gripper;
if (moveInfo != null)
moveInfo.WaitList.Add(WaitResultInfo.WaitAction(new Func<WaitResultInfo, bool>(WaitAction),"夹爪夹紧"));
LogUtil.info($"ElectricGripper Clamp");
if (axis.ErrorCode > 0)
{
LogUtil.info("ElectricGripper Clamp error:" + axis.ErrorCode.ToString() + axis.ErrorString);
axis.ResetError();
}
if (IsBusy)
try
{
axis.StopAxis();
Thread.Sleep(500);
}
if (!IsBusy)
{
axis.Push(50, 5.5f, 50);
clampTimes++;
if (moveInfo != null)
moveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
OpenPort();
GripperType = GripperTypeE.Gripper;
return true;
if (moveInfo != null)
moveInfo.WaitList.Add(WaitResultInfo.WaitAction(new Func<WaitResultInfo, bool>(WaitAction), "夹爪夹紧"));
LogUtil.info($"ElectricGripper Clamp");
if (axis.ErrorCode > 0)
{
LogUtil.info("ElectricGripper Clamp error:" + axis.ErrorCode.ToString() + axis.ErrorString);
axis.ResetError();
}
if (IsBusy)
{
axis.StopAxis();
Thread.Sleep(1000);
}
if (!IsBusy)
{
axis.Push(50, 5.5f, 50);
clampTimes++;
if (moveInfo != null)
moveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
return true;
}
else
{
LogUtil.info("ElectricGripper Clamp busy");
ClosePort();
return false;
}
}
else {
LogUtil.info("ElectricGripper Clamp busy");
catch (Exception ex)
{
LogUtil.error($"ElectricGripper Err:{ex}");
ClosePort();
Thread.Sleep(100);
OpenPort();
Thread.Sleep(100);
axis.ResetError();
axis.Push(50, 5.5f, 50);
return false;
}
}
public bool Release(MoveInfo moveInfo = null)
{
OpenPort();
GripperType = GripperTypeE.Release;
LogUtil.info($"ElectricGripper Release");
if (axis.ErrorCode > 0)
{
LogUtil.info("ElectricGripper Release error:" + axis.ErrorCode.ToString() + axis.ErrorString);
axis.ResetError();
}
if (IsBusy)
{
axis.StopAxis();
Thread.Sleep(500);
}
if (!IsBusy)
{
axis.MoveAbsolute(0.2f, 50, 150, 150, 1f);
clampTimes = 0;
if (moveInfo != null)
moveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
return true;
}
else
{
try
{
OpenPort();
GripperType = GripperTypeE.Release;
LogUtil.info($"ElectricGripper Release");
if (axis.ErrorCode > 0)
{
LogUtil.info($"ElectricGripper ErrCode:{axis.ErrorCode}");
LogUtil.info("ElectricGripper Release error:" + axis.ErrorCode.ToString() + axis.ErrorString);
axis.ResetError();
Thread.Sleep(100);
}
if (moveInfo != null)
moveInfo.WaitList.Add(WaitResultInfo.WaitAction(new Func<WaitResultInfo, bool>(WaitAction), "夹爪放松"));
if (IsBusy)
{
axis.StopAxis();
Thread.Sleep(1000);
}
if (!IsBusy)
{
axis.MoveAbsolute(0.2f, 50, 150, 150, 1f);
clampTimes = 0;
if (moveInfo != null)
moveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
return true;
}
else
{
if (axis.ErrorCode > 0)
{
LogUtil.info($"ElectricGripper ErrCode:{axis.ErrorCode}");
axis.ResetError();
Thread.Sleep(100);
}
if (moveInfo != null)
moveInfo.WaitList.Add(WaitResultInfo.WaitAction(new Func<WaitResultInfo, bool>(WaitAction), "夹爪放松"));
ClosePort();
return false;
}
}
catch(Exception ex) {
LogUtil.error($"ElectricGripper Err:{ex}");
ClosePort();
return false;
}
}
......
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="DeviceLibrary.Properties.Settings1" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
<section name="DeviceLibrary.Properties.Settings1" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.0.12.0" newVersion="2.0.12.0"/>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.12.0" newVersion="2.0.12.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
......@@ -26,4 +26,4 @@
</setting>
</DeviceLibrary.Properties.Settings1>
</userSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /></startup></configuration>
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Fleck" version="1.2.0" targetFramework="net48" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.114.0" targetFramework="net461" />
<package id="System.Data.SQLite.Core" version="1.0.114.3" targetFramework="net461" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
......
......@@ -33,9 +33,9 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\增广夹爪\Rmaxis\bin\Debug\log4net.dll</HintPath>
<HintPath>..\DLL\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
......

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31112.23
# Visual Studio Version 17
VisualStudioVersion = 17.12.35707.178
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SO853-AutoCountMachine", "SO853-AutoCountMachine\SO853-AutoCountMachine.csproj", "{9B1ED5AF-2A34-43FD-AA2B-5BFB529B848D}"
EndProject
......@@ -9,12 +9,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoadCSVLibrary", "LoadCVSLi
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common\Common.csproj", "{43CDD09E-FCF3-4960-A01D-3BBFE9933122}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeviceLibrary", "DeviceLibrary\DeviceLibrary.csproj", "{E6879E1B-9F25-427C-8E3B-A6E977036313}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeviceLibrary", "DeviceLibrary\DeviceLibrary.csproj", "{BB23296C-AA1D-45C6-9FA6-5A37B2ABFE9B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
Description = 越南纬创主机
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9B1ED5AF-2A34-43FD-AA2B-5BFB529B848D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
......@@ -29,10 +30,10 @@ Global
{43CDD09E-FCF3-4960-A01D-3BBFE9933122}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43CDD09E-FCF3-4960-A01D-3BBFE9933122}.Release|Any CPU.ActiveCfg = Release|Any CPU
{43CDD09E-FCF3-4960-A01D-3BBFE9933122}.Release|Any CPU.Build.0 = Release|Any CPU
{E6879E1B-9F25-427C-8E3B-A6E977036313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E6879E1B-9F25-427C-8E3B-A6E977036313}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E6879E1B-9F25-427C-8E3B-A6E977036313}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E6879E1B-9F25-427C-8E3B-A6E977036313}.Release|Any CPU.Build.0 = Release|Any CPU
{BB23296C-AA1D-45C6-9FA6-5A37B2ABFE9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BB23296C-AA1D-45C6-9FA6-5A37B2ABFE9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BB23296C-AA1D-45C6-9FA6-5A37B2ABFE9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BB23296C-AA1D-45C6-9FA6-5A37B2ABFE9B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="AutoCountMachine.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
<section name="AutoCountMachine.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="AutoCountMachine.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
<section name="DeviceLibrary.Properties.Settings1" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
<section name="AutoCountMachine.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="DeviceLibrary.Properties.Settings1" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
<!--是否开机自动启动料仓-->
<add key="App_AutoRun" value="1"/>
<add key="Default_Language" value="zh-CN"/>
<add key="CodeType" value="QR Code#Data Matrix ECC 200#barcode"/>
<add key="App_AutoRun" value="1" />
<add key="Default_Language" value="zh-CN" />
<add key="CodeType" value="QR Code#Data Matrix ECC 200#barcode" />
<!--二维码参数文件所在路径,文件名与二维码类型名一样-->
<add key="CodeParamPath" value="Conifg\"/>
<add key="CodeCount" value="3"/>
<add key="Code_Block_Size_List" value="11"/>
<add key="inputCounterDataByXRayMachine" value="http://10.69.221.80/SCTAEXTERNAL001/api/inputCounterDataByXRayMachine"/>
<add key="DetermineReelStorageLocation" value="http://10.69.221.80/SCTARLC001/api/RLC/DetermineReelStorageLocation"/>
<add key="CodeParamPath" value="Conifg\" />
<add key="CodeCount" value="3" />
<add key="Code_Block_Size_List" value="11" />
<add key="inputCounterDataByXRayMachine" value="http://10.69.221.80/SCTAEXTERNAL001/api/inputCounterDataByXRayMachine" />
<add key="DetermineReelStorageLocation" value="http://10.69.221.80/SCTARLC001/api/RLC/DetermineReelStorageLocation" />
</appSettings>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs/AutoScanAndLabel.log"/>
<param name="Encoding" value="UTF-8"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
<file value="logs/AutoScanAndLabel.log" />
<param name="Encoding" value="UTF-8" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n"/>
<conversionPattern value="[%date][%t]%-5p %m%n" />
</layout>
</appender>
<appender name="LngResource" type="log4net.Appender.RollingFileAppender">
<file value="logs/LngResource.log"/>
<param name="Encoding" value="UTF-8"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
<file value="logs/LngResource.log" />
<param name="Encoding" value="UTF-8" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n"/>
<conversionPattern value="[%date][%t]%-5p %m%n" />
</layout>
</appender>
<logger name="RollingLogFileAppender">
<level value="ALL"/>
<appender-ref ref="RollingLogFileAppender"/>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
</logger>
<logger name="HCBOARD">
<level value="ALL"/>
<appender-ref ref="RollingLogFileAppender"/>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
</logger>
<logger name="LngResource">
<level value="Info"/>
<appender-ref ref="LngResource"/>
<level value="Info" />
<appender-ref ref="LngResource" />
</logger>
<!--<root>
<level value="Info" />
......@@ -62,13 +62,13 @@
</root>-->
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.0.12.0" newVersion="2.0.12.0"/>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.12.0" newVersion="2.0.12.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
......
......@@ -57,9 +57,9 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\ConfigHelper\ConfigHelper\bin\Debug\ConfigHelper.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\增广夹爪\Rmaxis\bin\Debug\log4net.dll</HintPath>
<HintPath>..\DLL\log4net.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!