添加项目文件。
This commit is contained in:
9
src/BRS.Common.Model/Interface/ICSVOutput.cs
Normal file
9
src/BRS.Common.Model/Interface/ICSVOutput.cs
Normal file
@ -0,0 +1,9 @@
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface ICSVOutput
|
||||
{
|
||||
string GetCSVHead();
|
||||
|
||||
string GetCSVData();
|
||||
}
|
||||
}
|
14
src/BRS.Common.Model/Interface/IConfigCtrl.cs
Normal file
14
src/BRS.Common.Model/Interface/IConfigCtrl.cs
Normal file
@ -0,0 +1,14 @@
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
//public delegate void ConfigChangedDelegate();
|
||||
public interface IConfigCtrl<T1, T2>
|
||||
{
|
||||
//event ConfigChangedDelegate OnConfigChanged;
|
||||
T1 Camera { get; set; }
|
||||
T2 Config { get; set; }
|
||||
|
||||
void LoadConfig(T2 t);
|
||||
|
||||
T2 GetConfig();
|
||||
}
|
||||
}
|
44
src/BRS.Common.Model/Interface/IDevice.cs
Normal file
44
src/BRS.Common.Model/Interface/IDevice.cs
Normal file
@ -0,0 +1,44 @@
|
||||
using BRS.Common.Model;
|
||||
using BRS.Common.Model.Helper;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using static BRS.Common.Model.Helper.EnumHelper;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface IDevice : IDisposable, INotifyPropertyChanged, ISimpleDevice, ILogger, IExceptionHandler
|
||||
{
|
||||
IInitialConfig InitialConfig { get; set; }
|
||||
|
||||
EnumHelper.DeviceState CurrentState { get; set; }
|
||||
event Action<IDevice, DeviceState> OnDeviceStateChanged;
|
||||
|
||||
void StateChange(EnumHelper.DeviceState stateToBe);
|
||||
|
||||
ResponseMessage RunWrap(IOperationConfig opConfig);
|
||||
}
|
||||
|
||||
public interface ISimpleDevice
|
||||
{
|
||||
string Id { get; set; }
|
||||
string Name { get; set; }
|
||||
}
|
||||
|
||||
public class SimpleDevice : ISimpleDevice
|
||||
{
|
||||
public string Id { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用来记录配置中设备信息的接口
|
||||
/// </summary>
|
||||
public interface ISourceDevice
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备信息编号
|
||||
/// </summary>
|
||||
string SourceDeviceId { get; set; }
|
||||
}
|
||||
}
|
41
src/BRS.Common.Model/Interface/IDeviceConfig.cs
Normal file
41
src/BRS.Common.Model/Interface/IDeviceConfig.cs
Normal file
@ -0,0 +1,41 @@
|
||||
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备配置
|
||||
/// </summary>
|
||||
public interface IDeviceConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// 暂时设想的一些不好归类的配置,使用json序列化之后保存在该字段
|
||||
/// </summary>
|
||||
//string DataConfig { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设备初始配置
|
||||
/// </summary>
|
||||
public interface IInitialConfig : ILogConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备序号 GUID
|
||||
/// 因为本项目设备信息未做配置,将索引添加在初始配置中
|
||||
/// </summary>
|
||||
string Id { get; set; }
|
||||
|
||||
string Name { get; set; }
|
||||
|
||||
bool IsEnabled { get; set; }
|
||||
|
||||
string DriverType { get; set; }
|
||||
}
|
||||
|
||||
public interface ILogConfig
|
||||
{
|
||||
string LogPath { get; set; }
|
||||
|
||||
bool IsEnableLog { get; set; }
|
||||
bool IsEnableCSV { get; set; }
|
||||
}
|
||||
}
|
9
src/BRS.Common.Model/Interface/IHalconToolPath.cs
Normal file
9
src/BRS.Common.Model/Interface/IHalconToolPath.cs
Normal file
@ -0,0 +1,9 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface IHalconToolPath
|
||||
{
|
||||
List<string> GetHalconToolPathList();
|
||||
}
|
||||
}
|
14
src/BRS.Common.Model/Interface/IIOModuleConfig.cs
Normal file
14
src/BRS.Common.Model/Interface/IIOModuleConfig.cs
Normal file
@ -0,0 +1,14 @@
|
||||
using BRS.Common.Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface IIOModuleConfig
|
||||
{
|
||||
List<IODefinition> IODefinitionCollection { get; set; }
|
||||
}
|
||||
}
|
242
src/BRS.Common.Model/Interface/IImageSet.cs
Normal file
242
src/BRS.Common.Model/Interface/IImageSet.cs
Normal file
@ -0,0 +1,242 @@
|
||||
using BRS.Common.Model.Helper;
|
||||
using OpenCvSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
/// <summary>
|
||||
/// 所有图片类型的基类
|
||||
/// </summary>
|
||||
public abstract class BaseImage : object, IDisposable
|
||||
{
|
||||
public abstract int Width { get; }
|
||||
public abstract int Height { get; }
|
||||
|
||||
public abstract Mat Mat();
|
||||
|
||||
public abstract BaseImage Clone();
|
||||
public abstract void Dispose();
|
||||
|
||||
/// <summary>
|
||||
/// 转换为Bitmap对象并返回
|
||||
/// </summary>
|
||||
/// <returns>返回转换后的Bitmap对象,可以在子类种自行做缓存</returns>
|
||||
public abstract Bitmap ConvertToBitmap();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <typeparam name="T">图片类型范围</typeparam>
|
||||
public interface IImageSet : IDisposable
|
||||
{
|
||||
string Id { get; set; }
|
||||
string CameraId { get; set; }
|
||||
BaseImage BImage { get; set; }
|
||||
Bitmap Image { get; set; }
|
||||
DateTime ImageTime { get; set; }
|
||||
string PId { get; set; }
|
||||
string Prefix { get; set; }
|
||||
|
||||
object SaveLock { get; set; }
|
||||
|
||||
ImageSaveOption ImageSaveOption { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 序列化操作的图像信息
|
||||
/// </summary>
|
||||
string ImageData { get; set; }
|
||||
|
||||
void SaveImage();
|
||||
|
||||
// Bitmap ConvertTImageToBitmap(TImg img);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class ImageSaveOption : IComplexDisplay
|
||||
{
|
||||
[Category("启用配置")]
|
||||
[Description("是否启用")]
|
||||
[DisplayName("是否启用")]
|
||||
public bool IsEnabled { get; set; } = false;
|
||||
|
||||
[Category("图片保存")]
|
||||
[Description("图片保存文件夹")]
|
||||
[DisplayName("图片保存文件夹")]
|
||||
public virtual string ImageSaveDirectory { get; set; }
|
||||
|
||||
[Category("图片保存")]
|
||||
[Description("图片保存格式")]
|
||||
[DisplayName("图片保存格式")]
|
||||
public ImageFormat ImageFormat { get; set; } = ImageFormat.Png;
|
||||
|
||||
|
||||
|
||||
public ImageSaveOption Copy()
|
||||
{
|
||||
ImageSaveOption iso = new ImageSaveOption();
|
||||
iso.ImageSaveDirectory = this.ImageSaveDirectory;
|
||||
iso.ImageFormat = this.ImageFormat;
|
||||
iso.IsEnabled = this.IsEnabled;
|
||||
|
||||
return iso;
|
||||
}
|
||||
|
||||
public string GetDisplayText()
|
||||
{
|
||||
string txt = IsEnabled ? "启用:" : "禁用";
|
||||
if (!string.IsNullOrWhiteSpace(ImageSaveDirectory))
|
||||
{
|
||||
txt += $"目录:{ImageSaveDirectory}";
|
||||
}
|
||||
return txt;
|
||||
}
|
||||
}
|
||||
|
||||
public class VisionImageSaveOption : ImageSaveOption
|
||||
{
|
||||
//[Category("图片保存")]
|
||||
//[Description("true:产品模式,同一个产品 不同工站 处理完的的图片,会保存在同一个产品文件夹下;false:检测工站模式,处理完的图片会以 RawImages、PreTreatedImages、PreTreatedAnalysisImages...等路径保存")]
|
||||
//[DisplayName("是否产品模式")]
|
||||
//public bool IsProductModel { get; set; } = false;
|
||||
|
||||
[Category("图片保存")]
|
||||
[Description("是否保存原始检测图片")]
|
||||
[DisplayName("保存原始检测图片")]
|
||||
public bool IsSaveDetectionOriginImage { get; set; } = false;
|
||||
|
||||
|
||||
[Category("图片保存")]
|
||||
[Description("是否保存结果图片")]
|
||||
[DisplayName("保存结果图片")]
|
||||
public bool IsSaveFitImage { get; set; } = false;
|
||||
|
||||
[Category("图片保存")]
|
||||
[Description("检测结果附加保存类型,针对检测完的结果保存图片,多类型使用\",\"间隔。如要保存OK和NG 裂纹 图片,填写\"OK,NG,裂纹\"")]
|
||||
[DisplayName("检测结果附加保存类型")]
|
||||
public string AddtionalSaveType { get; set; } = "NG";
|
||||
|
||||
[Browsable(false)]
|
||||
public override string ImageSaveDirectory { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
public class ImageSet : IImageSet
|
||||
{
|
||||
// public virtual Bitmap ConvertTImageToBitmap(TImg img) { return null; }
|
||||
|
||||
public DateTime ImageTime { get; set; } = DateTime.Now;
|
||||
|
||||
private string id = "";
|
||||
public string Id
|
||||
{
|
||||
get
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(id))
|
||||
{
|
||||
id = ImageTime.ToString("HHmmssfff");
|
||||
}
|
||||
return id;
|
||||
}
|
||||
set
|
||||
{
|
||||
id = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string CameraId { get; set; }
|
||||
|
||||
public string Prefix { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 原图 HImage
|
||||
/// </summary>
|
||||
public BaseImage BImage { get; set; } = null;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 原图 Bitmap
|
||||
/// </summary>
|
||||
public Bitmap Image { get; set; } = null;
|
||||
|
||||
|
||||
public string PId { get; set; }
|
||||
|
||||
#region Save Option & Result
|
||||
public virtual ImageSaveOption ImageSaveOption { get; set; } = new ImageSaveOption();
|
||||
|
||||
public bool IsSaveOrigin { get; set; } = false;
|
||||
public object SaveLock { get; set; } = new object();
|
||||
public virtual string ImageData { get; set; }
|
||||
|
||||
public virtual void SaveImage()
|
||||
{
|
||||
if (IsSaveOrigin)
|
||||
{
|
||||
string imageDir = string.IsNullOrWhiteSpace(Prefix) ? DateTime.Now.ToString("yyyyMMdd") : Path.Combine(Prefix, DateTime.Now.ToString("yyyyMMdd"));
|
||||
string filename = string.IsNullOrWhiteSpace(Prefix) ? $"{Id}.{ImageSaveOption.ImageFormat.ToString().ToLower()}" : $"{Prefix}_{Id}.{ImageSaveOption.ImageFormat.ToString().ToLower()}";
|
||||
string filePath = Path.Combine(ImageSaveOption.ImageSaveDirectory, imageDir, filename);
|
||||
Image.Save(filePath, ImageSaveOption.ImageFormat);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Dispose()
|
||||
{
|
||||
Image?.Dispose();
|
||||
Image = null;
|
||||
|
||||
BImage?.Dispose();
|
||||
BImage = null;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
public class DualImageSet : ImageSet
|
||||
{
|
||||
public BaseImage HImage_2 { get; set; }
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
base.Dispose();
|
||||
|
||||
HImage_2?.Dispose();
|
||||
HImage_2 = null;
|
||||
}
|
||||
|
||||
public override void SaveImage()
|
||||
{
|
||||
//if (string.IsNullOrWhiteSpace(imageName))
|
||||
//{
|
||||
// imageName = Id;
|
||||
//}
|
||||
|
||||
//string filePath = "";
|
||||
//if (image != null)
|
||||
//{
|
||||
// filePath = Path.Combine(imageDir, $"{imageName}.{ImageSaveOption.ImageFormat.ToString().ToLower()}");
|
||||
// image.Save(filePath, ImageSaveOption.ImageFormat);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// filePath = Path.Combine(imageDir, $"{imageName}.tif");
|
||||
// HImage_2.WriteImage("tiff", 0, filePath);
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
50
src/BRS.Common.Model/Interface/IInputConfig.cs
Normal file
50
src/BRS.Common.Model/Interface/IInputConfig.cs
Normal file
@ -0,0 +1,50 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备的实际运行的硬件输入配置
|
||||
/// 考虑使用消息接收机制在这里等待外部信号进入
|
||||
/// </summary>
|
||||
public interface IInputConfig : IDisposable //: IProcessID
|
||||
{
|
||||
/// <summary>
|
||||
/// 该配置对应的工序编号
|
||||
/// 考虑到多工序可能对应到同样的配置,工序编号不做固定赋值,在设备运作时随用随赋值
|
||||
/// </summary>
|
||||
string ProcessId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工序名称
|
||||
/// </summary>
|
||||
string ProcessName { get; set; }
|
||||
|
||||
//Dictionary<string, AutoResetEvent> InputHanlderDict { get; set; }
|
||||
//Dictionary<string, bool> InputFlagDict { get; set; }
|
||||
|
||||
//ConcurrentDictionary<string, AutoResetEvent> InputHanlderDict { get; set; }
|
||||
|
||||
//ConcurrentDictionary<string, bool> InputFlagDict { get; set; }
|
||||
|
||||
AutoResetEvent InputHandle { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 是否已进入输入配置方法标志
|
||||
///// </summary>
|
||||
//bool BoundFlag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否需要做硬输入(外部输入)判断 false:不需要 true:需要
|
||||
/// </summary>
|
||||
bool IsInputNeed { get; set; }
|
||||
|
||||
string InputMethodName { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 第三方设备输入参数
|
||||
/// </summary>
|
||||
dynamic InputPara { get; set; }
|
||||
}
|
||||
}
|
14
src/BRS.Common.Model/Interface/ILogger.cs
Normal file
14
src/BRS.Common.Model/Interface/ILogger.cs
Normal file
@ -0,0 +1,14 @@
|
||||
using BRS.Common.Model.Helper;
|
||||
using System;
|
||||
using static BRS.Common.Model.Helper.EnumHelper;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface ILogger
|
||||
{
|
||||
event Action<LogMsg> OnLog;
|
||||
LoggerHelper LoggerHelper { get; set; }
|
||||
//void LogAsync(DateTime dt, LogLevel loglevel, string msg);
|
||||
void LogAsync(LogMsg msg);
|
||||
}
|
||||
}
|
49
src/BRS.Common.Model/Interface/IMenuNode.cs
Normal file
49
src/BRS.Common.Model/Interface/IMenuNode.cs
Normal file
@ -0,0 +1,49 @@
|
||||
using BRS.Common.Model.Helper;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface IMenuNode
|
||||
{
|
||||
// IProcess Process { get; set; }
|
||||
|
||||
//void DownloadProcess(IProcess process);
|
||||
//Action<IProcess> OnUploadProcess { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public interface IClickableMenuNode : IMenuNode
|
||||
{
|
||||
IProcess Process { get; set; }
|
||||
void OnClick(IProcess process);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public interface IProcessObserver
|
||||
{
|
||||
IProcess Process { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 流程更新时回调函数
|
||||
/// </summary>
|
||||
void OnProcessUpdated();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 加载流程
|
||||
/// </summary>
|
||||
/// <param name="process"></param>
|
||||
void DownloadProcess(IProcess process);
|
||||
}
|
||||
|
||||
public interface ILogOutput
|
||||
{
|
||||
event Action<LogMsg> OnLogMsgOutput;
|
||||
void LogDisplay(LogMsg msg);
|
||||
}
|
||||
}
|
16
src/BRS.Common.Model/Interface/IMonitor.cs
Normal file
16
src/BRS.Common.Model/Interface/IMonitor.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using BRS.Common.Model;
|
||||
using System;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
//public delegate void OnMonitorInvokeDelegate(DateTime dt, string invokeDeviceId, IDevice sourceDevice, MonitorSet monitorSet);
|
||||
//public delegate void OnMonitorAlarmDelegate(DateTime dt, IDevice device, WarningSet warning);
|
||||
public interface IMonitor
|
||||
{
|
||||
void Monitor();
|
||||
void ResetAlarm();
|
||||
|
||||
Action<DateTime, string, IDevice, IMonitorSet> OnMonitorInvoke { get; set; }
|
||||
Action<DateTime, IDevice, IWarningSet> OnMonitorAlarm { get; set; }
|
||||
}
|
||||
}
|
48
src/BRS.Common.Model/Interface/IMonitorSetCollection.cs
Normal file
48
src/BRS.Common.Model/Interface/IMonitorSetCollection.cs
Normal file
@ -0,0 +1,48 @@
|
||||
using BRS.Common.Model;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface IMonitorSetCollection
|
||||
{
|
||||
//List<IMonitorSet> MonitorSetCollection { get; set; }
|
||||
|
||||
List<IMonitorSet> GetAllMonitorSet();
|
||||
}
|
||||
|
||||
public interface IMonitorConfig : IMonitorSetCollection
|
||||
{
|
||||
bool IsEnableMonitor { get; set; }
|
||||
|
||||
int MonitorInterval { get; set; }
|
||||
|
||||
int MonitorTimeout { get; set; }
|
||||
}
|
||||
|
||||
public interface IMonitorSet : ISourceDevice
|
||||
{
|
||||
string Id { get; set; }
|
||||
|
||||
string ExecuteDevice { get; set; }
|
||||
|
||||
string MethodCode { get; set; }
|
||||
|
||||
string MethodDesc { get; }
|
||||
|
||||
IOperationConfig OpConfig { get; set; }
|
||||
|
||||
//int TriggerIndex { get; set; }
|
||||
|
||||
//int TriggerValue { get; set; }
|
||||
|
||||
string Name { get; set; }
|
||||
|
||||
string DisplayText { get; }
|
||||
|
||||
//string SourceDeviceId { get; set; }
|
||||
|
||||
ResponseMessage Response { get; set; }
|
||||
|
||||
bool IsOriginOutput { get; set; }
|
||||
}
|
||||
}
|
42
src/BRS.Common.Model/Interface/IOperationConfig.cs
Normal file
42
src/BRS.Common.Model/Interface/IOperationConfig.cs
Normal file
@ -0,0 +1,42 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
/// <summary>
|
||||
/// 操作配置
|
||||
/// </summary>
|
||||
public interface IOperationConfig //: IOperationResult
|
||||
{
|
||||
/// <summary>
|
||||
/// 发生异常时的重新尝试次数
|
||||
/// </summary>
|
||||
int ReTryTimes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 输入参数
|
||||
/// </summary>
|
||||
List<int> InputPara { get; set; }
|
||||
|
||||
int TriggerValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 当异常发生时的异常反馈值
|
||||
/// </summary>
|
||||
int ExceptionValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 指示该操作的监视配置来源
|
||||
/// </summary>
|
||||
string MonitorSetId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 调用该操作配置的设备Id
|
||||
/// </summary>
|
||||
string ExecuteDeviceId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作执行后部分输出结果,目前拟采用序列化后的字符串方式保存
|
||||
/// </summary>
|
||||
string OutputData { get; set; }
|
||||
}
|
||||
}
|
43
src/BRS.Common.Model/Interface/IOperationResult.cs
Normal file
43
src/BRS.Common.Model/Interface/IOperationResult.cs
Normal file
@ -0,0 +1,43 @@
|
||||
using Bro.Common.Helper;
|
||||
|
||||
namespace Bro.Common.Interface
|
||||
{
|
||||
public interface IOperationResult //: IProcessID
|
||||
{
|
||||
///// <summary>
|
||||
///// 该配置对应的工序编号
|
||||
///// 考虑到多工序可能对应到同样的配置,工序编号不做固定赋值,在设备运作时随用随赋值
|
||||
///// </summary>
|
||||
//string ProcessId { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 工序名称
|
||||
///// </summary>
|
||||
//string ProcessName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结果输出 具体结果参照ConfigOutputAttribute特性指定的枚举
|
||||
/// </summary>
|
||||
[ConfigOutputResource("")]
|
||||
int ResultOutput { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 指定该配置在获取输出时调用哪个方法
|
||||
///// </summary>
|
||||
//string OutputMethodName { get; set; }
|
||||
}
|
||||
|
||||
public interface IProcessID
|
||||
{
|
||||
/// <summary>
|
||||
/// 该配置对应的工序编号
|
||||
/// 考虑到多工序可能对应到同样的配置,工序编号不做固定赋值,在设备运作时随用随赋值
|
||||
/// </summary>
|
||||
string ProcessId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工序名称
|
||||
/// </summary>
|
||||
string ProcessName { get; set; }
|
||||
}
|
||||
}
|
95
src/BRS.Common.Model/Interface/IProcess.cs
Normal file
95
src/BRS.Common.Model/Interface/IProcess.cs
Normal file
@ -0,0 +1,95 @@
|
||||
using BRS.Common.Model.Helper;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Reflection;
|
||||
using static BRS.Common.Model.Helper.EnumHelper;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface IProcess : ILogger, IExceptionHandler
|
||||
{
|
||||
#region 属性
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 流程配置
|
||||
/// </summary>
|
||||
IProcessConfig IConfig { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 带有[ProcessMethod]属性的所有方法集合,供设置界面选择使用
|
||||
/// </summary>
|
||||
List<ProcessMethodAttribute> ProcessMethodCollection { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 调用方法的字典集合,键:方法名称字符串,值:方法对象
|
||||
/// Key:MethodCode,Value:MethodInfo
|
||||
/// </summary>
|
||||
Dictionary<string, MethodInfo> ProcessMethodDict { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 流程使用的硬件设备集合
|
||||
/// </summary>
|
||||
List<IDevice> DeviceCollection { get; set; }
|
||||
|
||||
|
||||
|
||||
string ProductionCode { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 流程状态
|
||||
/// </summary>
|
||||
DeviceState ProcessState { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region 方法
|
||||
/// <summary>
|
||||
/// 打开
|
||||
/// </summary>
|
||||
void Open(bool isServiceMode = false);
|
||||
|
||||
void Open();
|
||||
|
||||
/// <summary>
|
||||
/// 关闭
|
||||
/// </summary>
|
||||
void Close();
|
||||
|
||||
/// <summary>
|
||||
/// 初始化Process
|
||||
/// </summary>
|
||||
void InitialProcess(string configPath);
|
||||
|
||||
void InitialProcess();
|
||||
|
||||
void InitialProcessMethods();
|
||||
#endregion
|
||||
|
||||
#region 事件
|
||||
///// <summary>
|
||||
///// 图像输出事件
|
||||
///// </summary>
|
||||
//event Action<string, Bitmap, string> OnBitmapOutput;
|
||||
|
||||
event Action<DeviceState> OnProcessStateChanged;
|
||||
event Action<RunState> OnProcessRunStateChanged;
|
||||
|
||||
event Action<IWarningSet> OnAlarmRaised;
|
||||
|
||||
event Action<DateTime, object, string> OnUpdateResult;
|
||||
event Action<DateTime, string> OnUpdateTriggerCount;
|
||||
event Action<object, float> OnUpdateCT;
|
||||
#endregion
|
||||
|
||||
#region 数据库操作
|
||||
void SaveProcessConfig(IProcessConfig config);
|
||||
void CreateNewConfig(IProcessConfig config, string newProductionCode, double pOutsideDiameter, double pHeight);
|
||||
#endregion
|
||||
}
|
||||
}
|
51
src/BRS.Common.Model/Interface/IProcessConfig.cs
Normal file
51
src/BRS.Common.Model/Interface/IProcessConfig.cs
Normal file
@ -0,0 +1,51 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using static BRS.Common.Model.Helper.EnumHelper;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface IProcessConfig : IHalconToolPath, IMonitorSetCollection, INotifyPropertyChanged
|
||||
{
|
||||
#region Property
|
||||
string StationCode { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 是否采用离线图片
|
||||
///// </summary>
|
||||
//bool IsImageOffline { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 运行模式
|
||||
/// </summary>
|
||||
//RunMode RunMode { get; set; }
|
||||
|
||||
bool IsLogEnabled { get; set; }
|
||||
// string ImgPath { get; set; }
|
||||
string LogPath { get; set; }
|
||||
|
||||
LogLevel DefaultLogLevel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否输出CSV文件
|
||||
/// </summary>
|
||||
bool IsCSVOutputEnabled { get; set; }
|
||||
#endregion
|
||||
|
||||
|
||||
#region 设备配置
|
||||
List<IInitialConfig> CameraConfigCollection { get; set; }
|
||||
//
|
||||
List<IInitialConfig> PLCConfigCollection { get; set; }
|
||||
List<IInitialConfig> DeviceConfigs { get; set; }
|
||||
|
||||
|
||||
List<IInitialConfig> RobotConfigCollection { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Method
|
||||
List<IInitialConfig> GetAllDeviceInitialConfigs();
|
||||
#endregion
|
||||
}
|
||||
}
|
34
src/BRS.Common.Model/Interface/IProductData.cs
Normal file
34
src/BRS.Common.Model/Interface/IProductData.cs
Normal file
@ -0,0 +1,34 @@
|
||||
using BRS.Common.Model;
|
||||
using BRS.Common.Model.Helper;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface IProductData
|
||||
{
|
||||
string Id { get; set; }
|
||||
|
||||
List<DetectStationResult> ResultCollection { get; set; }
|
||||
|
||||
|
||||
|
||||
//event Action<IImageSet> OnImageSetTimeout;
|
||||
|
||||
///// <summary>
|
||||
///// 序列化操作的图像信息
|
||||
///// </summary>
|
||||
//string ImageData { get; set; }
|
||||
|
||||
//void SaveImage(string imageDir, Bitmap image = null, string imageName = "");
|
||||
}
|
||||
|
||||
}
|
48
src/BRS.Common.Model/Interface/IRemoteMessage.cs
Normal file
48
src/BRS.Common.Model/Interface/IRemoteMessage.cs
Normal file
@ -0,0 +1,48 @@
|
||||
using BRS.Common.Model;
|
||||
using System;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface IRemoteMessage
|
||||
{
|
||||
string Id { get; set; }
|
||||
|
||||
string MessageType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 表示当前信息是反馈信息
|
||||
/// </summary>
|
||||
bool IsEcho { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 表示当前信息是否需要即时反馈
|
||||
/// </summary>
|
||||
bool EnableEcho { get; set; }
|
||||
|
||||
ResponseMessage ResolveMessage(DateTime dt);
|
||||
}
|
||||
|
||||
//public interface IMessageResolver
|
||||
//{
|
||||
// static Func<IRemoteMessage, ResponseMessage> ResolveAction { get; set; }
|
||||
//}
|
||||
|
||||
public class RemoteMessageBase : IRemoteMessage
|
||||
{
|
||||
public virtual string Id { get; set; } = DateTime.Now.ToString("MMdd_HHmmssfff");
|
||||
public string MessageType { get; set; } = "";
|
||||
public bool IsEcho { get; set; } = false;
|
||||
public bool EnableEcho { get; set; } = false;
|
||||
|
||||
//public abstract ResponseMessage ResolveMessage();
|
||||
|
||||
public virtual ResponseMessage ResolveMessage(DateTime dt)
|
||||
{
|
||||
ResponseMessage msg = new ResponseMessage();
|
||||
msg.Result = -1;
|
||||
msg.Message = "消息解析器未实现";
|
||||
|
||||
return msg;
|
||||
}
|
||||
}
|
||||
}
|
19
src/BRS.Common.Model/Interface/IRunCtrl.cs
Normal file
19
src/BRS.Common.Model/Interface/IRunCtrl.cs
Normal file
@ -0,0 +1,19 @@
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface IRunCtrl
|
||||
{
|
||||
IDevice Device { get; set; }
|
||||
|
||||
//IOperationConfig OpConfig { get; set; }
|
||||
|
||||
//void UploadOperationConfig(IOperationConfig opConfig);
|
||||
|
||||
//IOperationConfig GetOperationConfig();
|
||||
}
|
||||
|
||||
//public interface IEditCtrl
|
||||
//{
|
||||
// IRunCtrl RunCtrl { get; set; }
|
||||
// IOperationConfig OpConfig { get; set; }
|
||||
//}
|
||||
}
|
39
src/BRS.Common.Model/Interface/IShapeElement.cs
Normal file
39
src/BRS.Common.Model/Interface/IShapeElement.cs
Normal file
@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using static BRS.Common.Model.Helper.EnumHelper;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
|
||||
public interface IShapeElement : INotifyPropertyChanged, ICloneable
|
||||
{
|
||||
string ID { get; set; }
|
||||
|
||||
int Index { get; set; }
|
||||
int GroupIndex { get; set; }
|
||||
|
||||
string Name { get; set; }
|
||||
|
||||
void OnMouseDown(PointF point);
|
||||
void OnMouseUp(PointF point);
|
||||
void OnMouseMove(PointF point);
|
||||
void OnMouseDoubleClick(PointF point);
|
||||
bool IsIntersect(RectangleF rect);
|
||||
|
||||
bool IsEnabled { get; set; }
|
||||
void Draw(Graphics g);
|
||||
|
||||
void Translate(float x, float y);
|
||||
|
||||
/// <summary>
|
||||
/// WPF中标识该对象是否已经加入渲染,需要显示
|
||||
/// </summary>
|
||||
bool IsShowing { get; set; }
|
||||
|
||||
void Initial();
|
||||
bool IsCreatedDone();
|
||||
|
||||
ElementState State { get; set; }
|
||||
}
|
||||
}
|
39
src/BRS.Common.Model/Interface/IWarningSetCollection.cs
Normal file
39
src/BRS.Common.Model/Interface/IWarningSetCollection.cs
Normal file
@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BRS.Common.Interface
|
||||
{
|
||||
public interface IWarningSetCollection
|
||||
{
|
||||
List<IWarningSet> WarningSetCollection { get; set; }
|
||||
|
||||
//List<IWarningSet> GetAllWarningSet();
|
||||
}
|
||||
|
||||
public interface IWarningSet
|
||||
{
|
||||
//string Id { get; set; }
|
||||
|
||||
//string Name { get; set; }
|
||||
|
||||
string DisplayText { get; }
|
||||
|
||||
bool TriggerValue { get; set; }
|
||||
|
||||
string WarningCode { get; set; }
|
||||
|
||||
string WarningDescription { get; set; }
|
||||
|
||||
int WarningLvl { get; set; }
|
||||
|
||||
bool CurrentStatus { get; set; }
|
||||
|
||||
string SourceDevice { get; set; }
|
||||
|
||||
DateTime TriggerTime { get; set; }
|
||||
|
||||
DateTime LastTriggerTime { get; set; }
|
||||
|
||||
bool GetWarningSet(string txt);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user