예제 #1
0
 internal unsafe PitchToolSetting(BankSettingVsa *pVsaSetting)
     : base(pVsaSetting)
 {
     this.ToolWindow = WindowShapeCreator.Create(&pVsaSetting->sRegisterSetting.sEdgePitch.sTemplateVector);
     this.Initialize(pVsaSetting->sRegisterSetting.sEdgePitch.sScalingSetting, pVsaSetting->sOperationSetting.sEdgePitch);
     this.ToolType = "Pitch";
 }
        internal unsafe MonochromeAreaToolSetting(BankSettingVsa *pVsaSetting)
            : base(pVsaSetting)
        {
            this.ToolWindow = WindowShapeCreator.Create(&pVsaSetting->sRegisterSetting.sAreaMono.sTemplateVector);
            this.OkMaxValue = (int)pVsaSetting->sOperationSetting.sAreaMono.dwHiThreshold;
            this.OkMinValue = (int)pVsaSetting->sOperationSetting.sAreaMono.dwLowThreshold;
            this.MinValue   = 0;
            switch (pVsaSetting->sOperationSetting.sAreaMono.byHiThresholdSettingType)
            {
            case 0:
                this.MaxValue   = 100;
                this.OkMaxValue = this.MaxValue;
                break;

            case 1:
                this.MaxValue = 200;
                break;

            case 2:
                this.MaxValue = 999;
                break;

            default:
                throw new ArgumentException();
            }
            this.ToolType = "MonochromeArea";
        }
예제 #3
0
 internal unsafe DiameterToolSetting(BankSettingVsa *pVsaSetting)
     : base(pVsaSetting)
 {
     this.ToolWindow = WindowShapeCreator.Create(&pVsaSetting->sRegisterSetting.sDiameter.sValidArea.sTemplateVector);
     this.Initialize(pVsaSetting->sRegisterSetting.sDiameter.sCircleDetecting.sScalingSetting, pVsaSetting->sOperationSetting.sDiameter);
     this.ToolType = "Diameter";
 }
예제 #4
0
 internal unsafe OneAxisAdjustmentToolSetting(BankSettingVsa *pVsaSetting)
     : base(pVsaSetting)
 {
     this.ToolWindow = WindowShapeCreator.Create(&pVsaSetting->sRegisterSetting.sOneAxisPosAdjust.sTemplateVector);
     this.OkMaxValue = 100;
     this.OkMinValue = 0;
     this.MaxValue   = 100;
     this.MinValue   = 0;
     this.ToolType   = "1AxisAdjustment";
 }
예제 #5
0
 internal unsafe PositionAdjustToolSetting(BankSettingVsa *pVsaSetting)
     : base(pVsaSetting)
 {
     this.ToolWindow = WindowShapeCreator.Create(&pVsaSetting->sRegisterSetting.sPositionAdjust.sTemplateVector);
     this.OkMaxValue = 100;
     this.OkMinValue = (int)pVsaSetting->sOperationSetting.sPositionAdjust.wScore;
     this.MaxValue   = 100;
     this.MinValue   = 0;
     this.ToolType   = "PositionAdjust";
 }
 internal unsafe TwoAxisAdjustmentToolSetting(BankSettingVsa *pVsaSetting)
     : base(pVsaSetting)
 {
     this.ToolWindow      = WindowShapeCreator.Create(&pVsaSetting->sRegisterSetting.sTwoAxesPosAdjust.sX.sTemplateVector);
     this.MultiToolWindow = new MultiWindowShape(this.ToolWindow, WindowShapeCreator.Create(&pVsaSetting->sRegisterSetting.sTwoAxesPosAdjust.sY.sTemplateVector));
     this.OkMaxValue      = 100;
     this.OkMinValue      = 0;
     this.MaxValue        = 100;
     this.MinValue        = 0;
     this.ToolType        = "2AxisAdjustment";
 }
예제 #7
0
        internal static unsafe WindowShape Create(VectorAreaItem *pVector)
        {
            switch (pVector->sHeader.byVectorType)
            {
            case 0:
                return(WindowShapeCreator.CreateRectangleWindow(&pVector->sRectangle));

            case 1:
                return(WindowShapeCreator.CreateCircleWindow(&pVector->sCircle));

            default:
                throw new ArgumentException();
            }
        }
예제 #8
0
        internal unsafe EdgeToolSetting(BankSettingVsa *pVsaSetting)
            : base(pVsaSetting)
        {
            this.ToolWindow = WindowShapeCreator.Create(&pVsaSetting->sRegisterSetting.sEdgePresence.sTemplateVector);
            this.OkMaxValue = (int)pVsaSetting->sOperationSetting.sEdgePresence.dwHiThreshold;
            this.OkMinValue = (int)pVsaSetting->sOperationSetting.sEdgePresence.dwLowThreshold;
            this.MinValue   = 0;
            switch (pVsaSetting->sOperationSetting.sEdgePresence.byMatchPercentLimitSettingType)
            {
            case 0:
                this.MaxValue = 2;
                break;

            case 1:
                this.MaxValue = 5;
                break;

            case 2:
                this.MaxValue = 10;
                break;

            case 3:
                this.MaxValue = 20;
                break;

            case 4:
                this.MaxValue = 50;
                break;

            default:
                throw new ArgumentException();
            }
            if (pVsaSetting->sOperationSetting.sEdgePresence.byEnableHiThreshould == (byte)0)
            {
                this.OkMaxValue = this.MaxValue;
            }
            this.ToolType = "Edge";
        }