12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837 |
- 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(a_bValue);
- }
- 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;
- case OTS_SAMPLE_PROP_GRID_ITEMS.XRAY_QUANTIFY_MINSIZE:
- {
- if (0 >= a_dValue)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetQuantifyMinSize(a_dValue);
- }
- 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_IMAGE_RESULOTION_OPTIONS nImageSizeId = m_poMsrParams.GetImageScanParam().GetImageResulotion();
- 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_IMAGE_RESULOTION_OPTIONS nImageSizeId = pImgScanParam.GetImageResulotion();
- 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() ;
- }
- 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.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_FASTTIME:
- {
- a_nValue = m_poMsrParams.GetXRayParam().GetFastXrayTime();
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.XrayLimit:
- {
- a_nValue = m_poMsrParams.GetXRayParam().GetXrayLimit();
- }
- 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_FASTTIME:
- {
- if (0 >= a_nValue)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetFastXrayTime(a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.XrayLimit:
- {
- if (0 >= a_nValue)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetXrayLimit(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);
-
- // 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();
-
- // 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);
-
- //quantify size
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.XRAY_QUANTIFY_MINSIZE;
- poPropItem.SetSmplParameter(modelResource, nItemId, OTS_ITEM_TYPES.DOUBLE, 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
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION;//big particle AQTime
- 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;//small particle AQTime
- 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);
- // XrayLimit
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.XrayLimit;
- 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.DOUBLE, 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.DOUBLE, 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);
-
-
- // 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);
-
- }
- 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.DOUBLE, 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);
- // XrayLimit
- poPropItem = new CPropItem();
- nItemId = OTS_SAMPLE_PROP_GRID_ITEMS.XrayLimit;
- 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;
- case OTS_SAMPLE_PROP_GRID_ITEMS.XRAY_QUANTIFY_MINSIZE:
- {
- a_dValue = m_poMsrParams.GetXRayParam().GetFeatureModeMinSize();
- }
- 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().GetImageResulotion();
- }
- 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_IMAGE_SCANSPEED_OPTIONS.low > (OTS_IMAGE_SCANSPEED_OPTIONS)a_nValue || (OTS_IMAGE_SCANSPEED_OPTIONS)a_nValue > OTS_IMAGE_SCANSPEED_OPTIONS.high)
- {
- return false;
- }
- m_poMsrParams.GetImageScanParam().SetScanImageSpeed((OTS_IMAGE_SCANSPEED_OPTIONS)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_RESOLUTION:
- {
- if (OTS_IMAGE_RESULOTION_OPTIONS._512_384 > (OTS_IMAGE_RESULOTION_OPTIONS)a_nValue || (OTS_IMAGE_RESULOTION_OPTIONS)a_nValue > OTS_IMAGE_RESULOTION_OPTIONS._4096_3072)
- {
- return false;
- }
- m_poMsrParams.GetImageScanParam().SetImageResulotion((OTS_IMAGE_RESULOTION_OPTIONS)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.SEARCH_RESOLUTION:
- {
- if (OTS_IMAGE_SCANSPEED_OPTIONS.low > (OTS_IMAGE_SCANSPEED_OPTIONS)a_nValue || (OTS_IMAGE_SCANSPEED_OPTIONS)a_nValue > OTS_IMAGE_SCANSPEED_OPTIONS.high)
- {
- return false;
- }
- //m_poMsrParams.GetXRayParam().SetSearchSpeed((OTS_IMAGE_SCANSPEED_OPTIONS)a_nValue);
- }
- break;
- case OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION:
- {
- if (OTS_IMAGE_SCANSPEED_OPTIONS.low > (OTS_IMAGE_SCANSPEED_OPTIONS)a_nValue || (OTS_IMAGE_SCANSPEED_OPTIONS)a_nValue > OTS_IMAGE_SCANSPEED_OPTIONS.high)
- {
- return false;
- }
- m_poMsrParams.GetXRayParam().SetAnalySpeed((OTS_IMAGE_SCANSPEED_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_IMAGE_SCANSPEED_OPTIONS.low; i <= (int)OTS_IMAGE_SCANSPEED_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 = 0; i < Enum.GetValues(typeof(OTS_IMAGE_RESULOTION_OPTIONS)).Length; 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 = 0; i <(int)Enum.GetValues(typeof(OTS_BGREMOVE_TYPE)).Length; ++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.MIDDLE; i <= (int)OTS_AUTOBGREMOVE_TYPE.UPWARD; ++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_IMAGE_RESULOTION_OPTIONS nImageSizeId = m_poMsrParams.GetImageScanParam().GetImageResulotion();
- 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_IMAGE_RESULOTION_OPTIONS nImageSizeId = m_poMsrParams.GetImageScanParam().GetImageResulotion();
- 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_IMAGE_RESULOTION_OPTIONS nImageSizeId = m_poMsrParams.GetImageScanParam().GetImageResulotion();
- long nResulotionId = RESOLUTION_ID_FIRST_TIE + (long)nImageSizeId;
- int nImageSize = RESOLUTION_VALUE[nResulotionId].Width;
- int nHeight = RESOLUTION_VALUE[nResulotionId].Height;
- // pixel size (micros)
- double dPixelSize = 0;
- dPixelSize = CalculatePixelSize();
- // calculate pixel size
- dAFieldArea = (double)nImageSize * nHeight * 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_IMAGE_RESULOTION_OPTIONS nImageSizeId = pImgScanParam.GetImageResulotion();
- 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();
- }
- }
- }
- }
|