Files
ATV_STDLabelAttach/QRValidation/Project/Setting/CSetting.cs
atvstdla dc66158497 Add QRValidation project to repository
- Added QRValidation vision control system
- Includes CapCleaningControl UI components
- WebSocket-based barcode validation system
- Support for Crevis PLC integration
- Test projects for PLC emulator, motion, IO panel, and Modbus

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-02 11:38:38 +09:00

196 lines
7.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using AR;
using System.Drawing.Design;
namespace Project
{
public class CSetting : AR.Setting
{
public System.Drawing.Rectangle ROI_ReelDetect_L { get; set; }
public System.Drawing.Rectangle ROI_ReelDetect_R { get; set; }
public System.Drawing.Rectangle ROI_ConvDetect_L { get; set; }
public System.Drawing.Rectangle ROI_ConvDetect_R { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int ConvDetectValueL { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int ConvDetectValueR { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string cameraname { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int GrabDelayFast { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int GrabDelaySlow { get; set; }
[Description("Unit(seconds)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int TriggerTimeout { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int AutoDeleteSeconds { get; set; }
public Boolean SendRawData { get; set; }
public Boolean DisableStreamData { get; set; }
public Boolean EnableDupRun { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string ImageSavePath { get; set; }
public Boolean Log_AllBarcode { get; set; }
public Boolean Log_Ping { get; set; }
public Boolean Log_BarcodeTx { get; set; }
public Boolean Log_BarcodeRx { get; set; }
[Category("Developer Setting"), DisplayName("Listening Port(Left)"),
Description("Listening port for server communication(TCP) - Default: 7979")]
public int listenPortL { get; set; }
[Category("Developer Setting"), DisplayName("Listening Port(Right)"),
Description("Listening port for server communication(TCP) - Default: 7980")]
public int listenPortR { get; set; }
[Category("Save Data Path"), DisplayName("Data Save Path")]
public string Path_Data { get; set; }
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public int processCount { get; set; }
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string erodevaluestr { get; set; }
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public uint blob_area_min { get; set; }
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public uint blob_area_max { get; set; }
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public float blob_sigmaxy { get; set; }
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public float blob_sigmayy { get; set; }
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public float blob_sigmaxx { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public float blob_rosscaleX { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public float blob_rosscaleY { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public float blob_minw { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public float blob_maxw { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public float blob_minh { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public float blob_maxh { get; set; }
[Category("Vision")]
public Boolean SaveErrorImage { get; set; }
[Category("Vision")]
public string GainOffsetListStr { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor)), Description("Enter -1 if not used")]
public int CameraIndexL { get; set; }
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor)), Description("Enter -1 if not used")]
public int CameraIndexR { get; set; }
[Category("General Setting"), Browsable(false)]
public string Password_Setup { get; set; }
[Category("General Setting"), DisplayName("Full Screen Window State"),
Description("Use full screen mode.")]
public Boolean FullScreen { get; set; }
[Category("General Setting")]
public Boolean EnableDebugMode { get; set; }
public override void AfterLoad()
{
if (blob_minh == 0 && blob_maxh == 0)
{
blob_minh = 70;
blob_maxh = 190;
}
if (blob_minw == 0 && blob_maxw == 0)
{
blob_minw = 70;
blob_maxw = 190;
}
//if (TriggerTimeout == 0) TriggerTimeout = 30;
if (GrabDelayFast == 0) GrabDelayFast = 250;
if (GrabDelaySlow == 0) GrabDelaySlow = 500;
if (ImageSavePath.isEmpty()) ImageSavePath = Util.CurrentPath;
if (AutoDeleteSeconds == 0) AutoDeleteSeconds = 10;
if (blob_rosscaleX == 0) blob_rosscaleX = 1.5f;
if (blob_rosscaleY == 0) blob_rosscaleY = 1.5f;
if (processCount == 0 && blob_area_min == 0)
{
processCount = 6;
erodevaluestr = "3,1";
blob_area_min = 5000;
blob_area_max = 50000;
blob_sigmaxy = 500f;
blob_sigmaxx = 5000f;
blob_sigmayy = 500f;
}
if (GainOffsetListStr.isEmpty())
{
GainOffsetListStr = "1,0;1.3,0;1,50;1,-50;3,50;0.5,-20;2.5,150;2,0";
}
if (listenPortL == 0) listenPortL = 7979;
if (listenPortR == 0) listenPortR = 7980;
if (Password_Setup.isEmpty()) Password_Setup = "0000";
if (Path_Data == "")
Path_Data = System.IO.Path.Combine(Util.CurrentPath, "SaveData");
try
{
if (System.IO.Directory.Exists(Path_Data) == false)
System.IO.Directory.CreateDirectory(Path_Data);
}
catch
{
}
//if (Password_User.isEmpty()) Password_User = "9999";
}
public override void AfterSave()
{
//throw new NotImplementedException();
}
public void CopyTo(CSetting dest)
{
//이곳의 모든 쓰기가능한 속성값을 대상에 써준다.
Type thClass = this.GetType();
foreach (var method in thClass.GetMethods())
{
var parameters = method.GetParameters();
if (!method.Name.StartsWith("get_")) continue;
string keyname = method.Name.Substring(4);
string methodName = method.Name;
object odata = GetType().GetMethod(methodName).Invoke(this, null);
var wMethod = dest.GetType().GetMethod(Convert.ToString("set_") + keyname);
if (wMethod != null) wMethod.Invoke(dest, new object[] { odata });
}
}
}
}