示例#1
0
 internal unsafe ToolSettingInternalBase(BankSettingVsa *pVsaSetting)
 {
     this.ToolName        = StringConverter.StringFromAscii(pVsaSetting->acSensorName, 8);
     this.ToolType        = string.Empty;
     this.MultiToolWindow = new MultiWindowShape();
     this.Scaling         = new ToolScalingSetting();
 }
 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";
 }
示例#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";
 }
        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";
        }
示例#5
0
 public unsafe UnrecognizedToolSetting(BankSettingVsa *pVsaSetting)
     : base(pVsaSetting)
 {
     this.ToolType   = "Unrecognized";
     this.MaxValue   = 0;
     this.MinValue   = 0;
     this.OkMaxValue = 0;
     this.OkMinValue = 0;
     this.ToolWindow = (WindowShape) new RectangleWindow((short)160, (short)120, (ushort)100, (ushort)100, (short)0);
 }
示例#6
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";
 }
示例#7
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";
 }
示例#9
0
        internal static unsafe ToolSettingInternalBase Create(
            BankSettingVsa *pVsaSetting)
        {
            switch (pVsaSetting->sRegisterSetting.bySensorType)
            {
            case 0:
                return((ToolSettingInternalBase) new NoneToolSetting(pVsaSetting));

            case 1:
                return((ToolSettingInternalBase) new PositionAdjustToolSetting(pVsaSetting));

            case 2:
                return((ToolSettingInternalBase) new OutlineToolSetting(pVsaSetting));

            case 3:
                return((ToolSettingInternalBase) new ColorAreaToolSetting(pVsaSetting));

            case 4:
                return((ToolSettingInternalBase) new MonochromeAreaToolSetting(pVsaSetting));

            case 9:
                return((ToolSettingInternalBase) new EdgeToolSetting(pVsaSetting));

            case 10:
                return((ToolSettingInternalBase) new WidthToolSetting(pVsaSetting));

            case 11:
                return((ToolSettingInternalBase) new PitchToolSetting(pVsaSetting));

            case 12:
                return((ToolSettingInternalBase) new DiameterToolSetting(pVsaSetting));

            case 13:
                return((ToolSettingInternalBase) new EdgePixelsToolSetting(pVsaSetting));

            case 14:
                return((ToolSettingInternalBase) new OneAxisAdjustmentToolSetting(pVsaSetting));

            case 15:
                return((ToolSettingInternalBase) new TwoAxisAdjustmentToolSetting(pVsaSetting));

            default:
                return((ToolSettingInternalBase) new UnrecognizedToolSetting(pVsaSetting));
            }
        }
示例#10
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";
        }
示例#11
0
 internal unsafe ProgramSetting(IProgramNo programNumber, ReplyForGetBankSetting *reply)
 {
     this.Error                 = (SensorError) new ConcreteSensorError((ErrI)reply->header.wErrorId);
     this._programNo            = programNumber.No;
     this._externalTrigger      = reply->bankSetting.sBankSettingCommon.sTriggerSetting.byExternalTrigger != (byte)0;
     this._triggerCycleMilliSec = reply->bankSetting.sBankSettingCommon.sTriggerSetting.wInternalyCycleTime;
     this._programName          = StringConverter.StringFromUnicode(reply->bankSetting.sBankSettingCommon.sBankName.awcBankName, 16);
     this._monochromeMaster     = new byte[76800];
     this._colorMaster          = new short[76800];
     Marshal.Copy((IntPtr)((void *)reply->bankSetting.sBankSettingCommon.sMasterImage.sMasterImageSet.uMono.abyImageBuffer), this._monochromeMaster, 0, 76800);
     Marshal.Copy((IntPtr)((void *)reply->bankSetting.sBankSettingCommon.sMasterImage.sMasterImageSet.uColor.awImageBuffer), this._colorMaster, 0, 76800);
     BankSettingVsa *[] bankSettingVsaPtrArray = new BankSettingVsa *[17]
     {
         &reply->bankSetting.asBankSettingVsa0,
         &reply->bankSetting.asBankSettingVsa1,
         &reply->bankSetting.asBankSettingVsa2,
         &reply->bankSetting.asBankSettingVsa3,
         &reply->bankSetting.asBankSettingVsa4,
         &reply->bankSetting.asBankSettingVsa5,
         &reply->bankSetting.asBankSettingVsa6,
         &reply->bankSetting.asBankSettingVsa7,
         &reply->bankSetting.asBankSettingVsa8,
         &reply->bankSetting.asBankSettingVsa9,
         &reply->bankSetting.asBankSettingVsa10,
         &reply->bankSetting.asBankSettingVsa11,
         &reply->bankSetting.asBankSettingVsa12,
         &reply->bankSetting.asBankSettingVsa13,
         &reply->bankSetting.asBankSettingVsa14,
         &reply->bankSetting.asBankSettingVsa15,
         &reply->bankSetting.asBankSettingVsa16
     };
     for (int index = 0; index < 17; ++index)
     {
         this._sensorSettings[index] = ToolKindBase.Create(bankSettingVsaPtrArray[index]);
     }
 }
示例#12
0
 protected unsafe ScalingToolSettingBase(BankSettingVsa *pVsaSetting)
     : base(pVsaSetting)
 {
 }
示例#13
0
 internal unsafe NoneToolSetting(BankSettingVsa *pVsaSetting)
     : base(pVsaSetting)
 {
 }
示例#14
0
 protected unsafe PositionAdjustToolSettingBase(BankSettingVsa *pVsaSetting)
     : base(pVsaSetting)
 {
 }