1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833 |
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using static OTSDataType.otsdataconst;
- using OTSModelSharp;
- using System.Xml;
- using OTSModelSharp.ResourceManage;
- using static OTSModelSharp.ResourceManage.ResourceID;
- namespace OTSDataType
- {
- public enum OTS_ITEM_TYPES
- {
- INVALID = -1,
- BOOL = 0,
- INT = 1,
- DOUBLE = 2,
- STRING = 3,
- COMBO = 4,
- TIME = 5,
- TIME_SPAN = 6,
- FILE_LIST = 7
- }
- public class COTSSample : ISlo
- {
- const string NOT_APPLIED = "N/A";
- private string m_strName;
- private string m_strHoleName;
- private bool m_bParamLock;
- // Measuren Switch
- private bool m_bSwitch;
- // system STD Switch
- private bool m_bSysSTDSwitch;
- private CSampleParam m_poMsrParams;
- private CDomain m_poMsrArea;
- private CSEMDataMsr m_poSEMDataMsr;
- private CMsrSampleStatus m_Status;
- private CMsrDisplayResults m_poMsrResults;
- private MEMBRANE_TYPE m_membraneType;
- private List<COTSFieldData> m_listFieldData;
- private List<CPropItemGrp> m_listPropItemGrp;
- public COTSSample()
- {
- // initialization
- Init();
- }
- void Init()
- {
- m_strName = "";
- m_strHoleName = "";
- m_bParamLock = false;
- m_bSwitch = true;
- m_bSysSTDSwitch = true;
- m_poMsrParams = new CSampleParam();
- m_poMsrArea = new CDomain();
- m_poSEMDataMsr = new CSEMDataMsr();
- m_Status = new CMsrSampleStatus();
- m_poMsrResults = new CMsrDisplayResults();
- m_membraneType = MEMBRANE_TYPE.Abrasive;
- m_listFieldData = new List<COTSFieldData>();
- m_listPropItemGrp = new List<CPropItemGrp>();
- }
- //设置工作样品的属性值
- public bool SetParamVal(OTS_SAMPLE_PROP_GRID_ITEMS ItemId, OTS_ITEM_TYPES ValType, object objVal)
- {
- bool bSetFalg = false;
- switch (ValType)
- {
- case OTS_ITEM_TYPES.BOOL:
- {
- //设置工作样品值失败
- if (!SetPropboolData(ItemId, (bool)objVal))
- {
- bSetFalg = false;
- }
- else
- {
- bSetFalg = true;
- }
- }
- break;
- case OTS_ITEM_TYPES.INT:
- {
- //设置工作样品值失败
- if (!SetPropIntData(ItemId, (int)objVal))
- {
- bSetFalg = false;
- }
- else
- {
- bSetFalg = true;
- }
- }
- break;
- case OTS_ITEM_TYPES.DOUBLE:
- {
- //设置工作样品值失败
- if (!SetPropdoubleData(ItemId, Convert.ToDouble(objVal)))
- {
- bSetFalg = false;
- }
- else
- {
- bSetFalg = true;
- }
- }
- break;
- case OTS_ITEM_TYPES.STRING:
- {
- //设置工作样品值失败
- if (!SetPropStringData(ItemId, (string)objVal))
- {
- bSetFalg = false;
- }
- else
- {
- bSetFalg = true;
- }
- }
- break;
- case OTS_ITEM_TYPES.COMBO:
- {
- //设置工作样品值失败
- if (!SetPropComboData(ItemId, (int)objVal))
- {
- bSetFalg = false;
- }
- else
- {
- bSetFalg = true;
- }
- }
- break;
- case OTS_ITEM_TYPES.TIME:
- {
- //设置工作样品值失败
- if (!SetPropTimeData(ItemId, (DateTime)objVal))
- {
- bSetFalg = false;
- }
- else
- {
- bSetFalg = true;
- }
- }
- break;
- case OTS_ITEM_TYPES.TIME_SPAN:
- {
- //设置工作样品值失败
- if (!SetPropTimeSpanData(ItemId, (TimeSpan)objVal))
- {
- bSetFalg = false;
- }
- else
- {
- bSetFalg = true;
- }
- }
- break;
- case OTS_ITEM_TYPES.FILE_LIST:
- {
- //设置工作样品值失败
- if (!SetPropFileListData(ItemId, (string)objVal))
- {
- bSetFalg = false;
- }
- else
- {
- bSetFalg = true;
- }
- }
- break;
- default:
- bSetFalg = false;
- break;
- }
- return bSetFalg;
- }
- public bool SetPropboolData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, bool a_bValue)
- {
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.SWITCH:
- {
- m_bSwitch = a_bValue;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.SYS_STD_SWITCH:
- {
- m_bSysSTDSwitch = a_bValue;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.USING_XRAY:
- {
- int m_UsingXray = a_bValue ? 1 : 0;
- m_poMsrParams.GetXRayParam().SetUsingXray(m_UsingXray);
- }
- break;
- default:
- {
- // something wrong, return false
- return false;
- }
- }
- // failed, return false
- return true;
- }
- public CDomain GetMsrArea() { return m_poMsrArea; }
- public bool SetPropdoubleData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, double a_dValue)
- {
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION:
- {
- // value validation
- if (a_dValue < MAGNIFICATION_MIN || a_dValue > MAGNIFICATION_MAX)
- {
- return false;
- }
- m_poSEMDataMsr.SetMagnification(a_dValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE:
- {
- if (a_dValue < PIXELSIZE_MIN || a_dValue > PIXELSIZE_MAX)
- {
- return false;
- }
- //m_poMsrParams.GetImageScanParam().SetImagePixelSize((OTS_FIVE_TIES_OPTIONS)(int)a_dValue);
- int nScanFieldSize = CalculateScanFieldSize(a_dValue);
- m_poSEMDataMsr.SetScanFieldSize(nScanFieldSize);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MIN:
- {
- if (PARTICLE_AREA_MIN > a_dValue || a_dValue > PARTICLE_AREA_MAX)
- {
- return false;
- }
- CDoubleRange oIncArea = new CDoubleRange();
- double start = m_poMsrParams.GetImageProcessParam().GetIncAreaRange().GetStart();
- double end = m_poMsrParams.GetImageProcessParam().GetIncAreaRange().GetEnd();
- oIncArea.SetStart(a_dValue);
- oIncArea.SetEnd(end);
- m_poMsrParams.GetImageProcessParam().SetIncAreaRange(oIncArea);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MAX:
- {
- if (PARTICLE_AREA_MIN > a_dValue || a_dValue > PARTICLE_AREA_MAX)
- {
- return false;
- }
- CDoubleRange oIncArea = new CDoubleRange();
- double start = m_poMsrParams.GetImageProcessParam().GetIncAreaRange().GetStart();
- double end = m_poMsrParams.GetImageProcessParam().GetIncAreaRange().GetEnd();
- oIncArea.SetStart(start);
- oIncArea.SetEnd(a_dValue);
- m_poMsrParams.GetImageProcessParam().SetIncAreaRange(oIncArea);
- }
- break;
- // read only property, tread as default.
- case OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.RATIO:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_TO_MEASURE_AREA:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_AREA:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE_AREA:
- default:
- {
- // something wrong, return false
- return false;
- }
- //break;
- }
- // ok, return true
- return true;
- }
- // duplication
- public void Duplicate(COTSSample a_oSource)
- {
- // copy data over
- m_strName = a_oSource.m_strName;
- m_strHoleName = a_oSource.m_strHoleName;
- m_bParamLock = a_oSource.m_bParamLock;
- m_bSwitch = a_oSource.m_bSwitch;
- m_bSysSTDSwitch = a_oSource.m_bSysSTDSwitch;
- m_poMsrParams = new CSampleParam(a_oSource.m_poMsrParams);
- m_poMsrArea = new CDomain(a_oSource.m_poMsrArea);
- m_poSEMDataMsr = new CSEMDataMsr(a_oSource.m_poSEMDataMsr);
- m_Status = new CMsrSampleStatus(a_oSource.m_Status);
- m_poMsrResults = new CMsrDisplayResults(a_oSource.m_poMsrResults);
- m_membraneType = a_oSource.m_membraneType;
- }
- // calculate scan field size
- public int CalculateScanFieldSize(double a_dPixelSize)
- {
- // scan field size
- int nScanFiledSize = 0;
- // make sure SEM is valid
- if (!m_poSEMDataMsr.Equals(new CSEMDataMsr()))
- {
- // get image size
- OTS_FIVE_TIES_OPTIONS nImageSizeId = m_poMsrParams.GetImageScanParam().GetImagePixelSize();
- long nResulotionId = RESOLUTION_ID_FIRST_TIE + (long)nImageSizeId;
- int nImageSize = RESOLUTION_VALUE[nResulotionId].Width;
- // calculate scan field size
- nScanFiledSize = (int)((a_dPixelSize * (double)nImageSize) + 0.5);
- }
- // return scan field size
- return nScanFiledSize;
- }
- public bool GetBSESize(out int a_nWidth, out int a_nHeight)
- {
- // scan parameters
- CSampleParam pMsrParam = GetMsrParams();
- COTSImgScanPrm pImgScanParam = pMsrParam.GetImageScanParam();
- // get image size
- OTS_FIVE_TIES_OPTIONS nImageSizeId = pImgScanParam.GetImagePixelSize();
- int nResulotionId = RESOLUTION_ID_FIRST_TIE + (int)nImageSizeId;
- Size sizePixelImage = RESOLUTION_VALUE[nResulotionId];
- // get scan field size
- a_nWidth = sizePixelImage.Width;
- a_nHeight = sizePixelImage.Height;
- return true;
- }
- // name
- public string GetName() { return m_strName; }
- public void SetName(string a_strName) { m_strName = a_strName; }
- // sample hole
- public string GetSampleHoleName() { return m_strHoleName; }
- public void SetSampleHoleName(string a_strHoleName) { m_strHoleName = a_strHoleName; }
- // param modify lock
- public bool GetParamLock() { return m_bParamLock; }
- public void SetParamLock(bool a_bParamLock) { m_bParamLock = a_bParamLock; }
- // switch
- public bool GetSwitch() { return m_bSwitch; }
- public void SetSwitch(bool a_bSwitch) { m_bSwitch = a_bSwitch; }
- // STDSwitch
- public bool IfUsingSysSTD() { return m_bSysSTDSwitch; }
- public void SetSysSTDSwitch(bool a_bSysSTDSwitch) { m_bSysSTDSwitch = a_bSysSTDSwitch; }
- // measurement parameter
- public CSampleParam GetMsrParams() { return m_poMsrParams; }
- public void SetMsrParams(CSampleParam a_poMsrParams)
- {
- m_poMsrParams = a_poMsrParams;
- }
- // measurement area
- public void SetMsrArea(CDomain a_poMsrArea)
- {
- m_poMsrArea = a_poMsrArea;
- }
- // SEM data (measurement)
- public CSEMDataMsr GetSEMDataMsr() { return m_poSEMDataMsr; }
- public void SetSEMDataMsr(CSEMDataMsr a_poSEMDataMsr)
- {
- m_poSEMDataMsr = a_poSEMDataMsr;
- }
- // measure status
- public CMsrSampleStatus GetMsrStatus() { return m_Status; }
- public void SetMsrStatus(CMsrSampleStatus a_poMsrStatus)
- {
- m_Status = a_poMsrStatus;
- }
- // fields
- public List<COTSFieldData> GetFieldsData() { return m_listFieldData; }
- public void SetFieldsData(List<COTSFieldData> a_listFieldData)
- {
- m_listFieldData = a_listFieldData;
- }
- public void AddFieldData(COTSFieldData f)
- {
- m_listFieldData.Add(f);
- }
- // measure results
- public CMsrDisplayResults GetMsrResults() { return m_poMsrResults; }
- public void SetMsrResults(CMsrDisplayResults a_poMsrResults)
- {
- m_poMsrResults = a_poMsrResults;
- }
- // has measure results test
- public bool HasMeasureResult()
- {
- // result items is not empty
- bool bHasResult = (m_poMsrResults.GetResultItems().Count != 0);
- return bHasResult;
- }
- public MEMBRANE_TYPE GetMembraneType() { return m_membraneType; }
- public void SetMembraneType(MEMBRANE_TYPE val) { m_membraneType = val; }
- // BOOL data (1)
- public bool GetPropBOOLData(int a_nId, out bool a_bValue)
- {
- switch (a_nId)
- {
- case (int)OTS_SAMPLE_PROP_GRID_ITEMS.SWITCH:
- {
- a_bValue = m_bSwitch;
- }
- break;
- case (int)OTS_SAMPLE_PROP_GRID_ITEMS.SYS_STD_SWITCH:
- {
- a_bValue = m_bSysSTDSwitch;
- }
- break;
- case (int)OTS_SAMPLE_PROP_GRID_ITEMS.USING_XRAY:
- {
- a_bValue = m_poMsrParams.GetXRayParam().GetUsingXray() > 0 ? true : false;
- }
- break;
- default:
- {
- a_bValue = false;
- // something wrong, return FALSE
- return false;
- }
- break;
- }
- // ok, return TRUE
- return true;
- }
-
- public bool GetPropIntData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, out int a_nValue)
- {
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_PARTICLE:
- {
- a_nValue = m_poMsrParams.GetImageScanParam().GetStopParamParticles();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_FIELD:
- {
- a_nValue = m_poMsrParams.GetImageScanParam().GetStopParamFields();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_TIME:
- {
- a_nValue = m_poMsrParams.GetImageScanParam().GetStopParamMeasTime();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MIN:
- {
- a_nValue = m_poMsrParams.GetImageProcessParam().GetBGGray().GetStart();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX:
- {
- a_nValue = m_poMsrParams.GetImageProcessParam().GetBGGray().GetEnd();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MIN:
- {
- a_nValue = m_poMsrParams.GetImageProcessParam().GetParticleGray().GetStart();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MAX:
- {
- a_nValue = m_poMsrParams.GetImageProcessParam().GetParticleGray().GetEnd();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.LOW_COUNTS:
- {
- a_nValue = m_poMsrParams.GetXRayParam().GetXRaySearchCount();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_COUNTS:
- {
- a_nValue = m_poMsrParams.GetXRayParam().GetAnalyExpCount();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION:
- {
- a_nValue = (int)m_poMsrParams.GetXRayParam().GetMidAnalyAQTime();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS:
- {
- a_nValue = m_poSEMDataMsr.GetTotalFields();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.COMPLETED_FIELDS:
- {
- a_nValue = m_Status.GetCompletedFields();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE:
- {
- a_nValue = (int)m_poMsrResults.GetTotalParticleNumber();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELDSTOP_AREAPERCENTAGE:
- {
- a_nValue = m_poMsrParams.GetImageScanParam().GetFieldAreaPercentage();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELDSTOP_LARGEPARTICLES:
- {
- a_nValue = m_poMsrParams.GetImageScanParam().GetFieldLargeParticleNum();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELDSTOP_LARGEPARTICLESPERCENTAGE:
- {
- a_nValue = m_poMsrParams.GetImageScanParam().GetFieldLargeParticlesPercentage();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELDSTOP_SMALLPARTICLES:
- {
- a_nValue = m_poMsrParams.GetImageScanParam().GetFieldSmallParticleNum();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELDSTOP_SMALLPARTICLESPERCENTAGE:
- {
- a_nValue = m_poMsrParams.GetImageScanParam().GetFieldSmallParticlesPercentage();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.XRAY_QUANTIFY_MINSIZE:
- {
- a_nValue = m_poMsrParams.GetXRayParam().GetQuantifyMinSize();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.XRAY_FASTTIME:
- {
- a_nValue = m_poMsrParams.GetXRayParam().GetFastXrayTime();
- }
- break;
- default:
- {
- // something wrong, return false
- a_nValue = -1;
- return false;
- }
- }
- // ok, return true
- return true;
- }
- public bool SetPropFileListData(OTS_SAMPLE_PROP_GRID_ITEMS itemId, string objVal)
- {
- throw new NotImplementedException();
- }
- public bool SetPropIntData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, int a_nValue)
- {
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_PARTICLE:
- {
- // value validation
- if (STOP_PARAM_PARTICLE_MIN >= a_nValue || a_nValue > STOP_PARAM_PARTICLE_MAX)
- {
- return false;
- }
- if (m_poMsrParams.GetImageScanParam().GetStopParamParticles() != a_nValue)
- {
- m_poMsrParams.GetImageScanParam().SetStopParamParticles(a_nValue);
- m_Status.SetStatus(OTS_MSR_SAMPLE_STATUS.UNMEASURED);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_FIELD:
- {
- if (STOP_PARAM_FIELD_MIN >= a_nValue || a_nValue > STOP_PARAM_FIELD_MAX)
- {
- return false;
- }
- if (m_poMsrParams.GetImageScanParam().GetStopParamFields() != a_nValue)
- {
- m_poMsrParams.GetImageScanParam().SetStopParamFields(a_nValue);
- m_Status.SetStatus(OTS_MSR_SAMPLE_STATUS.UNMEASURED);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_TIME:
- {
- if (STOP_PARAM_MSR_TINE_MIN >= a_nValue || a_nValue > STOP_PARAM_MSR_TINE_MAX)
- {
- return false;
- }
- if (m_poMsrParams.GetImageScanParam().GetStopParamMeasTime() != a_nValue)
- {
- m_poMsrParams.GetImageScanParam().SetStopParamMeasTime(a_nValue);
- m_Status.SetStatus(OTS_MSR_SAMPLE_STATUS.UNMEASURED);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MIN:
- {
- if (GRAY_LEVEL_MIN > a_nValue || a_nValue > GRAY_LEVEL_MAX)
- {
- return false;
- }
- if (m_poMsrParams == null)
- {
- return false;
- }
- COTSImageProcParam pImageProcessParam = m_poMsrParams.GetImageProcessParam();
- if (pImageProcessParam == null)
- {
- return false;
- }
- CIntRange oBGGray = m_poMsrParams.GetImageProcessParam().GetBGGray();
- oBGGray.SetStart(a_nValue);
- m_poMsrParams.GetImageProcessParam().SetBGGray(oBGGray);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX:
- {
- if (GRAY_LEVEL_MIN > a_nValue || a_nValue > GRAY_LEVEL_MAX)
- {
- return false;
- }
- CIntRange oBGGray = m_poMsrParams.GetImageProcessParam().GetBGGray();
- oBGGray.SetEnd(a_nValue);
- m_poMsrParams.GetImageProcessParam().SetBGGray(oBGGray);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MIN:
- {
- if (GRAY_LEVEL_MIN > a_nValue || a_nValue > GRAY_LEVEL_MAX)
- {
- return false;
- }
- CIntRange oParticleGray = m_poMsrParams.GetImageProcessParam().GetParticleGray();
- oParticleGray.SetStart(a_nValue);
- m_poMsrParams.GetImageProcessParam().SetParticleGray(oParticleGray);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MAX:
- {
- if (GRAY_LEVEL_MIN > a_nValue || a_nValue > GRAY_LEVEL_MAX)
- {
- return false;
- }
- CIntRange oParticleGray = m_poMsrParams.GetImageProcessParam().GetParticleGray();
- oParticleGray.SetEnd(a_nValue);
- m_poMsrParams.GetImageProcessParam().SetParticleGray(oParticleGray);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.LOW_COUNTS:
- {
- if (COUNTS_MIN > a_nValue)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetXRaySearchCount(a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_COUNTS:
- {
- if (COUNTS_MIN > a_nValue)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetAnalyExpCount(a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION:
- {
- if (0 >= a_nValue)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetMidAnalyAQTime(a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELDSTOP_AREAPERCENTAGE:
- {
- m_poMsrParams.GetImageScanParam().SetFieldAreaPercentage(a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELDSTOP_LARGEPARTICLES:
- {
- m_poMsrParams.GetImageScanParam().SetFieldLargeParticleNum(a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELDSTOP_LARGEPARTICLESPERCENTAGE:
- {
- m_poMsrParams.GetImageScanParam().SetFieldLargeParticlePercentage(a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELDSTOP_SMALLPARTICLES:
- {
- if (0 >= a_nValue)
- {
- return false;
- }
- m_poMsrParams.GetImageScanParam().SetFieldSmallParticleNum(a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELDSTOP_SMALLPARTICLESPERCENTAGE:
- {
- if ((0 >= a_nValue) || (100 < a_nValue))
- {
- return false;
- }
- m_poMsrParams.GetImageScanParam().SetFieldSmallParticlePercentage(a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.XRAY_QUANTIFY_MINSIZE:
- {
- if (0 >= a_nValue)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetQuantifyMinSize(a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.XRAY_FASTTIME:
- {
- if (0 >= a_nValue)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetFastXrayTime(a_nValue);
- }
- break;
- // read only properties, treat same as default
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS:
- case OTS_SAMPLE_PROP_GRID_ITEMS.COMPLETED_FIELDS:
-
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE:
-
- default:
- {
- // something wrong, return false
- return false;
- }
- }
- // ok, return true
- return true;
- }
- public bool SetPropItemGrpsForIncA()
- {
- if (m_listPropItemGrp != null)
- {
- if (m_listPropItemGrp.Count > 0)
- {
- m_listPropItemGrp.Clear();
- }
- }
- // property items group
- OTS_SAMPLE_PROP_GRID_ITEM_GROUPS a_nId = 0;
- for (int i = (int)OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.MIN; i <= (int)OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.MAX; i++)
- {
-
- // items list
- List<CPropItem> a_listPropItems = new List<CPropItem>();
- a_nId = (OTS_SAMPLE_PROP_GRID_ITEM_GROUPS)i;
- if (m_poMsrParams.m_runmode == RunMode.PlainMode)
- {
- if (a_nId != OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.GENERAL)
- {
- break;//if it's plainmode then only display the general parameter section.
- }
- }
-
- CPropItemGrp poPropItemGrp = new CPropItemGrp();
- // property items group name
- string strGrpName = string.Empty;
- strGrpName = ResourceData.GetSourceTitleString((OTS_SAMPLE_PROP_GRID_ITEM_GROUPS)a_nId);
- if (strGrpName == "")
- {
- return false;
- }
- // group name and id
- poPropItemGrp.SetName(strGrpName);
- poPropItemGrp.SetGroupId(a_nId);
- // set group items list
- OTS_SAMPLE_PROP_GRID_ITEMS nItemId;
- CPropItem poPropItem;
- bool bShow = true;
- //分组编号
- int modelResource = ResourceID.GrpGeneral;
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.GENERAL:
- {
- modelResource = ResourceID.GrpGeneral;
- // name
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, false, bShow);
- a_listPropItems.Add(poPropItem);
- // hole
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_HOLE_NAME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, false, bShow);
- a_listPropItems.Add(poPropItem);
- // switch
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SWITCH;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.BOOL, false, bShow);
- a_listPropItems.Add(poPropItem);
- // system STD
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SYS_STD_SWITCH;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.BOOL, false, bShow);
- a_listPropItems.Add(poPropItem);
- //// parameter file name
- //poPropItem = new CPropItem();
- //nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_PARAM_FILE_NAME;
- //poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.FILE_LIST, false, bShow);
- //a_listPropItems.Add(poPropItem);
- // STD file name
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.STD_FILE_NAME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.FILE_LIST, false, bShow);
- a_listPropItems.Add(poPropItem);
- // Steel technology
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.STEEL_TECHNOLOGY;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.IMAGESCAN:
- {
- modelResource = ResourceID.GrpImageScan;
- // start mode
- COTSImgScanPrm pScanParam = m_poMsrParams.GetImageScanParam();
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.START_MODE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- //// stop mode
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.STOP_MODE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- // stop parameter
- switch (m_poMsrParams.GetImageScanParam().GetStopMode())
- {
- case OTS_MEASURE_STOP_MODE.ParticleMode:
- {
- // particle
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_PARTICLE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- }
- break;
- case OTS_MEASURE_STOP_MODE.FieldMode:
- {
- // field
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_FIELD;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- }
- break;
- case OTS_MEASURE_STOP_MODE.TimeMode:
- {
- // used time
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_TIME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- }
- break;
- case OTS_MEASURE_STOP_MODE.CoverMode:
- default:
- {
- // no stop parameter item
- }
- break;
- }
- // scan speed
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_SPEED;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- // image resolution
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_RESOLUTION;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.IMAGE_PROCESS:
- {
- modelResource = ResourceID.GrpImageProcess;
- COTSImageProcParam pProcParam = m_poMsrParams.GetImageProcessParam();
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.BGREMOVE_TYPE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
- switch (m_poMsrParams.GetImageProcessParam().GetBGRemoveType())
- {
- case OTS_BGREMOVE_TYPE.AUTO:
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.AUTOBGREMOVE_TYPE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
- // particle area min
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MIN;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- // particle area max
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MAX;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- break;
- case OTS_BGREMOVE_TYPE.MANUAL:
-
-
- // BG gray level min
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MIN;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- // BG gray level max
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- //---------------------------------------
- // particle gray level min
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MIN;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- // particle gray level max
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MAX;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- //----------------------------------------
- // particle area min
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MIN;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, bShow);
- a_listPropItems.Add(poPropItem);
- // particle area max
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MAX;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- break;
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.XRAY:
- {
- modelResource = ResourceID.GrpXray;
- COTSXRayParam pXrayParam = m_poMsrParams.GetXRayParam();
- ///* search xray function is not work in this release*/
- //// search x-ray resolution
- //poPropItem = new CPropItem();
- //nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SEARCH_RESOLUTION;
- //poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false,true);
- //a_listPropItems.Add(poPropItem);
- //// low counts
- //poPropItem = new CPropItem();
- //nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.LOW_COUNTS;
- //poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false,true);
- //a_listPropItems.Add(poPropItem);
- // UsingXray
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.USING_XRAY;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.BOOL, false, bShow);
- a_listPropItems.Add(poPropItem);
- // analysis
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- // scan mode
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_MODE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- // analysis counts
-
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_COUNTS;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
-
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.SEM:
- {
- modelResource = ResourceID.GrpSEMParameter;
- // does SEM data (measure) set?
- CSEMDataMsr m_TempSEMDataMsr = new CSEMDataMsr();
- if ((m_poSEMDataMsr.GetScanFieldSize100() == m_TempSEMDataMsr.GetScanFieldSize100())
- && (m_poSEMDataMsr.GetTotalFields() == m_TempSEMDataMsr.GetTotalFields())
- && (m_poSEMDataMsr.GetWorkingDistance() == m_TempSEMDataMsr.GetWorkingDistance())
- && (m_poSEMDataMsr.GetScanFieldSize() == m_TempSEMDataMsr.GetScanFieldSize()))
- {
- // magnification
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, true, true);
- a_listPropItems.Add(poPropItem);
- // pixel size
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, true, true);
- a_listPropItems.Add(poPropItem);
- // working distance
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, true, true);
- a_listPropItems.Add(poPropItem);
- // total field
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, true, true);
- a_listPropItems.Add(poPropItem);
- // total area
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_TO_MEASURE_AREA;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
- a_listPropItems.Add(poPropItem);
- }
- else
- {
- // magnification
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, true);
- a_listPropItems.Add(poPropItem);
- // pixel size
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, true);
- a_listPropItems.Add(poPropItem);
- // working distance
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
- a_listPropItems.Add(poPropItem);
- // total field
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, true, true);
- a_listPropItems.Add(poPropItem);
- // total area
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_TO_MEASURE_AREA;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
- a_listPropItems.Add(poPropItem);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.MEASURE_STATUS:
- {
- modelResource = ResourceID.GrpMeasureState;
- // measure status
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_STATAU;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, true, true);
- a_listPropItems.Add(poPropItem);
- // has measure result?
- if (HasMeasureResult())
- {
- // start time
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.START_TIME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.TIME, true, true);
- a_listPropItems.Add(poPropItem);
- // used time
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.USED_TIME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.TIME_SPAN, true, true);
- a_listPropItems.Add(poPropItem);
- // finish time
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.FINISH_TIME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.TIME, true, true);
- a_listPropItems.Add(poPropItem);
- // completed fields
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.COMPLETED_FIELDS;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, true, true);
- a_listPropItems.Add(poPropItem);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.MEASURE_RESULTS:
- {
- modelResource = ResourceID.GrpMeasureResult;
- // has measure result?
- if (HasMeasureResult())
- {
- // radio
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.RATIO;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
- a_listPropItems.Add(poPropItem);
- // total measured area
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_AREA;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, true, true);
- a_listPropItems.Add(poPropItem);
- // total particles
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, true, true);
- a_listPropItems.Add(poPropItem);
- // total particle area
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE_AREA;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, true, true);
- a_listPropItems.Add(poPropItem);
- }
- }
- break;
- default:
- {
- // something wrong here, return nullptr
- break;
- }
- }
- poPropItemGrp.SetItemsList(a_listPropItems);
- m_listPropItemGrp.Add(poPropItemGrp);
- }
- // return property items group
- return true; ;
- }
- public bool SetPropItemGrpsForCleanlinessSys()
- {
- if (m_listPropItemGrp != null)
- {
- if (m_listPropItemGrp.Count > 0)
- {
- m_listPropItemGrp.Clear();
- }
- }
- // property items group
- OTS_SAMPLE_PROP_GRID_ITEM_GROUPS a_nId = 0;
- for (int i = (int)OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.MIN; i <= (int)OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.MAX; i++)
- {
- // items list
- List<CPropItem> a_listPropItems = new List<CPropItem>();
- a_nId = (OTS_SAMPLE_PROP_GRID_ITEM_GROUPS)i;
- if (m_poMsrParams.m_runmode == RunMode.PlainMode)
- {
- if (a_nId != OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.GENERAL)
- {
- break;//if it's plain mode then only display the general parameter section.
- }
- }
- CPropItemGrp poPropItemGrp = new CPropItemGrp();
- // property items group name
- string strGrpName = string.Empty;
- strGrpName = ResourceData.GetSourceTitleString((OTS_SAMPLE_PROP_GRID_ITEM_GROUPS)a_nId);
- if (strGrpName == "")
- {
- return false;
- }
- // group name and id
- poPropItemGrp.SetName(strGrpName);
- poPropItemGrp.SetGroupId(a_nId);
- // set group items list
- OTS_SAMPLE_PROP_GRID_ITEMS nItemId;
- CPropItem poPropItem;
- bool bShow = true;
- //分组编号
- int modelResource = ResourceID.GrpGeneral;
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.GENERAL:
- {
- modelResource = ResourceID.GrpGeneral;
- // name
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, false, bShow);
- a_listPropItems.Add(poPropItem);
- // hole
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_HOLE_NAME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, false, bShow);
- a_listPropItems.Add(poPropItem);
- // switch
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SWITCH;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.BOOL, false, bShow);
- a_listPropItems.Add(poPropItem);
- // system STD
- //poPropItem = new CPropItem();
- //nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SYS_STD_SWITCH;
- //poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.BOOL, false, bShow);
- //a_listPropItems.Add(poPropItem);
-
- // STD file name
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.STD_FILE_NAME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.FILE_LIST, false, bShow);
- a_listPropItems.Add(poPropItem);
- // Membrane type
- //poPropItem = new CPropItem();
- //nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.MEMBRANE_TYPE;
- //poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, true);
- //a_listPropItems.Add(poPropItem);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.IMAGESCAN:
- {
- modelResource = ResourceID.GrpImageScan;
- // start mode
- COTSImgScanPrm pScanParam = m_poMsrParams.GetImageScanParam();
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.START_MODE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
- //// stop mode
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.STOP_MODE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
- // stop parameter
- switch (m_poMsrParams.GetImageScanParam().GetStopMode())
- {
- case OTS_MEASURE_STOP_MODE.ParticleMode:
- {
- // particle
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_PARTICLE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- }
- break;
- case OTS_MEASURE_STOP_MODE.FieldMode:
- {
- // field
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_FIELD;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- }
- break;
- case OTS_MEASURE_STOP_MODE.TimeMode:
- {
- // used time
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_TIME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- }
- break;
- case OTS_MEASURE_STOP_MODE.CoverMode:
- default:
- {
- // no stop parameter item
- }
- break;
- }
- // scan speed
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_SPEED;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
- // image resolution
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_RESOLUTION;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.IMAGE_PROCESS:
- {
- modelResource = ResourceID.GrpImageProcess;
- COTSImageProcParam pProcParam = m_poMsrParams.GetImageProcessParam();
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.BGREMOVE_TYPE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
- switch (m_poMsrParams.GetImageProcessParam().GetBGRemoveType())
- {
- case OTS_BGREMOVE_TYPE.AUTO:
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.AUTOBGREMOVE_TYPE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
- // particle area min
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MIN;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, bShow);
- a_listPropItems.Add(poPropItem);
- // particle area max
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MAX;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, bShow);
- a_listPropItems.Add(poPropItem);
- break;
- case OTS_BGREMOVE_TYPE.MANUAL:
-
- // BG gray level min
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MIN;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- // BG gray level max
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- //here,no longer consider the gray range of particles,for we can get the same result by regulate the background range.(gsp 2021.8.13)
- //---------------------------------------------
- //// particle gray level min
- //poPropItem = new CPropItem();
- //nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MIN;
- //poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- //a_listPropItems.Add(poPropItem);
- //// particle gray level max
- //poPropItem = new CPropItem();
- //nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MAX;
- //poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- //a_listPropItems.Add(poPropItem);
- //----------------------------------------------
- // particle area min
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MIN;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, bShow);
- a_listPropItems.Add(poPropItem);
- // particle area max
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MAX;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, bShow);
- a_listPropItems.Add(poPropItem);
- break;
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.XRAY:
- {
- modelResource = ResourceID.GrpXray;
- COTSXRayParam pXrayParam = m_poMsrParams.GetXRayParam();
-
- //using xray
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.USING_XRAY;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.BOOL, false, bShow);
- a_listPropItems.Add(poPropItem);
- // scan mode
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_MODE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.COMBO, false, bShow);
- a_listPropItems.Add(poPropItem);
- //quantify analysis min size
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.XRAY_QUANTIFY_MINSIZE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- // analysis
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- //fast xray time.
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.XRAY_FASTTIME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- // analysis counts
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_COUNTS;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, false, bShow);
- a_listPropItems.Add(poPropItem);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.SEM:
- {
- modelResource = ResourceID.GrpSEMParameter;
- // does SEM data (measure) set?
- CSEMDataMsr m_TempSEMDataMsr = new CSEMDataMsr();
- if ((m_poSEMDataMsr.GetScanFieldSize100() == m_TempSEMDataMsr.GetScanFieldSize100())
- && (m_poSEMDataMsr.GetTotalFields() == m_TempSEMDataMsr.GetTotalFields())
- && (m_poSEMDataMsr.GetWorkingDistance() == m_TempSEMDataMsr.GetWorkingDistance())
- && (m_poSEMDataMsr.GetScanFieldSize() == m_TempSEMDataMsr.GetScanFieldSize()))
- {
- // magnification
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, true, true);
- a_listPropItems.Add(poPropItem);
- // pixel size
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, true, true);
- a_listPropItems.Add(poPropItem);
- // working distance
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, true, true);
- a_listPropItems.Add(poPropItem);
- // total field
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, true, true);
- a_listPropItems.Add(poPropItem);
- // total area
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_TO_MEASURE_AREA;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
- a_listPropItems.Add(poPropItem);
- }
- else
- {
- // magnification
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, true);
- a_listPropItems.Add(poPropItem);
- // pixel size
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, false, true);
- a_listPropItems.Add(poPropItem);
- // working distance
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
- a_listPropItems.Add(poPropItem);
- // total field
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, true, true);
- a_listPropItems.Add(poPropItem);
- // total area
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_TO_MEASURE_AREA;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
- a_listPropItems.Add(poPropItem);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.MEASURE_STATUS:
- {
- modelResource = ResourceID.GrpMeasureState;
- // measure status
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_STATAU;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.STRING, true, true);
- a_listPropItems.Add(poPropItem);
- // has measure result?
- if (HasMeasureResult())
- {
- // start time
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.START_TIME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.TIME, true, true);
- a_listPropItems.Add(poPropItem);
- // used time
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.USED_TIME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.TIME_SPAN, true, true);
- a_listPropItems.Add(poPropItem);
- // finish time
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.FINISH_TIME;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.TIME, true, true);
- a_listPropItems.Add(poPropItem);
- // completed fields
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.COMPLETED_FIELDS;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, true, true);
- a_listPropItems.Add(poPropItem);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.MEASURE_RESULTS:
- {
- modelResource = ResourceID.GrpMeasureResult;
- // has measure result?
- if (HasMeasureResult())
- {
- // radio
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.RATIO;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, true, true);
- a_listPropItems.Add(poPropItem);
- // total measured area
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_AREA;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, true, true);
- a_listPropItems.Add(poPropItem);
- // total particles
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, true, true);
- a_listPropItems.Add(poPropItem);
- // total particle area
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE_AREA;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.INT, true, true);
- a_listPropItems.Add(poPropItem);
- }
- }
- break;
- default:
- {
- // something wrong here, return nullptr
- break;
- }
- }
- poPropItemGrp.SetItemsList(a_listPropItems);
- m_listPropItemGrp.Add(poPropItemGrp);
- }
- // return property items group
- return true; ;
- }
- public List<CPropItemGrp> GetPropItemGrps()
- {
- return m_listPropItemGrp;
- }
- public bool GetRelatedPropItem(OTS_SAMPLE_PROP_GRID_ITEMS itemID, ref OTS_SAMPLE_PROP_GRID_ITEMS a_nRelatedPropId)
- {
- switch (itemID)
- {
- // general group
- case OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_HOLE_NAME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.SWITCH:
- case OTS_SAMPLE_PROP_GRID_ITEMS.SYS_STD_SWITCH:
- case OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_PARAM_FILE_NAME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.STD_FILE_NAME:
- // image param group
- case OTS_SAMPLE_PROP_GRID_ITEMS.START_MODE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_MODE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_PARTICLE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_FIELD:
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_TIME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_SPEED:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.INVALID;
- return false;
- }
- case OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_RESOLUTION:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE;
- }
- break;
- // image process param
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MIN:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MAX;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MAX:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MIN;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MIN:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MIN;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MIN:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MAX;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MAX:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MIN;
- }
- break;
- // x-ray param
- case OTS_SAMPLE_PROP_GRID_ITEMS.SEARCH_RESOLUTION:
- case OTS_SAMPLE_PROP_GRID_ITEMS.LOW_COUNTS:
- case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION:
- case OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_MODE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_COUNTS:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.INVALID;
- return false;
- }
- break;
- // SEM data
- case OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_TO_MEASURE_AREA:
- // measure status
- case OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_STATAU:
- case OTS_SAMPLE_PROP_GRID_ITEMS.START_TIME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.USED_TIME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.FINISH_TIME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.COMPLETED_FIELDS:
- // measure results
- case OTS_SAMPLE_PROP_GRID_ITEMS.RATIO:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_AREA:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE_AREA:
- {
- a_nRelatedPropId = OTS_SAMPLE_PROP_GRID_ITEMS.INVALID;
- return false;
- }
- break;
- default:
- {
- // something wrong, return FALSE
- return false;
- }
- break;
- }
- // ok, return TRUE
- return true;
- }
- public bool GetRelatedPropItemGrp(OTS_SAMPLE_PROP_GRID_ITEMS itemID, ref OTS_SAMPLE_PROP_GRID_ITEM_GROUPS groupID)
- {
- switch (itemID)
- {
- // general group
- case OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_HOLE_NAME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.SWITCH:
- case OTS_SAMPLE_PROP_GRID_ITEMS.SYS_STD_SWITCH:
- case OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_PARAM_FILE_NAME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.STD_FILE_NAME:
- // image param group
- // image param group
- case OTS_SAMPLE_PROP_GRID_ITEMS.START_MODE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_MODE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_PARTICLE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_FIELD:
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_TIME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_SPEED:
- {
- groupID = OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.IMAGE_PROCESS;
- return false;
- }
- case OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_RESOLUTION:
- {
- groupID = OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.IMAGE_PROCESS;
- }
- break;
- // image process param
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MIN:
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MAX:
- case OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MIN:
- case OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX:
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MIN:
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_GRAY_MAX:
- // x-ray param
- case OTS_SAMPLE_PROP_GRID_ITEMS.SEARCH_RESOLUTION:
- case OTS_SAMPLE_PROP_GRID_ITEMS.LOW_COUNTS:
- case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION:
- case OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_MODE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_COUNTS:
- case OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_TO_MEASURE_AREA:
- // measure status
- case OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_STATAU:
- case OTS_SAMPLE_PROP_GRID_ITEMS.START_TIME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.USED_TIME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.FINISH_TIME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.COMPLETED_FIELDS:
- // measure results
- case OTS_SAMPLE_PROP_GRID_ITEMS.RATIO:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_AREA:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE_AREA:
- {
- groupID = OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.MEASURE_RESULTS;
- return false;
- }
- break;
- default:
- {
- // something wrong, return FALSE
- groupID = OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.INVALID;
- return false;
- }
- break;
- }
- // ok, return TRUE
- return true;
- }
- // double data (4)
- public bool GetPropdoubleData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, out double a_dValue)
- {
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION:
- {
- a_dValue = m_poSEMDataMsr.GetMagnification();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE:
- {
- a_dValue = CalculatePixelSize();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE:
- {
- a_dValue = m_poSEMDataMsr.GetWorkingDistance();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.RATIO:
- {
- a_dValue = m_poMsrResults.GetRatio();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MIN:
- {
- a_dValue = m_poMsrParams.GetImageProcessParam().GetIncAreaRange().GetStart();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MAX:
- {
- a_dValue = m_poMsrParams.GetImageProcessParam().GetIncAreaRange().GetEnd();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_TO_MEASURE_AREA:
- {
- double dFieldArea = 0; // this area should be the field area
- dFieldArea = CalculateAFieldArea();
- a_dValue = m_poSEMDataMsr.GetTotalFields() * dFieldArea;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_AREA:
- {
- a_dValue = m_poMsrResults.GetMeasuredArea();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE_AREA:
- {
- a_dValue = m_poMsrResults.GetTotalParticleArea();
- }
- break;
- default:
- {
- // something wrong, return false
- a_dValue = -1;
- return false;
- }
- }
- // ok, return true
- return true;
- }
- // string data (7)
- public bool GetPropStringData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, out string a_strValue)
- {
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME:
- {
- a_strValue = m_strName;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_HOLE_NAME:
- {
- a_strValue = m_strHoleName;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION:
- {
- a_strValue = NOT_APPLIED;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE:
- {
- a_strValue = NOT_APPLIED;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE:
- {
- a_strValue = NOT_APPLIED;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS:
- {
- a_strValue = NOT_APPLIED;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_TO_MEASURE_AREA:
- {
- a_strValue = NOT_APPLIED;
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_STATAU:
- {
- OTS_MSR_SAMPLE_STATUS nStatus = m_Status.GetStatus();
- string strStatus = nStatus.ToString();
- strStatus = XmlResourceData.GetInstance().GetStringByKey(GrpMeasureResult, IDS_MEASURE_STATUS_FIRST + (int)nStatus);
- a_strValue = strStatus;
- }
- break;
- default:
- {
- // something wrong, return false
- a_strValue = NOT_APPLIED;
- return false;
- }
- //break;
- }
- // ok, return true
- return true;
- }
- public bool SetPropStringData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, string a_strValue)
- {
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME:
- {
- //we think the samplename as the Identification of the sample,if we change the name then reset the status.
- //so we can remeasure the sample by change the sample name.
- if (m_strName != a_strValue)
- {
- m_strName = a_strValue;
- m_Status = new CMsrSampleStatus();
- }
- }
- break;
- // read only property, tread as default.
- case OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_HOLE_NAME:
- case OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION:
- case OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS:
- case OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_TO_MEASURE_AREA:
- case OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_STATAU:
- default:
- {
- // something wrong, return false
- return false;
- }
- //break;
- }
- // ok, return true
- return true;
- }
- // combo data (7)
- public bool GetPropComboData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, out int a_nValue)
- {
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.START_MODE:
- {
- a_nValue = (int)m_poMsrParams.GetImageScanParam().GetFieldStartMode();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_MODE:
- {
- a_nValue = (int)m_poMsrParams.GetImageScanParam().GetStopMode();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_SPEED:
- {
- a_nValue = (int)m_poMsrParams.GetImageScanParam().GetScanImageSpeed();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_RESOLUTION:
- {
- a_nValue = (int)m_poMsrParams.GetImageScanParam().GetImagePixelSize();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.SEARCH_RESOLUTION:
- {
- a_nValue = (int)m_poMsrParams.GetXRayParam().GetSearchSpeed();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION:
- {
- a_nValue = (int)m_poMsrParams.GetXRayParam().GetAnalySpeed();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_MODE:
- {
- a_nValue = (int)m_poMsrParams.GetXRayParam().GetScanMode();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.MEMBRANE_TYPE:
- {
- a_nValue = (int)this.GetMembraneType();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELD_STOP_TYPE:
- {
- a_nValue = (int)m_poMsrParams.GetImageScanParam().GetFieldStopMode();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.BGREMOVE_TYPE:
- {
- a_nValue = (int)m_poMsrParams.GetImageProcessParam().GetBGRemoveType();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.AUTOBGREMOVE_TYPE:
- {
- a_nValue = (int)m_poMsrParams.GetImageProcessParam().GetAutoBGRemoveType();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.STEEL_TECHNOLOGY:
- {
- a_nValue = (int)m_poMsrParams.GetSteelTechnology();
- }
- break;
- default:
- {
- // something wrong, return false
- a_nValue = 0;
- return false;
- }
- //break;
- }
- // ok, return true
- return true;
- }
- public bool SetPropComboData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, int a_nValue)
- {
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.STEEL_TECHNOLOGY:
- {
- if (STEEL_TECHNOLOGY.GeneralProcessMode > (STEEL_TECHNOLOGY)a_nValue || (STEEL_TECHNOLOGY)a_nValue > STEEL_TECHNOLOGY.RareEarthMode)
- {
- return false;
- }
- m_poMsrParams.SetSteelTechnology((STEEL_TECHNOLOGY)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.START_MODE:
- {
- if (OTS_GET_IMAGE_MODE.FROM_CENTER > (OTS_GET_IMAGE_MODE)a_nValue || (OTS_GET_IMAGE_MODE)a_nValue > OTS_GET_IMAGE_MODE.RANDOM)
- {
- return false;
- }
- m_poMsrParams.GetImageScanParam().SetStartImageMode((OTS_GET_IMAGE_MODE)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_MODE:
- {
- if (OTS_MEASURE_STOP_MODE.CoverMode > (OTS_MEASURE_STOP_MODE)a_nValue || (OTS_MEASURE_STOP_MODE)a_nValue > OTS_MEASURE_STOP_MODE.TimeMode)
- {
- return false;
- }
- if (m_poMsrParams.GetImageScanParam().GetStopMode() != (OTS_MEASURE_STOP_MODE)a_nValue)
- {
- m_poMsrParams.GetImageScanParam().SetStopMode((OTS_MEASURE_STOP_MODE)a_nValue);
- m_Status.SetStatus(OTS_MSR_SAMPLE_STATUS.UNMEASURED);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_SPEED:
- {
- if (OTS_THREE_TIES_OPTIONS.low > (OTS_THREE_TIES_OPTIONS)a_nValue || (OTS_THREE_TIES_OPTIONS)a_nValue > OTS_THREE_TIES_OPTIONS.high)
- {
- return false;
- }
- m_poMsrParams.GetImageScanParam().SetScanImageSpeed((OTS_THREE_TIES_OPTIONS)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_RESOLUTION:
- {
- if (OTS_FIVE_TIES_OPTIONS.TIE1 > (OTS_FIVE_TIES_OPTIONS)a_nValue || (OTS_FIVE_TIES_OPTIONS)a_nValue > OTS_FIVE_TIES_OPTIONS.TIE7)
- {
- return false;
- }
- m_poMsrParams.GetImageScanParam().SetImagePixelSize((OTS_FIVE_TIES_OPTIONS)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.SEARCH_RESOLUTION:
- {
- if (OTS_THREE_TIES_OPTIONS.low > (OTS_THREE_TIES_OPTIONS)a_nValue || (OTS_THREE_TIES_OPTIONS)a_nValue > OTS_THREE_TIES_OPTIONS.high)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetSearchSpeed((OTS_THREE_TIES_OPTIONS)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION:
- {
- if (OTS_THREE_TIES_OPTIONS.low > (OTS_THREE_TIES_OPTIONS)a_nValue || (OTS_THREE_TIES_OPTIONS)a_nValue > OTS_THREE_TIES_OPTIONS.high)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetAnalySpeed((OTS_THREE_TIES_OPTIONS)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_MODE:
- {
- if (OTS_X_RAY_SCAN_MODE.PointMode > (OTS_X_RAY_SCAN_MODE)a_nValue || (OTS_X_RAY_SCAN_MODE)a_nValue > OTS_X_RAY_SCAN_MODE.FeatureMode)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetScanMode((OTS_X_RAY_SCAN_MODE)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.MEMBRANE_TYPE:
- {
- if (MEMBRANE_TYPE.MIN > (MEMBRANE_TYPE)a_nValue || (MEMBRANE_TYPE)a_nValue > MEMBRANE_TYPE.MAX)
- {
- return false;
- }
- this.SetMembraneType((MEMBRANE_TYPE)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FIELD_STOP_TYPE:
- {
- if (OTS_MEASURE_FIELD_STOP_MODE.MIN > (OTS_MEASURE_FIELD_STOP_MODE)a_nValue || (OTS_MEASURE_FIELD_STOP_MODE)a_nValue > OTS_MEASURE_FIELD_STOP_MODE.MAX)
- {
- return false;
- }
- m_poMsrParams.GetImageScanParam().SetFieldStopMode((OTS_MEASURE_FIELD_STOP_MODE)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.BGREMOVE_TYPE:
- {
- if (OTS_BGREMOVE_TYPE.MIN > (OTS_BGREMOVE_TYPE)a_nValue || (OTS_BGREMOVE_TYPE)a_nValue > OTS_BGREMOVE_TYPE.MAX)
- {
- return false;
- }
- m_poMsrParams.GetImageProcessParam().SetBGRemoveType((OTS_BGREMOVE_TYPE)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.AUTOBGREMOVE_TYPE:
- {
- if (OTS_AUTOBGREMOVE_TYPE.MIN > (OTS_AUTOBGREMOVE_TYPE)a_nValue || (OTS_AUTOBGREMOVE_TYPE)a_nValue > OTS_AUTOBGREMOVE_TYPE.MAX)
- {
- return false;
- }
- m_poMsrParams.GetImageProcessParam().SetAutoBGRemoveType((OTS_AUTOBGREMOVE_TYPE)a_nValue);
- }
- break;
- default:
- {
- // something wrong, return false
- return false;
- }
- //break;
- }
- // ok, return true
- return true;
- }
- public bool GetPropComboStrings(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, List<string> a_listComboStrings)
- {
- // clear the strings list
- a_listComboStrings.Clear();
- // set the strings list
- string strItem;
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.START_MODE:
- {
- for (int i = (int)OTS_GET_IMAGE_MODE.FROM_CENTER; i <= (int)OTS_GET_IMAGE_MODE.RANDOM; ++i)
- {
- //ResourceID;
- strItem = XmlResourceData.GetInstance().GetStringByKey(GrpImageScan, IDS_IMAGE_MODE_FIRST + i);
- a_listComboStrings.Add(strItem);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_MODE:
- {
- for (int i = (int)OTS_MEASURE_STOP_MODE.CoverMode; i <= (int)OTS_MEASURE_STOP_MODE.TimeMode; ++i)
- {
- strItem = XmlResourceData.GetInstance().GetStringByKey(GrpImageScan, IDS_MEASURE_STOP_MODE_FIRST + i);
- a_listComboStrings.Add(strItem);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_SPEED:
- case OTS_SAMPLE_PROP_GRID_ITEMS.SEARCH_RESOLUTION:
- //case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION:
- {
- for (int i = (int)OTS_THREE_TIES_OPTIONS.low; i <= (int)OTS_THREE_TIES_OPTIONS.high; ++i)
- {
- strItem = XmlResourceData.GetInstance().GetStringByKey(GrpImageScan, IDS_THREE_TIES_OPTIONS_FIRST + i);
- a_listComboStrings.Add(strItem);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_RESOLUTION:
- {
- for (int i = (int)OTS_FIVE_TIES_OPTIONS.TIE1; i <= (int)OTS_FIVE_TIES_OPTIONS.TIE7; ++i)
- {
- strItem = RESOLUTION_STRINGS[RESOLUTION_ID_FIRST_TIE + i];
- a_listComboStrings.Add(strItem);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_MODE:
- {
- for (int i = (int)OTS_X_RAY_SCAN_MODE.PointMode; i <= (int)OTS_X_RAY_SCAN_MODE.FeatureMode; ++i)
- {
- strItem = XmlResourceData.GetInstance().GetStringByKey(GrpXray, IDS_X_RAY_SCAN_MODE_FIRST + i);
- a_listComboStrings.Add(strItem);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.STEEL_TECHNOLOGY:
- {
- for (int i = (int)STEEL_TECHNOLOGY.GeneralProcessMode; i <= (int)STEEL_TECHNOLOGY.RareEarthMode; ++i)
- {
- strItem = XmlResourceData.GetInstance().GetStringByKey(GrpGeneral, IDS_STEEL_TECHNOLOGY + i);
- a_listComboStrings.Add(strItem);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.BGREMOVE_TYPE:
- {
- for (int i = (int)OTS_BGREMOVE_TYPE.MIN; i <= (int)OTS_BGREMOVE_TYPE.MAX; ++i)
- {
- strItem = XmlResourceData.GetInstance().GetStringByKey(GrpImageProcess, IDS_BGREMOVE_TYPE + i);
- a_listComboStrings.Add(strItem);
- }
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.AUTOBGREMOVE_TYPE:
- {
- for (int i = (int)OTS_AUTOBGREMOVE_TYPE.MIN; i <= (int)OTS_AUTOBGREMOVE_TYPE.MAX; ++i)
- {
- strItem = XmlResourceData.GetInstance().GetStringByKey(GrpImageProcess, IDS_AUTOBGREMOVE_TYPE + i);
- a_listComboStrings.Add(strItem);
- }
- }
- break;
- default:
- {
- // something wrong, return false
- return false;
- }
- //break;
- }
- // ok, return true
- return true;
- }
- // time data
- public bool GetPropTimeData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, ref DateTime a_oValue)
- {
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.START_TIME:
- {
- a_oValue = m_Status.GetStartTime();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FINISH_TIME:
- {
- a_oValue = m_Status.GetEndTime();
- }
- break;
- default:
- {
- // something wrong, return false
- return false;
- }
- }
- // ok, return true
- return true;
- }
- public bool SetPropTimeData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, DateTime a_oValue)
- {
- switch (a_nId)
- {
- // read only property, tread as default.
- case OTS_SAMPLE_PROP_GRID_ITEMS.START_TIME:
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.FINISH_TIME:
- break;
- default:
- {
- // something wrong, return false
- return false;
- }
- }
- // ok, return true
- return true;
- }
- // time span data (1)
- public bool GetPropTimeSpanData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, ref TimeSpan a_oValue)
- {
- switch (a_nId)
- {
- case OTS_SAMPLE_PROP_GRID_ITEMS.USED_TIME:
- {
- a_oValue = m_Status.GetUsedTime();
- }
- break;
- default:
- {
- // something wrong, return false
- return false;
- }
- }
- // ok, return true
- return true;
- }
- public bool SetPropTimeSpanData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, TimeSpan a_oValue)
- {
- switch (a_nId)
- {
- // read only property, tread as default.
- case OTS_SAMPLE_PROP_GRID_ITEMS.USED_TIME:
- break;
- default:
- {
- // something wrong, return false
- return false;
- }
- }
- // ok, return true
- return true;
- }
- public double CalculatePixelSize()
- {
- // pixel size
- double dPixelSize = 0.0;
- // make sure SEM is valid
- if (m_poSEMDataMsr != new CSEMDataMsr())
- {
- // get scan field size
- int nScanFieldSize = m_poSEMDataMsr.GetScanFieldSize();
- // get image size
- OTS_FIVE_TIES_OPTIONS nImageSizeId = m_poMsrParams.GetImageScanParam().GetImagePixelSize();
- long nResulotionId = RESOLUTION_ID_FIRST_TIE + (long)nImageSizeId;
- int nImageSize = RESOLUTION_VALUE[nResulotionId].Width;
- // calculate pixel size
- dPixelSize = (double)nScanFieldSize / (double)nImageSize;
- }
- // return pixel size
- return dPixelSize;
- }
- public Size GetResolutionSize()
- {
- // get scan field size
- int nScanFieldSize = m_poSEMDataMsr.GetScanFieldSize();
- // get image size
- OTS_FIVE_TIES_OPTIONS nImageSizeId = m_poMsrParams.GetImageScanParam().GetImagePixelSize();
- long nResulotionId = RESOLUTION_ID_FIRST_TIE + (long)nImageSizeId;
- return RESOLUTION_VALUE[nResulotionId];
- }
- public CPropItem GetPropItemById(OTS_SAMPLE_PROP_GRID_ITEMS a_nId)
- {
- CPropItem pPropItem = new CPropItem();
- bool isExist = false;
- if (m_listPropItemGrp.Count > 0)
- {
- foreach (CPropItemGrp poPropItemGrp in m_listPropItemGrp)
- {
- List<CPropItem> listPropItems = poPropItemGrp.GetItemsList();
- if (listPropItems.Count > 0)
- {
- foreach (CPropItem cPropItem in listPropItems)
- {
- if (cPropItem.GetSmplItemId() == a_nId)
- {
- pPropItem = cPropItem;
- isExist = true;
- break;
- }
- }
- if (isExist)
- {
- break;
- }
- }
- }
- }
- return pPropItem;
- }
- public string GetItemValueStr(OTS_SAMPLE_PROP_GRID_ITEMS ItemID)
- {
- COTSSample cSample = new COTSSample();
- //CString strItemID = ItemId;
- string valStr = "";
- CPropItem itm = GetPropItemById(ItemID);
- switch ((OTS_ITEM_TYPES)itm.GetTypeId())
- {
- case OTS_ITEM_TYPES.BOOL:
- {
- bool bflag = false;
- if (GetPropBOOLData((int)ItemID, out bflag))
- {
- valStr = bflag ? "1" : "0";
- }
- }
- break;
- case OTS_ITEM_TYPES.INT:
- {
- int iVal = 0;
- if (GetPropIntData(ItemID, out iVal))
- {
- valStr = iVal.ToString();
- }
- }
- break;
- case OTS_ITEM_TYPES.DOUBLE:
- {
- double dVal = 0;
- if (GetPropdoubleData(ItemID, out dVal))
- {
- valStr = dVal.ToString("f2");//点后面几个0就保留几位
- }
- }
- break;
- case OTS_ITEM_TYPES.STRING:
- {
- string StrVal = "";
- if (GetPropStringData(ItemID, out StrVal))
- {
- valStr = StrVal;
- }
- }
- break;
- case OTS_ITEM_TYPES.COMBO:
- {
- List<string> StrVal = new List<string>();
- if (GetPropComboStrings(ItemID, StrVal))
- {
- int index = 0;
- GetPropComboData(ItemID, out index);
- if (index > (int)StrVal.Count)
- {
- valStr = StrVal[0];
- break;
- }
- valStr = StrVal[index];
- }
- }
- break;
- case OTS_ITEM_TYPES.TIME:
- {
- System.DateTime dt = new System.DateTime();
- if (GetPropTimeData(ItemID, ref dt))
- {
- valStr = dt.ToString();
- }
- }
- break;
- case OTS_ITEM_TYPES.TIME_SPAN:
- {
- System.TimeSpan TimeSpanValue = new System.TimeSpan();
- if (GetPropTimeSpanData(ItemID, ref TimeSpanValue))
- {
- int v = (int)TimeSpanValue.TotalSeconds;
- valStr = v.ToString();
- }
- }
- break;
- case OTS_ITEM_TYPES.FILE_LIST:
- {
- //CMsrParams object represent a project param file. It includes PartSTD file ImgProcessParam ImgScanParam XrayParam four parts content.
- int iPos = -1;
- List<string> sFileNameList;
- if (OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_PARAM_FILE_NAME == (OTS_SAMPLE_PROP_GRID_ITEMS)ItemID)
- {
- valStr = m_poMsrParams.GetName();
- }
- if (OTS_SAMPLE_PROP_GRID_ITEMS.STD_FILE_NAME == (OTS_SAMPLE_PROP_GRID_ITEMS)ItemID)
- {
- valStr = m_poMsrParams.GetSTDName();
- }
- }
- break;
- default:
- break;
- }
- return valStr;
- }
- // calculate field area
- public double CalculateAFieldArea()
- {
- // pixel size
- double dAFieldArea = 0.0;
- // make sure SEM is valid
- if (m_poSEMDataMsr != new CSEMDataMsr())
- {
- // get image size
- OTS_FIVE_TIES_OPTIONS nImageSizeId = m_poMsrParams.GetImageScanParam().GetImagePixelSize();
- long nResulotionId = RESOLUTION_ID_FIRST_TIE + (long)nImageSizeId;
- int nImageSize = RESOLUTION_VALUE[nResulotionId].Width;
- // pixel size (micros)
- double dPixelSize = 0;
- dPixelSize = CalculatePixelSize();
- // calculate pixel size
- dAFieldArea = (double)nImageSize * (double)nImageSize * 0.75 * dPixelSize * dPixelSize * 0.000001;// mm^2
- }
- // return pixel size
- return dAFieldArea;
- }
- public bool GetBSESize(int a_nWidth, int a_nHeight)
- {
- // scan parameters
- CSampleParam pMsrParam = GetMsrParams();
- COTSImgScanPrm pImgScanParam = pMsrParam.GetImageScanParam();
- // get image size
- OTS_FIVE_TIES_OPTIONS nImageSizeId = pImgScanParam.GetImagePixelSize();
- int nResulotionId = RESOLUTION_ID_FIRST_TIE + (int)nImageSizeId;
- Size sizePixelImage = RESOLUTION_VALUE[nResulotionId];
- // get scan field size
- a_nWidth = sizePixelImage.Width;
- a_nHeight = sizePixelImage.Height;
- return true;
- }
- public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
- {
- xString xstrSampleName = new xString();
- xString xstrHoleName = new xString();
- xBool xParamLock = new xBool();
- xBool xSwitch = new xBool();
- xBool xSysSTDSwitch = new xBool();
- Slo slo = new Slo();
- slo.Register("SampleName", xstrSampleName);
- slo.Register("HoleName", xstrHoleName);
- slo.Register("ParamLock", xParamLock);
- slo.Register("Switch", xSwitch);
- slo.Register("UseSysSTD", xSysSTDSwitch);
- slo.Register("MsrArea", m_poMsrArea);
- slo.Register("MsrParams", m_poMsrParams);
- slo.Register("SEMDataMsr", m_poSEMDataMsr);
- if (isStoring)
- {
- xstrSampleName.AssignValue(m_strName);
- xstrHoleName.AssignValue(m_strHoleName);
- xParamLock.AssignValue(m_bParamLock);
- xSwitch.AssignValue(m_bSwitch);
- xSysSTDSwitch.AssignValue(m_bSysSTDSwitch);
- slo.Serialize(true, classDoc, rootNode);
- }
- else
- {
- slo.Serialize(false, classDoc, rootNode);
- m_strName = xstrSampleName.value();
- m_strHoleName = xstrHoleName.value();
- m_bParamLock = xParamLock.value();
- m_bSwitch = xSwitch.value();
- m_bSysSTDSwitch = xSysSTDSwitch.value();
- }
- }
- }
- }
|