ProjMgrClr.cpp 36 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468
  1. #include "stdafx.h"
  2. #include "SEMStageDataClr.h"
  3. #include "ProjMgrClr.h"
  4. namespace OTSINTERFACE {
  5. CProjMgrClr::CProjMgrClr() // constructor
  6. {
  7. m_LpProjMgr = new COTSProjMgrFilePtr(new COTSProjMgrFile());
  8. }
  9. CProjMgrClr::CProjMgrClr(COTSProjMgrFile* a_pSource) // copy constructor
  10. {
  11. //Init();
  12. if (a_pSource == nullptr)
  13. {
  14. LogErrorTrace(__FILE__, __LINE__, _T("CProjMgrClr:invalid pointer"));
  15. return;
  16. }
  17. m_LpProjMgr = new COTSProjMgrFilePtr(new COTSProjMgrFile(a_pSource));
  18. }
  19. CProjMgrClr::CProjMgrClr(COTSProjMgrFilePtr pProjMgrFile) // copy constructor
  20. {
  21. if (pProjMgrFile == nullptr)
  22. {
  23. LogErrorTrace(__FILE__, __LINE__, _T("CProjMgrClr:invalid pointer"));
  24. return;
  25. }
  26. m_LpProjMgr = new COTSProjMgrFilePtr(pProjMgrFile);
  27. }
  28. CProjMgrClr::~CProjMgrClr()
  29. {
  30. if (m_LpProjMgr != nullptr)
  31. {
  32. delete m_LpProjMgr;
  33. m_LpProjMgr = nullptr;
  34. }
  35. }
  36. CProjMgrClr::!CProjMgrClr()
  37. {
  38. if (m_LpProjMgr != nullptr)
  39. {
  40. delete m_LpProjMgr;
  41. m_LpProjMgr = nullptr;
  42. }
  43. }
  44. COTSProjMgrFilePtr CProjMgrClr::GetCProjMgrPtr()
  45. {
  46. return *m_LpProjMgr;
  47. }
  48. // file
  49. bool CProjMgrClr::NewFile()
  50. {
  51. if (m_LpProjMgr == nullptr)
  52. {
  53. LogErrorTrace(__FILE__, __LINE__, _T("NewFile: invalid pointer."));
  54. return false;
  55. }
  56. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  57. ASSERT(pProjMgrFile);
  58. if (!pProjMgrFile)
  59. {
  60. LogErrorTrace(__FILE__, __LINE__, _T("NewFile: failed to create pointer."));
  61. return false;
  62. }
  63. bool bRet = false;
  64. bRet = pProjMgrFile->NewFile();
  65. return bRet;
  66. }
  67. bool CProjMgrClr::Load()
  68. {
  69. if (m_LpProjMgr == nullptr)
  70. {
  71. LogErrorTrace(__FILE__, __LINE__, _T("Load: invalid pointer."));
  72. return false;
  73. }
  74. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  75. ASSERT(pProjMgrFile);
  76. if (!pProjMgrFile)
  77. {
  78. LogErrorTrace(__FILE__, __LINE__, _T("Load: failed to create pointer."));
  79. return false;
  80. }
  81. bool bRet = false;
  82. bRet = pProjMgrFile->Load();
  83. return bRet;
  84. }
  85. bool CProjMgrClr::Save()
  86. {
  87. if (m_LpProjMgr == nullptr)
  88. {
  89. LogErrorTrace(__FILE__, __LINE__, _T("Save: invalid pointer."));
  90. return false;
  91. }
  92. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  93. ASSERT(pProjMgrFile);
  94. if (!pProjMgrFile)
  95. {
  96. LogErrorTrace(__FILE__, __LINE__, _T("Save: failed to create pointer."));
  97. return false;
  98. }
  99. bool bRet = false;
  100. bRet = pProjMgrFile->Save();
  101. return bRet;
  102. }
  103. bool CProjMgrClr::SaveAs()
  104. {
  105. if (m_LpProjMgr == nullptr)
  106. {
  107. LogErrorTrace(__FILE__, __LINE__, _T("SaveAs: invalid pointer."));
  108. return false;
  109. }
  110. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  111. ASSERT(pProjMgrFile);
  112. if (!pProjMgrFile)
  113. {
  114. LogErrorTrace(__FILE__, __LINE__, _T("SaveAs: failed to create pointer."));
  115. return false;
  116. }
  117. bool bRet = false;
  118. bRet = pProjMgrFile->SaveAs();
  119. return bRet;
  120. }
  121. bool CProjMgrClr::IsValid()
  122. {
  123. if (m_LpProjMgr == nullptr)
  124. {
  125. LogErrorTrace(__FILE__, __LINE__, _T("IsValid: invalid pointer."));
  126. return false;
  127. }
  128. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  129. ASSERT(pProjMgrFile);
  130. if (!pProjMgrFile)
  131. {
  132. LogErrorTrace(__FILE__, __LINE__, _T("IsValid: failed to create pointer."));
  133. return false;
  134. }
  135. bool bRet = false;
  136. bRet = pProjMgrFile->IsValid();
  137. return bRet;
  138. }
  139. CSEMStageDataClr^ CProjMgrClr::GetSEMStageData()
  140. {
  141. if (m_LpProjMgr == nullptr)
  142. {
  143. LogErrorTrace(__FILE__, __LINE__, _T("GetSEMStageData: invalid pointer."));
  144. return nullptr;
  145. }
  146. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  147. ASSERT(pProjMgrFile);
  148. if (!pProjMgrFile)
  149. {
  150. LogErrorTrace(__FILE__, __LINE__, _T("GetSEMStageData: failed to create pointer."));
  151. return nullptr;
  152. }
  153. CSEMStageDataPtr pSEMStageData = pProjMgrFile->GetSEMStageData();
  154. ASSERT(pSEMStageData);
  155. if (!pSEMStageData)
  156. {
  157. LogErrorTrace(__FILE__, __LINE__, _T("GetSEMStageData: invalid pointer."));
  158. return nullptr;
  159. }
  160. CSEMStageDataClr^ pSEMStageDataClr = gcnew CSEMStageDataClr(pSEMStageData);
  161. return pSEMStageDataClr;
  162. }
  163. // SEM stage data
  164. void CProjMgrClr::SetSEMStageData(CSEMStageDataClr^ a_pSEMStageData)
  165. {
  166. if (m_LpProjMgr == nullptr)
  167. {
  168. LogErrorTrace(__FILE__, __LINE__, _T("SetSEMStageData: invalid pointer."));
  169. return;
  170. }
  171. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  172. ASSERT(pProjMgrFile);
  173. if (!pProjMgrFile)
  174. {
  175. LogErrorTrace(__FILE__, __LINE__, _T("SetSEMStageData: failed to create pointer."));
  176. return;
  177. }
  178. ASSERT(a_pSEMStageData);
  179. if (a_pSEMStageData == nullptr)
  180. {
  181. LogErrorTrace(__FILE__, __LINE__, _T("SetSEMStageData::invalid pointer"));
  182. return;
  183. }
  184. CSEMStageDataPtr pSEMStageData = a_pSEMStageData->GetCSEMStageData();
  185. ASSERT(pSEMStageData);
  186. if (pSEMStageData == nullptr)
  187. {
  188. LogErrorTrace(__FILE__, __LINE__, _T("SetSEMStageData::invalid pointer"));
  189. return;
  190. }
  191. pProjMgrFile->SetSEMStageData(pSEMStageData);
  192. }
  193. CStageClr^ CProjMgrClr::GetStage()
  194. {
  195. if (m_LpProjMgr == nullptr)
  196. {
  197. LogErrorTrace(__FILE__, __LINE__, _T("GetStage: invalid pointer."));
  198. return nullptr;
  199. }
  200. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  201. ASSERT(pProjMgrFile);
  202. if (!pProjMgrFile)
  203. {
  204. LogErrorTrace(__FILE__, __LINE__, _T("GetStage: failed to create pointer."));
  205. return nullptr;
  206. }
  207. CStagePtr pStage = pProjMgrFile->GetStage();
  208. ASSERT(pStage);
  209. if (!pStage)
  210. {
  211. LogErrorTrace(__FILE__, __LINE__, _T("GetStage: invalid pointer."));
  212. return nullptr;
  213. }
  214. CStageClr^ pStageClr = gcnew CStageClr(pStage);
  215. return pStageClr;
  216. }
  217. // stage
  218. void CProjMgrClr::SetStage(CStageClr^ a_pStage)
  219. {
  220. if (m_LpProjMgr == nullptr)
  221. {
  222. LogErrorTrace(__FILE__, __LINE__, _T("SetStage: invalid pointer."));
  223. return;
  224. }
  225. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  226. ASSERT(pProjMgrFile);
  227. if (!pProjMgrFile)
  228. {
  229. LogErrorTrace(__FILE__, __LINE__, _T("SetStage: failed to create pointer."));
  230. return;
  231. }
  232. ASSERT(a_pStage);
  233. if (a_pStage == nullptr)
  234. {
  235. LogErrorTrace(__FILE__, __LINE__, _T("SetStage::invalid pointer"));
  236. return;
  237. }
  238. CStagePtr pStage = a_pStage->GetStagePtr();
  239. ASSERT(pStage);
  240. if (pStage == nullptr)
  241. {
  242. LogErrorTrace(__FILE__, __LINE__, _T("SetStage::invalid pointer"));
  243. return;
  244. }
  245. pProjMgrFile->SetStage(pStage);
  246. }
  247. COTSSamplesListClr^ CProjMgrClr::GetSampleList()
  248. {
  249. if (m_LpProjMgr == nullptr)
  250. {
  251. LogErrorTrace(__FILE__, __LINE__, _T("GetSampleList: invalid pointer."));
  252. return nullptr;
  253. }
  254. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  255. ASSERT(pProjMgrFile);
  256. if (!pProjMgrFile)
  257. {
  258. LogErrorTrace(__FILE__, __LINE__, _T("GetSampleList: failed to create pointer."));
  259. return nullptr;
  260. }
  261. auto lstSmpl= gcnew COTSSamplesListClr();
  262. auto smpls = pProjMgrFile->GetSampleList();
  263. for each(auto s in smpls)
  264. {
  265. lstSmpl->Add(gcnew COTSSampleClr(s));
  266. }
  267. return lstSmpl;
  268. // TODO: insert return statement here
  269. }
  270. // samples list
  271. bool CProjMgrClr::SetSampleList(COTSSamplesListClr^ a_listSample, bool a_bClear)
  272. {
  273. if (m_LpProjMgr == nullptr)
  274. {
  275. LogErrorTrace(__FILE__, __LINE__, _T("SetSampleList: invalid pointer."));
  276. return false;
  277. }
  278. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  279. ASSERT(pProjMgrFile);
  280. if (!pProjMgrFile)
  281. {
  282. LogErrorTrace(__FILE__,__LINE__, _T("SetSampleList: failed to create pointer."));
  283. return false;
  284. }
  285. ASSERT(a_listSample);
  286. if (!a_listSample)
  287. {
  288. LogErrorTrace(__FILE__, __LINE__, _T("SetSampleList: invalid list pointer."));
  289. return false;
  290. }
  291. COTSSamplesList listSample;
  292. listSample.clear();
  293. for (int i = 0; i < a_listSample->Count; i++)
  294. {
  295. COTSSamplePtr pSample = a_listSample[i]->GetSamplePtr();
  296. ASSERT(pSample);
  297. if (!pSample)
  298. {
  299. LogErrorTrace(__FILE__, __LINE__, _T("SetSampleList: invalid list pointer."));
  300. return false;
  301. }
  302. listSample.push_back(pSample);
  303. }
  304. pProjMgrFile->SetSampleList(listSample, a_bClear);
  305. return true;
  306. }
  307. COTSSampleClr^ CProjMgrClr::GetSampleByIndex(int a_nIndex)
  308. {
  309. if (m_LpProjMgr == nullptr)
  310. {
  311. LogErrorTrace(__FILE__, __LINE__, _T("GetSampleByIndex: invalid pointer."));
  312. return nullptr;
  313. }
  314. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  315. ASSERT(pProjMgrFile);
  316. if (!pProjMgrFile)
  317. {
  318. LogErrorTrace(__FILE__, __LINE__, _T("GetSampleByIndex: failed to create pointer."));
  319. return nullptr;
  320. }
  321. COTSSamplePtr pSample = pProjMgrFile->GetSampleByIndex(a_nIndex);
  322. ASSERT(pSample);
  323. if (!pSample)
  324. {
  325. LogErrorTrace(__FILE__, __LINE__, _T("GetSampleByIndex: failed to create pointer."));
  326. }
  327. COTSSampleClr^ pSampleClr = gcnew COTSSampleClr(pSample);
  328. return pSampleClr;
  329. }
  330. COTSSampleClr^ CProjMgrClr::GetSampleByName(String^ a_strSampleName)
  331. {
  332. if (m_LpProjMgr == nullptr)
  333. {
  334. LogErrorTrace(__FILE__, __LINE__, _T("SetSampleList: invalid pointer."));
  335. return nullptr;
  336. }
  337. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  338. ASSERT(pProjMgrFile);
  339. if (!pProjMgrFile)
  340. {
  341. LogErrorTrace(__FILE__, __LINE__, _T("SetSampleList: failed to create pointer."));
  342. return nullptr;
  343. }
  344. COTSSamplePtr pSample = pProjMgrFile->GetSampleByName(a_strSampleName);
  345. ASSERT(pSample);
  346. if (!pSample)
  347. {
  348. LogErrorTrace(__FILE__, __LINE__, _T("GetSampleByName: failed to create pointer."));
  349. }
  350. COTSSampleClr^ pSampleClr = gcnew COTSSampleClr(pSample);
  351. return pSampleClr;
  352. }
  353. COTSSampleClr^ CProjMgrClr::AddSample(String^ a_strHoleName)
  354. {
  355. if (m_LpProjMgr == nullptr)
  356. {
  357. LogErrorTrace(__FILE__, __LINE__, _T("AddSample: invalid pointer."));
  358. return nullptr;
  359. }
  360. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  361. COTSSamplePtr pSample = pProjMgrFile->AddSample(a_strHoleName);
  362. ASSERT(pSample);
  363. if (!pSample)
  364. {
  365. LogErrorTrace(__FILE__, __LINE__, _T("AddSample: failed to create pointer."));
  366. }
  367. COTSSampleClr^ pSampleClr = gcnew COTSSampleClr(pSample);
  368. return pSampleClr;
  369. }
  370. bool CProjMgrClr::DeleteSampleByIndex(int a_nIndex)
  371. {
  372. if (m_LpProjMgr == nullptr)
  373. {
  374. LogErrorTrace(__FILE__, __LINE__, _T("DeleteSampleByIndex: invalid pointer."));
  375. return false;
  376. }
  377. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  378. ASSERT(pProjMgrFile);
  379. if (!pProjMgrFile)
  380. {
  381. LogErrorTrace(__FILE__, __LINE__, _T("DeleteSampleByIndex: failed to create pointer."));
  382. return false;
  383. }
  384. bool bRet = false;
  385. bRet = pProjMgrFile->DeleteSampleByIndex(a_nIndex);
  386. return bRet;
  387. }
  388. bool CProjMgrClr::DeleteSampleByName(String^ a_strSampleName)
  389. {
  390. if (m_LpProjMgr == nullptr)
  391. {
  392. LogErrorTrace(__FILE__, __LINE__, _T("DeleteSampleByName: invalid pointer."));
  393. return false;
  394. }
  395. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  396. ASSERT(pProjMgrFile);
  397. if (!pProjMgrFile)
  398. {
  399. LogErrorTrace(__FILE__, __LINE__, _T("DeleteSampleByName: failed to create pointer."));
  400. return false;
  401. }
  402. bool bRet = false;
  403. bRet = pProjMgrFile->DeleteSampleByName(a_strSampleName);
  404. return bRet;
  405. }
  406. bool CProjMgrClr::SameNameInList(String^ a_strSampleName, int a_nExclude)
  407. {
  408. if (m_LpProjMgr == nullptr)
  409. {
  410. LogErrorTrace(__FILE__, __LINE__, _T("SameNameInList: invalid pointer."));
  411. return false;
  412. }
  413. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  414. ASSERT(pProjMgrFile);
  415. if (!pProjMgrFile)
  416. {
  417. LogErrorTrace(__FILE__, __LINE__, _T("SameNameInList: failed to create pointer."));
  418. return false;
  419. }
  420. bool bRet = false;
  421. bRet = pProjMgrFile->SameNameInList(a_strSampleName, a_nExclude);
  422. return bRet;
  423. }
  424. bool CProjMgrClr::ResetSamplesListOrder(System::Collections::Generic::List<String^>^ a_listSampleNames)
  425. {
  426. if (m_LpProjMgr == nullptr)
  427. {
  428. LogErrorTrace(__FILE__, __LINE__, _T("ResetSamplesListOrder: invalid pointer."));
  429. return false;
  430. }
  431. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  432. ASSERT(pProjMgrFile);
  433. if (!pProjMgrFile)
  434. {
  435. LogErrorTrace(__FILE__, __LINE__, _T("ResetSamplesListOrder: failed to create pointer."));
  436. return false;
  437. }
  438. ASSERT(a_listSampleNames);
  439. if (!a_listSampleNames)
  440. {
  441. LogErrorTrace(__FILE__, __LINE__, _T("ResetSamplesListOrder: invalid list pointer."));
  442. return false;
  443. }
  444. std::vector<CString> listSampleNames;
  445. listSampleNames.clear();
  446. for (int i = 0; i < a_listSampleNames->Count; i++)
  447. {
  448. listSampleNames.push_back(a_listSampleNames[i]);
  449. }
  450. bool bRet = false;
  451. bRet = pProjMgrFile->ResetSamplesListOrder(listSampleNames);
  452. return bRet;
  453. }
  454. bool CProjMgrClr::InsrtSample(COTSSampleClr^ a_pSample, int a_nIndex)
  455. {
  456. if (m_LpProjMgr == nullptr)
  457. {
  458. LogErrorTrace(__FILE__, __LINE__, _T("InsrtSample: invalid pointer."));
  459. return false;
  460. }
  461. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  462. ASSERT(pProjMgrFile);
  463. if (!pProjMgrFile)
  464. {
  465. LogErrorTrace(__FILE__, __LINE__, _T("InsrtSample: failed to create pointer."));
  466. return false;
  467. }
  468. ASSERT(a_pSample);
  469. if (!a_pSample)
  470. {
  471. LogErrorTrace(__FILE__, __LINE__, _T("InsrtSample: failed to create pointer."));
  472. return false;
  473. }
  474. COTSSamplePtr pSample = a_pSample->GetSamplePtr();
  475. ASSERT(pSample);
  476. if (!pSample)
  477. {
  478. LogErrorTrace(__FILE__, __LINE__, _T("InsrtSample: failed to create pointer."));
  479. return false;
  480. }
  481. bool bRet = false;
  482. bRet = pProjMgrFile->InsrtSample(pSample, a_nIndex);
  483. return bRet;
  484. }
  485. bool CProjMgrClr::ChangeSamplePosition(int a_nIndexFrom, int a_nIndexTo)
  486. {
  487. if (m_LpProjMgr == nullptr)
  488. {
  489. LogErrorTrace(__FILE__, __LINE__, _T("ChangeSamplePosition: invalid pointer."));
  490. return false;
  491. }
  492. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  493. ASSERT(pProjMgrFile);
  494. if (!pProjMgrFile)
  495. {
  496. LogErrorTrace(__FILE__, __LINE__, _T("ChangeSamplePosition: failed to create pointer."));
  497. return false;
  498. }
  499. bool bRet = false;
  500. bRet = pProjMgrFile->ChangeSamplePosition(a_nIndexFrom, a_nIndexTo);
  501. return bRet;
  502. }
  503. bool CProjMgrClr::MoveSamplePosition(COTSSampleClr^ a_pTargetSample, COTSSampleClr^ a_RefpSample, bool a_bBefore)
  504. {
  505. if (m_LpProjMgr == nullptr)
  506. {
  507. LogErrorTrace(__FILE__, __LINE__, _T("MoveSamplePosition: invalid pointer."));
  508. return false;
  509. }
  510. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  511. ASSERT(pProjMgrFile);
  512. if (!pProjMgrFile)
  513. {
  514. LogErrorTrace(__FILE__, __LINE__, _T("MoveSamplePosition: failed to create pointer."));
  515. return false;
  516. }
  517. ASSERT(a_pTargetSample);
  518. if (!a_pTargetSample)
  519. {
  520. LogErrorTrace(__FILE__, __LINE__, _T("MoveSamplePosition: failed to create pointer."));
  521. return false;
  522. }
  523. COTSSamplePtr pTargetSample = a_pTargetSample->GetSamplePtr();
  524. ASSERT(pTargetSample);
  525. if (!pTargetSample)
  526. {
  527. LogErrorTrace(__FILE__, __LINE__, _T("MoveSamplePosition: failed to create pointer."));
  528. return false;
  529. }
  530. ASSERT(a_RefpSample);
  531. if (!a_RefpSample)
  532. {
  533. LogErrorTrace(__FILE__, __LINE__, _T("MoveSamplePosition: failed to create pointer."));
  534. return false;
  535. }
  536. COTSSamplePtr RefpSample = a_RefpSample->GetSamplePtr();
  537. ASSERT(RefpSample);
  538. if (!RefpSample)
  539. {
  540. LogErrorTrace(__FILE__, __LINE__, _T("MoveSamplePosition: failed to create pointer."));
  541. return false;
  542. }
  543. bool bRet = false;
  544. bRet = pProjMgrFile->MoveSamplePosition(pTargetSample, RefpSample, a_bBefore);
  545. return bRet;
  546. }
  547. bool CProjMgrClr::MoveSamplePosition(String^ a_strTargetSampleName, String^ a_strRefSampleName, bool a_bBefore)
  548. {
  549. if (m_LpProjMgr == nullptr)
  550. {
  551. LogErrorTrace(__FILE__, __LINE__, _T("MoveSamplePosition: invalid pointer."));
  552. return false;
  553. }
  554. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  555. ASSERT(pProjMgrFile);
  556. if (!pProjMgrFile)
  557. {
  558. LogErrorTrace(__FILE__, __LINE__, _T("MoveSamplePosition: failed to create pointer."));
  559. return false;
  560. }
  561. bool bRet = false;
  562. bRet = pProjMgrFile->MoveSamplePosition(a_strTargetSampleName, a_strRefSampleName, a_bBefore);
  563. return bRet;
  564. }
  565. // working sample
  566. COTSSampleClr^ CProjMgrClr::GetWorkingSample()
  567. {
  568. if (m_LpProjMgr == nullptr)
  569. {
  570. LogErrorTrace(__FILE__, __LINE__, _T("GetWorkingSample: invalid pointer."));
  571. return nullptr;
  572. }
  573. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  574. ASSERT(pProjMgrFile);
  575. if (!pProjMgrFile)
  576. {
  577. LogErrorTrace(__FILE__, __LINE__, _T("GetWorkingSample: failed to create pointer."));
  578. return nullptr;
  579. }
  580. COTSSamplePtr pSample = pProjMgrFile->GetWorkingSample();
  581. if(!pSample)
  582. {
  583. LogTrace(__FILE__, __LINE__, _T("GetWorkingSample: there is no sample in the list."));
  584. return nullptr;
  585. }
  586. COTSSampleClr^ pSampleClr = gcnew COTSSampleClr(pSample);
  587. return pSampleClr;
  588. }
  589. int CProjMgrClr::GetWorkingSampleIndex()
  590. {
  591. if (m_LpProjMgr == nullptr)
  592. {
  593. LogErrorTrace(__FILE__, __LINE__, _T("GetWorkingSampleIndex: invalid pointer."));
  594. return -1;
  595. }
  596. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  597. ASSERT(pProjMgrFile);
  598. if (!pProjMgrFile)
  599. {
  600. LogErrorTrace(__FILE__, __LINE__, _T("GetWorkingSampleIndex: failed to create pointer."));
  601. return -1;
  602. }
  603. return pProjMgrFile->GetWorkingSampleIndex();
  604. }
  605. bool CProjMgrClr::SetWorkingSampleByIndex(int a_nIndex)
  606. {
  607. if (m_LpProjMgr == nullptr)
  608. {
  609. LogErrorTrace(__FILE__, __LINE__, _T("SetWorkingSampleByIndex: invalid pointer."));
  610. return false;
  611. }
  612. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  613. ASSERT(pProjMgrFile);
  614. if (!pProjMgrFile)
  615. {
  616. LogErrorTrace(__FILE__, __LINE__, _T("SetWorkingSampleByIndex: failed to create pointer."));
  617. return false;
  618. }
  619. bool bRet = false;
  620. bRet = pProjMgrFile->SetWorkingSampleByIndex(a_nIndex);
  621. return bRet;
  622. }
  623. bool CProjMgrClr::SetWorkingSampleByName(String^ a_pSampleName)
  624. {
  625. if (m_LpProjMgr == nullptr)
  626. {
  627. LogErrorTrace(__FILE__, __LINE__, _T("SetWorkingSampleByName: invalid pointer."));
  628. return false;
  629. }
  630. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  631. ASSERT(pProjMgrFile);
  632. if (!pProjMgrFile)
  633. {
  634. LogErrorTrace(__FILE__, __LINE__, _T("SetWorkingSampleByName: failed to create pointer."));
  635. return false;
  636. }
  637. bool bRet = false;
  638. bRet = pProjMgrFile->SetWorkingSampleByName(a_pSampleName);
  639. return bRet;
  640. }
  641. bool CProjMgrClr::DeleteWorkingSample()
  642. {
  643. if (m_LpProjMgr == nullptr)
  644. {
  645. LogErrorTrace(__FILE__, __LINE__, _T("DeleteWorkingSample: invalid pointer."));
  646. return false;
  647. }
  648. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  649. ASSERT(pProjMgrFile);
  650. if (!pProjMgrFile)
  651. {
  652. LogErrorTrace(__FILE__, __LINE__, _T("DeleteWorkingSample: failed to create pointer."));
  653. return false;
  654. }
  655. bool bRet = false;
  656. bRet = pProjMgrFile->DeleteWorkingSample();
  657. return bRet;
  658. }
  659. CHoleBSEImgsListClr ^ CProjMgrClr::GetHoleBESImgList()
  660. {
  661. if (m_LpProjMgr == nullptr)
  662. {
  663. LogErrorTrace(__FILE__, __LINE__, _T("GetHoleBESImgList: invalid pointer."));
  664. return nullptr;
  665. }
  666. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  667. ASSERT(pProjMgrFile);
  668. if (!pProjMgrFile)
  669. {
  670. LogErrorTrace(__FILE__, __LINE__, _T("GetHoleBESImgList: failed to create pointer."));
  671. return nullptr;
  672. }
  673. auto imgList= pProjMgrFile->GetHoleBESImgList();
  674. auto imgs = gcnew CHoleBSEImgsListClr();
  675. for each(auto i in imgList)
  676. {
  677. imgs->Add(gcnew CHoleBSEImgClr(i));
  678. }
  679. return imgs;
  680. }
  681. // Sample hole BSE image list
  682. bool CProjMgrClr::SetHoleBESImgList(CHoleBSEImgsListClr^ a_listHoleBSEImg, bool a_bClear)
  683. {
  684. if (m_LpProjMgr == nullptr)
  685. {
  686. LogErrorTrace(__FILE__, __LINE__, _T("SetHoleBESImgList: invalid pointer."));
  687. return false;
  688. }
  689. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  690. ASSERT(pProjMgrFile);
  691. if (!pProjMgrFile)
  692. {
  693. LogErrorTrace(__FILE__, __LINE__, _T("SetHoleBESImgList: failed to create pointer."));
  694. return false;
  695. }
  696. ASSERT(a_listHoleBSEImg);
  697. if (!a_listHoleBSEImg)
  698. {
  699. LogErrorTrace(__FILE__, __LINE__, _T("SetHoleBESImgList: invalid list pointer."));
  700. return false;
  701. }
  702. CHoleBSEImgsList listHoleBSEImg;
  703. listHoleBSEImg.clear();
  704. for (int i = 0; i < a_listHoleBSEImg->Count; i++)
  705. {
  706. CHoleBSEImgPtr pHoleBSEImg = a_listHoleBSEImg[i]->GetHoleBSEImgPtr();
  707. ASSERT(pHoleBSEImg);
  708. if (!pHoleBSEImg)
  709. {
  710. LogErrorTrace(__FILE__, __LINE__, _T("SetHoleBESImgList: invalid list pointer."));
  711. return false;
  712. }
  713. listHoleBSEImg.push_back(pHoleBSEImg);
  714. }
  715. pProjMgrFile->SetHoleBESImgList(listHoleBSEImg, a_bClear);
  716. return true;
  717. }
  718. CSTDItemsListClr ^ CProjMgrClr::GetSysSTDItemList()
  719. {
  720. if (m_LpProjMgr == nullptr)
  721. {
  722. LogErrorTrace(__FILE__, __LINE__, _T("GetSysSTDItemList: invalid pointer."));
  723. return nullptr;
  724. }
  725. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  726. ASSERT(pProjMgrFile);
  727. if (!pProjMgrFile)
  728. {
  729. LogErrorTrace(__FILE__, __LINE__, _T("GetSysSTDItemList: failed to create pointer."));
  730. return nullptr;
  731. }
  732. auto stdList= pProjMgrFile->GetSysSTDItem();
  733. auto stds = gcnew CSTDItemsListClr();
  734. for each (auto s in stdList)
  735. {
  736. stds->Add(gcnew CSTDItemClr(s));
  737. }
  738. return stds;
  739. }
  740. bool CProjMgrClr::SetSTDItemList(CSTDItemsListClr^ a_listSysSTDItem, bool a_bClear)
  741. {
  742. if (m_LpProjMgr == nullptr)
  743. {
  744. LogErrorTrace(__FILE__, __LINE__, _T("SetSTDItemList: invalid pointer."));
  745. return false;
  746. }
  747. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  748. ASSERT(pProjMgrFile);
  749. if (!pProjMgrFile)
  750. {
  751. LogErrorTrace(__FILE__, __LINE__, _T("SetSTDItemList: failed to create pointer."));
  752. return false;
  753. }
  754. ASSERT(a_listSysSTDItem);
  755. if (!a_listSysSTDItem)
  756. {
  757. LogErrorTrace(__FILE__, __LINE__, _T("SetSTDItemList: invalid list pointer."));
  758. return false;
  759. }
  760. CSTDItemsList listSTDItem;
  761. listSTDItem.clear();
  762. for (int i = 0; i < a_listSysSTDItem->Count; i++)
  763. {
  764. CSTDItemPtr pSTDItem = a_listSysSTDItem[i]->GetSTDItemPtr();
  765. ASSERT(pSTDItem);
  766. if (!pSTDItem)
  767. {
  768. LogErrorTrace(__FILE__, __LINE__, _T("SetSTDItemList: invalid list pointer."));
  769. return false;
  770. }
  771. listSTDItem.push_back(pSTDItem);
  772. }
  773. return pProjMgrFile->SetSysSTDItem(listSTDItem, a_bClear);
  774. }
  775. CGenParamClr^ CProjMgrClr::GetGenParam()
  776. {
  777. if (m_LpProjMgr == nullptr)
  778. {
  779. LogErrorTrace(__FILE__, __LINE__, _T("GetGenParam: invalid pointer."));
  780. return nullptr;
  781. }
  782. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  783. ASSERT(pProjMgrFile);
  784. if (!pProjMgrFile)
  785. {
  786. LogErrorTrace(__FILE__, __LINE__, _T("GetGenParam: failed to create pointer."));
  787. return nullptr;
  788. }
  789. COTSGeneralParametersPtr pGenParam = pProjMgrFile->GetGenParam();
  790. ASSERT(pGenParam);
  791. if (!pGenParam)
  792. {
  793. LogErrorTrace(__FILE__, __LINE__, _T("GetGenParam: failed to create pointer."));
  794. return nullptr;
  795. }
  796. CGenParamClr^ pGenParamClr = gcnew CGenParamClr(pGenParam);
  797. return pGenParamClr;
  798. }
  799. // set general parameter
  800. void CProjMgrClr::SetGenParam(CGenParamClr^ a_pGenParam)
  801. {
  802. if (m_LpProjMgr == nullptr)
  803. {
  804. LogErrorTrace(__FILE__, __LINE__, _T("SetGenParam: invalid pointer."));
  805. return;
  806. }
  807. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  808. ASSERT(pProjMgrFile);
  809. if (!pProjMgrFile)
  810. {
  811. LogErrorTrace(__FILE__, __LINE__, _T("SetGenParam: failed to create pointer."));
  812. return;
  813. }
  814. ASSERT(a_pGenParam);
  815. if (!a_pGenParam)
  816. {
  817. LogErrorTrace(__FILE__, __LINE__, _T("SetGenParam: invalid general param pointer."));
  818. return;
  819. }
  820. pProjMgrFile->SetGenParam ( a_pGenParam->GetCOTSGeneralParametersPtr ());
  821. }
  822. COTSImgScanPrmClr^ CProjMgrClr::GetImageScanParam()
  823. {
  824. if (m_LpProjMgr == nullptr)
  825. {
  826. LogErrorTrace(__FILE__, __LINE__, _T("GetImageScanParam: invalid pointer."));
  827. return nullptr;
  828. }
  829. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  830. ASSERT(pProjMgrFile);
  831. if (!pProjMgrFile)
  832. {
  833. LogErrorTrace(__FILE__, __LINE__, _T("GetImageScanParam: failed to create pointer."));
  834. return nullptr;
  835. }
  836. auto p = pProjMgrFile->GetImageScanParam();
  837. ASSERT(p);
  838. if (!p)
  839. {
  840. LogErrorTrace(__FILE__, __LINE__, _T("GetImageScanParam: failed to create pointer."));
  841. return nullptr;
  842. }
  843. COTSImgScanPrmClr^ pClr = gcnew COTSImgScanPrmClr(p);
  844. return pClr;
  845. }
  846. // set image scan parameter
  847. void CProjMgrClr::SetImageScanParam(COTSImgScanPrmClr^ a_pImageScanParam)
  848. {
  849. if (m_LpProjMgr == nullptr)
  850. {
  851. LogErrorTrace(__FILE__, __LINE__, _T("SetImageScanParam: invalid pointer."));
  852. return;
  853. }
  854. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  855. ASSERT(pProjMgrFile);
  856. if (!pProjMgrFile)
  857. {
  858. LogErrorTrace(__FILE__, __LINE__, _T("SetImageScanParam: failed to create pointer."));
  859. return;
  860. }
  861. ASSERT(a_pImageScanParam);
  862. if (!a_pImageScanParam)
  863. {
  864. LogErrorTrace(__FILE__, __LINE__, _T("SetImageScanParam: invalid image scan pointer."));
  865. return;
  866. }
  867. pProjMgrFile->SetImageScanParam( a_pImageScanParam->GetImgScanPrmPtr());
  868. }
  869. COTSImgProcPrmClr^ CProjMgrClr::GetImageProcParam()
  870. {
  871. if (m_LpProjMgr == nullptr)
  872. {
  873. LogErrorTrace(__FILE__, __LINE__, _T("GetImageProcParam: invalid pointer."));
  874. return nullptr;
  875. }
  876. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  877. ASSERT(pProjMgrFile);
  878. if (!pProjMgrFile)
  879. {
  880. LogErrorTrace(__FILE__, __LINE__, _T("GetImageProcParam: failed to create pointer."));
  881. return nullptr;
  882. }
  883. auto p = pProjMgrFile->GetImageProcParam();
  884. ASSERT(p);
  885. if (!p)
  886. {
  887. LogErrorTrace(__FILE__, __LINE__, _T("GetImageProcParam: failed to create pointer."));
  888. return nullptr;
  889. }
  890. COTSImgProcPrmClr^ pClr = gcnew COTSImgProcPrmClr(p);
  891. return pClr;
  892. }
  893. // set image process parameter
  894. void CProjMgrClr::SetImageProcParam(COTSImgProcPrmClr^ a_pImageProcParam)
  895. {
  896. if (m_LpProjMgr == nullptr)
  897. {
  898. LogErrorTrace(__FILE__, __LINE__, _T("SetImageProcParam: invalid pointer."));
  899. return;
  900. }
  901. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  902. ASSERT(pProjMgrFile);
  903. if (!pProjMgrFile)
  904. {
  905. LogErrorTrace(__FILE__, __LINE__, _T("SetImageProcParam: failed to create pointer."));
  906. return;
  907. }
  908. ASSERT(a_pImageProcParam);
  909. if (!a_pImageProcParam)
  910. {
  911. LogErrorTrace(__FILE__, __LINE__, _T("SetImageProcParam: invalid image process pointer."));
  912. return;
  913. }
  914. pProjMgrFile->SetImageProcParam( a_pImageProcParam->GetImgPrcPrmPtr());
  915. }
  916. COTSXRayPrmClr^ CProjMgrClr::GetXRayParam()
  917. {
  918. if (m_LpProjMgr == nullptr)
  919. {
  920. LogErrorTrace(__FILE__, __LINE__, _T("GetXRayParam: invalid pointer."));
  921. return nullptr;
  922. }
  923. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  924. ASSERT(pProjMgrFile);
  925. if (!pProjMgrFile)
  926. {
  927. LogErrorTrace(__FILE__, __LINE__, _T("GetXRayParam: failed to create pointer."));
  928. return nullptr;
  929. }
  930. auto p = pProjMgrFile->GetXRayParam();
  931. ASSERT(p);
  932. if (!p)
  933. {
  934. LogErrorTrace(__FILE__, __LINE__, _T("GetXRayParam: failed to create pointer."));
  935. return nullptr;
  936. }
  937. COTSXRayPrmClr^ pClr = gcnew COTSXRayPrmClr(p);
  938. return pClr;
  939. }
  940. // set XRay parameter
  941. void CProjMgrClr::SetXRayParam(COTSXRayPrmClr^ a_pXRayParam)
  942. {
  943. if (m_LpProjMgr == nullptr)
  944. {
  945. LogErrorTrace(__FILE__, __LINE__, _T("SetXRayParam: invalid pointer."));
  946. return;
  947. }
  948. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  949. ASSERT(pProjMgrFile);
  950. if (!pProjMgrFile)
  951. {
  952. LogErrorTrace(__FILE__, __LINE__, _T("SetXRayParam: failed to create pointer."));
  953. return;
  954. }
  955. ASSERT(a_pXRayParam);
  956. if (!a_pXRayParam)
  957. {
  958. LogErrorTrace(__FILE__, __LINE__, _T("SetXRayParam: invalid x ray param pointer."));
  959. return;
  960. }
  961. pProjMgrFile->SetXRayParam ( a_pXRayParam->GetCOTSXRayPrmPtr());
  962. }
  963. // get modify flag
  964. bool CProjMgrClr::IsModified()
  965. {
  966. if (m_LpProjMgr == nullptr)
  967. {
  968. LogErrorTrace(__FILE__, __LINE__, _T("GetSysSTDItemList: invalid pointer."));
  969. return false;
  970. }
  971. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  972. ASSERT(pProjMgrFile);
  973. if (!pProjMgrFile)
  974. {
  975. LogErrorTrace(__FILE__, __LINE__, _T("GetSysSTDItemList: failed to create pointer."));
  976. return false;
  977. }
  978. return pProjMgrFile->IsModified();
  979. }
  980. // set modify flag
  981. void CProjMgrClr::SetModify(bool a_bModify)
  982. {
  983. if (m_LpProjMgr == nullptr)
  984. {
  985. LogErrorTrace(__FILE__, __LINE__, _T("SetModify: invalid pointer."));
  986. return;
  987. }
  988. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  989. ASSERT(pProjMgrFile);
  990. if (!pProjMgrFile)
  991. {
  992. LogErrorTrace(__FILE__, __LINE__, _T("SetModify: failed to create pointer."));
  993. return;
  994. }
  995. pProjMgrFile->SetModify(a_bModify);
  996. }
  997. // set path name
  998. String^ CProjMgrClr::GetPathName()
  999. {
  1000. if (m_LpProjMgr == nullptr)
  1001. {
  1002. LogErrorTrace(__FILE__, __LINE__, _T("GetPathName: invalid pointer."));
  1003. return nullptr;
  1004. }
  1005. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1006. ASSERT(pProjMgrFile);
  1007. if (!pProjMgrFile)
  1008. {
  1009. LogErrorTrace(__FILE__, __LINE__, _T("GetPathName: failed to create pointer."));
  1010. return nullptr;
  1011. }
  1012. CString sPathName = pProjMgrFile->GetPathName();
  1013. String^ PathNameClr = gcnew String(sPathName);
  1014. return PathNameClr;
  1015. }
  1016. void CProjMgrClr::SetPathName(String^ a_strPathName)
  1017. {
  1018. if (m_LpProjMgr == nullptr)
  1019. {
  1020. LogErrorTrace(__FILE__, __LINE__, _T("SetPathName: invalid pointer."));
  1021. return;
  1022. }
  1023. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1024. ASSERT(pProjMgrFile);
  1025. if (!pProjMgrFile)
  1026. {
  1027. LogErrorTrace(__FILE__, __LINE__, _T("SetPathName: failed to create pointer."));
  1028. return;
  1029. }
  1030. pProjMgrFile->SetPathName(a_strPathName);
  1031. }
  1032. String^ CProjMgrClr::GetFileName()
  1033. {
  1034. if (m_LpProjMgr == nullptr)
  1035. {
  1036. LogErrorTrace(__FILE__, __LINE__, _T("GetFileName: invalid pointer."));
  1037. return nullptr;
  1038. }
  1039. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1040. ASSERT(pProjMgrFile);
  1041. if (!pProjMgrFile)
  1042. {
  1043. LogErrorTrace(__FILE__, __LINE__, _T("GetFileName: failed to create pointer."));
  1044. return nullptr;
  1045. }
  1046. CString sName = pProjMgrFile->GetFileName();
  1047. String^ sNameClr = gcnew String(sName);
  1048. return sNameClr;
  1049. }
  1050. bool CProjMgrClr::IsValidSampleName(String^ a_sName)
  1051. {
  1052. if (m_LpProjMgr == nullptr)
  1053. {
  1054. LogErrorTrace(__FILE__, __LINE__, _T("IsValidSampleName: invalid pointer."));
  1055. return false;
  1056. }
  1057. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1058. ASSERT(pProjMgrFile);
  1059. if (!pProjMgrFile)
  1060. {
  1061. LogErrorTrace(__FILE__, __LINE__, _T("IsValidSampleName: failed to create pointer."));
  1062. return false;
  1063. }
  1064. ASSERT(a_sName);
  1065. if (!a_sName)
  1066. {
  1067. LogErrorTrace(__FILE__, __LINE__, _T("IsValidSampleName: invalid pointer."));
  1068. return false;
  1069. }
  1070. bool bRet = pProjMgrFile->IsValidSampleName(a_sName);
  1071. return bRet;
  1072. }
  1073. //get param file name
  1074. bool CProjMgrClr::GetParamFileList(int% a_nPos, System::Collections::Generic::List<String^>^% a_listParamName)
  1075. {
  1076. if (m_LpProjMgr == nullptr)
  1077. {
  1078. LogErrorTrace(__FILE__, __LINE__, _T("GetParamFileList: invalid pointer."));
  1079. return false;
  1080. }
  1081. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1082. ASSERT(pProjMgrFile);
  1083. if (!pProjMgrFile)
  1084. {
  1085. LogErrorTrace(__FILE__, __LINE__, _T("GetParamFileList: failed to create pointer."));
  1086. return false;
  1087. }
  1088. ASSERT(a_listParamName);
  1089. if (!a_listParamName)
  1090. {
  1091. LogErrorTrace(__FILE__, __LINE__, _T("GetParamFileList: invalid list pointer."));
  1092. return false;
  1093. }
  1094. int nPos;
  1095. std::vector<CString> listSTDLibName;
  1096. bool bRet = pProjMgrFile->GetParamFileList(nPos, listSTDLibName);
  1097. a_nPos = nPos;
  1098. for (auto sParamName : listSTDLibName)
  1099. {
  1100. String^ sParamNameClr = gcnew String(sParamName);
  1101. a_listParamName->Add(sParamNameClr);
  1102. }
  1103. return bRet;
  1104. }
  1105. // change STD
  1106. bool CProjMgrClr::ChangeParamFromList(int a_nPos)
  1107. {
  1108. if (m_LpProjMgr == nullptr)
  1109. {
  1110. LogErrorTrace(__FILE__, __LINE__, _T("ChangeParamFromList: invalid pointer."));
  1111. return false;
  1112. }
  1113. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1114. ASSERT(pProjMgrFile);
  1115. if (!pProjMgrFile)
  1116. {
  1117. LogErrorTrace(__FILE__, __LINE__, _T("ChangeParamFromList: failed to create pointer."));
  1118. return false;
  1119. }
  1120. bool bRet = pProjMgrFile->ChangeParamFromList(a_nPos);
  1121. return bRet;
  1122. }
  1123. // get STD file list
  1124. bool CProjMgrClr::GetSTDFileList(int% a_nPos, System::Collections::Generic::List<String^>^ % a_listSTDLibName)
  1125. {
  1126. if (m_LpProjMgr == nullptr)
  1127. {
  1128. LogErrorTrace(__FILE__, __LINE__, _T("GetSTDFileList: invalid pointer."));
  1129. return false;
  1130. }
  1131. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1132. ASSERT(pProjMgrFile);
  1133. if (!pProjMgrFile)
  1134. {
  1135. LogErrorTrace(__FILE__, __LINE__, _T("GetSTDFileList: failed to create pointer."));
  1136. return false;
  1137. }
  1138. ASSERT(a_listSTDLibName);
  1139. if (!a_listSTDLibName)
  1140. {
  1141. LogErrorTrace(__FILE__, __LINE__, _T("GetSTDFileList: invalid list pointer."));
  1142. return false;
  1143. }
  1144. int nPos;
  1145. std::vector<CString> listSTDLibName;
  1146. bool bRet = pProjMgrFile->GetSTDFileList(nPos, listSTDLibName);
  1147. a_nPos = nPos;
  1148. for (auto sSTDName : listSTDLibName)
  1149. {
  1150. String^ sSTDNameClr = gcnew String(sSTDName);
  1151. a_listSTDLibName->Add(sSTDNameClr);
  1152. }
  1153. return bRet;
  1154. }
  1155. // change STD
  1156. bool CProjMgrClr::ChangeSTDFromList(int a_nPos)
  1157. {
  1158. if (m_LpProjMgr == nullptr)
  1159. {
  1160. LogErrorTrace(__FILE__, __LINE__, _T("GetSysSTDItemList: invalid pointer."));
  1161. return false;
  1162. }
  1163. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1164. ASSERT(pProjMgrFile);
  1165. if (!pProjMgrFile)
  1166. {
  1167. LogErrorTrace(__FILE__, __LINE__, _T("ChangeSTDFromList: failed to create pointer."));
  1168. return false;
  1169. }
  1170. bool bRet = pProjMgrFile->ChangeSTDFromList(a_nPos);
  1171. return bRet;
  1172. }
  1173. // get sample measured list
  1174. bool CProjMgrClr::GetMsredSampleList(COTSSamplesListClr^ % a_listMsredSample)
  1175. {
  1176. if (m_LpProjMgr == nullptr)
  1177. {
  1178. LogErrorTrace(__FILE__, __LINE__, _T("GetMsredSampleList: invalid pointer."));
  1179. return false;
  1180. }
  1181. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1182. ASSERT(pProjMgrFile);
  1183. if (!pProjMgrFile)
  1184. {
  1185. LogErrorTrace(__FILE__, __LINE__, _T("GetMsredSampleList: failed to create pointer."));
  1186. return false;
  1187. }
  1188. ASSERT(a_listMsredSample);
  1189. if (!a_listMsredSample)
  1190. {
  1191. LogErrorTrace(__FILE__, __LINE__, _T("GetMsredSampleList: invalid list pointer."));
  1192. return false;
  1193. }
  1194. COTSSamplesList listMsrdSample;
  1195. bool bRet = pProjMgrFile->GetMsredSampleList(listMsrdSample);
  1196. for (auto pSample : listMsrdSample)
  1197. {
  1198. COTSSampleClr^ pSampleClr = gcnew COTSSampleClr(pSample);
  1199. a_listMsredSample->Add(pSampleClr);
  1200. }
  1201. return bRet;
  1202. }
  1203. CDomainClr^ CProjMgrClr::CalculateMsrArea(CHoleClr^ a_pHole)
  1204. {
  1205. if (m_LpProjMgr == nullptr)
  1206. {
  1207. LogErrorTrace(__FILE__, __LINE__, _T("CalculateMsrArea: invalid pointer."));
  1208. return nullptr;
  1209. }
  1210. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1211. ASSERT(pProjMgrFile);
  1212. if (!pProjMgrFile)
  1213. {
  1214. LogErrorTrace(__FILE__, __LINE__, _T("CalculateMsrArea: failed to create pointer."));
  1215. return nullptr;
  1216. }
  1217. ASSERT(a_pHole);
  1218. if (!a_pHole)
  1219. {
  1220. LogErrorTrace(__FILE__, __LINE__, _T("CalculateMsrArea: invalid hole pointer."));
  1221. return nullptr;
  1222. }
  1223. CHolePtr pHole = a_pHole->GetHolePtr();
  1224. ASSERT(pHole);
  1225. if (!pHole)
  1226. {
  1227. LogErrorTrace(__FILE__, __LINE__, _T("CalculateMsrArea: invalid hole pointer."));
  1228. return nullptr;
  1229. }
  1230. CDomainPtr pDomain = pProjMgrFile->CalculateMsrArea(pHole);
  1231. CDomainClr^ DomainClr = gcnew CDomainClr(pDomain);
  1232. return DomainClr;
  1233. }
  1234. bool CProjMgrClr::RemoveBackGround(CBSEImgClr^ a_pImgIn, COTSImgProcPrmClr^ a_pImgProcessParam, CBSEImgClr^ % a_pImgOut)
  1235. {
  1236. if (m_LpProjMgr == nullptr)
  1237. {
  1238. LogErrorTrace(__FILE__, __LINE__, _T("RemoveBackGround: invalid pointer."));
  1239. return false;
  1240. }
  1241. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1242. ASSERT(pProjMgrFile);
  1243. if (!pProjMgrFile)
  1244. {
  1245. LogErrorTrace(__FILE__, __LINE__, _T("RemoveBackGround: failed to create pointer."));
  1246. return false;
  1247. }
  1248. ASSERT(a_pImgIn);
  1249. if (!a_pImgIn)
  1250. {
  1251. LogErrorTrace(__FILE__, __LINE__, _T("RemoveBackGround: invalid pointer."));
  1252. return false;
  1253. }
  1254. CBSEImgPtr pImgIn = a_pImgIn->GetBSEImgPtr();
  1255. ASSERT(pImgIn);
  1256. if (!pImgIn)
  1257. {
  1258. LogErrorTrace(__FILE__, __LINE__, _T("RemoveBackGround: can't generate image in pointer."));
  1259. return false;
  1260. }
  1261. ASSERT(a_pImgProcessParam);
  1262. if (!a_pImgProcessParam)
  1263. {
  1264. LogErrorTrace(__FILE__, __LINE__, _T("RemoveBackGround: invalid pointer."));
  1265. return false;
  1266. }
  1267. COTSImageProcessParamPtr pImageProcessParam = a_pImgProcessParam->GetImgPrcPrmPtr();
  1268. ASSERT(pImageProcessParam);
  1269. if (!pImageProcessParam)
  1270. {
  1271. LogErrorTrace(__FILE__, __LINE__, _T("RemoveBackGround: can't generate image."));
  1272. return false;
  1273. }
  1274. CBSEImgPtr pImgOut = CBSEImgPtr(new CBSEImg());
  1275. bool bRet = pProjMgrFile->RemoveBackGround(pImgIn, pImageProcessParam, pImgOut);
  1276. if (!bRet)
  1277. {
  1278. LogErrorTrace(__FILE__, __LINE__, _T("RemoveBackGround: remove background failed."));
  1279. return false;
  1280. }
  1281. a_pImgOut = gcnew CBSEImgClr(pImgOut);
  1282. ASSERT(a_pImgOut);
  1283. if (!a_pImgOut)
  1284. {
  1285. LogErrorTrace(__FILE__, __LINE__, _T("RemoveBackGround: remove background image invalid."));
  1286. return false;
  1287. }
  1288. return bRet;
  1289. }
  1290. bool CProjMgrClr::GetSystemSTDLib(int a_nPacketId)
  1291. {
  1292. if (m_LpProjMgr == nullptr)
  1293. {
  1294. LogErrorTrace(__FILE__, __LINE__, _T("GetSystemSTDLib: invalid pointer."));
  1295. return false;
  1296. }
  1297. COTSProjMgrFilePtr pProjMgrFile = GetCProjMgrPtr();
  1298. ASSERT(pProjMgrFile);
  1299. if (!pProjMgrFile)
  1300. {
  1301. LogErrorTrace(__FILE__, __LINE__, _T("GetSystemSTDLib: failed to create pointer."));
  1302. return false;
  1303. }
  1304. bool bRet = pProjMgrFile->GetSystemSTDLib((OTS_SOFT_PACKAGE_ID)a_nPacketId);
  1305. if (!bRet)
  1306. {
  1307. LogErrorTrace(__FILE__, __LINE__, _T("GetSystemSTDLib: remove background failed."));
  1308. return false;
  1309. }
  1310. return bRet;
  1311. }
  1312. }