Popis testeru ComAp
ChangeLog
| Datum | Kdo | Notes |
|---|---|---|
| 18.11.2020 | MG | První verze |
| 1.2.2021 | MG | Dokončení + úprava podle toho co si NVision vymyslel |
Základní popis funkce pracoviště
Na pracovišti testeru ComAp, probíhá testování dílů pro zákazníka ComAp. Průběh práce je klasický, tedy nejprve je nutné aby se operátor přihlásil, následně načetl výrobní objednávku a poté zvolil operaci. Následně je uživatel vyzván k testování jednotlivých výrobků, což provádí na sw který není xTrace, je nutné podotknout, že musí zadat hodnotu HW verze testovaného produktu, jenž bude později sloužit ke kontrole. Po dokončení testu se vygeneruje soubor, který je pomocí modulu NVCZ TesterComap Parser xTrace zpracováván. Především se z něj získá sériové číslo dílu, které je posláno partstartu a podle výsledku testu v souboru a několika dalších níže popsaných kontrol, mu modul NVCZ TesterComap SaveProcessData přiřadí stav z množiny {shoda, neshoda}, čímž práce s tímto dílem končí a čekáme na další soubor.
NVCZ TesterComap Parser
Modul jehož náplní práce je zpracovávat log z testeru ComAp.
Popis jednotlivých parametrů modulu
| Název | Popis |
|---|---|
| KatalogParamComApUserValue | Název katalogového parametru, který obsahuje definici hodnot, jenž jsou potřeba uložit jako uživatelská data. |
| KatalogParamHwVersion | Název katalogového parametru jobu, který specifikuje hw verzi produktu. |
| CheckHwVersion | Jak se má kontrolovat Hw verze. Hodnoty: "no" - nekontrolovat, "beforePartStart" - před PartStartem, "afterPartStart" - po PartStartu |
| NotEqualHwVersionAction | Co se má stát pokud Hw verze nebudou odpovídat? Hodnoty: error - vyhodit chybu a díl nezpracovat/hodit do neshody (podle parametru CheckHwVersion), check - pouze upozornit hláškou bez návaznosti na shodu/neshodu dílu. |
| BackupForTestReport | Kdy se má kopírovat log testu pro test report. Hodnoty: "beforePartStart" - před PartStartem, "afterPartStart" - po PartStartu |
| KatalogParamTestReportCopyFile | Název katalogového parametru, který specifikuje zda dojde či nedojde k přesunu souborů pro test report. |
| CustomerReportPath | Cesta ke složce do které budou přesunuty soubory pro test report. |
Funkce StartLevel
Klasicky se zde hlídá zda nedošlo ke změně job či operace. Dále má na starosti přečtení katalogových parametrů produktu, jejichž názvy jsou určeny parametry modulu KatalogParamComApUserValue, KatalogParamHwVersion a KatalogParamTestReportCopyFile. Načtený katalogový parametr pro uživatelskou vstupní šarži se následně pomocí metody Split(',') rozdělí na jednotlivé hodnoty jejichž hodnoty chceme uložit. Z těchto rozdělených hodnot se vytvoří regexy a vytvoří se list, jehož počet prvků bude odpovídat počtu prvků získaných rozdělením, prozatím ale budou prázdné. U hodnoty katalogového parametru pro HW verzi se pomocí metody Replace('.', ',') změní tečka na čárku, jenž se vyskytuje v log souborech. Poslední katalogový parametr pouze udává zda má či nemá dojít k přesunutí log souborů do zvláštní složky jenž je zadána parametrem CustomerReportPath.
Popis jednotlivých metod modulu
public override SGLMState HandlePortData(SGTreeModuleData mdata, SGReceivedData data)
Provádí vyparserování koncovky souboru, pro použití správné metody pro získání dat ze souboru. Dále volá metodu IsFileParsed(), pro určení co se bude dít dále a nakonec volá metodu BackupFileForTestReport().
private bool CheckSerialNumber(string barcode)
Metoda pro kontrolu, že ze souboru bylo získáno sériové číslo a ne nějaká blbost. Kontroluje první parametr na hodnoty string.Empty, "N/A" a "99999999", což jsou hodnoty jenž byly z testovacích dat získány jako chybné sériové čísla. Pokud kontrola projde tak vrací true, jinak false.
public SGLMState CheckHwVersion()
Metoda, která pokud se hodnota parametru CheckHwVersion__tohoto modulu rovná hodnotě __checkHwVersion.beforePartStart porovná zda se řetezec získaný ze souboru rovná řetězci získanému z katalogového parametru, pokud ano tak vrací SGLMState.OK. Pokud se hodnoty nerovnají tak se vypíše zpráva upozorňující na tuto skutečnost a podle hodnoty parametru NotEqualHwVersionAction se určí návratová hodnota, konkrétně při NotEqualHwVersionAction == notEqualHwVersionAction.error se vrátí SGLMState.Handled | SGLMState.Fail | SGLMState.ResetLevel, jinak se vrátí SGLMState.OK.
public SGLMState IsFileParsed(bool parseResult, string filePath)
Metoda kontrolující zda byl soubor korektně zpracován. Dále možná provádí kontrolu HW verze produktu. Vrací kombinaci SGLMStatů, jenž odpovídá tomu, co se bude dále v programu dít. Pokud je návratová hodnota SGLMState.Handled | SGLMState.OK, tak dochází k přeposlání sériového čísla modulu PartStart. Je nutné upozornit, že pokud byl zpracován xml soubor, tak je kontrolováno zda nebyl vyparserován atribut sf-id-string nebo sf-sn, pokud ano tak je hodnota tohoto atributu brána jako sériové číslo, pokud ne tak se jako sériové číslo bere hodnota atributu sn.
private void BackupFileForTestReport(string filePath)
Metoda pro kopírování souboru s logem pokud je hodnota fileData.FileBackup rovná testReportBackup.beforePartStart, tak může dojít k překopírování souboru.
NVCZ TesterComap SaveProcessData
Modul jehož náplní práce je uložit procesní data, uložit data pro uživatelskou vstupní šarži a nastavit dílu správný stav.
Popis jednotlivých parametrů modulu
Modul sám o sobě žádné parametry nemá, ale přebírá některé parametry z modulu NVCZ TesterComap Parser.
Funkce StartLevel
Kontroluje zda je díl, který se nachází v DOPartu nastartovaný, pokud ano tak si přepošle SN. S variantou že by díl nastartovaný nebyl není počítáno.
Popis jednotlivých metod modulu
private DOUData GetUserInputBatch(string userBatchValues, long userWorkGroup, string typeOfInputBatch, string placeCode)
Metoda snažící se získat korektní uživatelskou vstupní šarži. Pokud se ji nepodaří získat tak nejprve se snaží o její založení pomocí metody CreateUserInputBatch z inputBatchService. Pokud se ji ani poté nepodaří založit tak je navrácen null jinak je vrácen objekt typu DOUData.
private void SaveProcessData(TesterComap_Result parsedData, bool isHwVersionCorrect = true)
Metoda pro nastavení korektního stavu dílu. Rozhoduje se podle výsledku testu a podle toho zda kontrola HW verze dopadla úspěšně, pokud kontrola probíhala v tomto modulu.
private void AssignUserBatchValues()
Metoda, jenž páruje hodnoty pro vlastnosti, které byly známy že budou potřeba ukládat v době psaní tohoto modulu (říjen 2020), proto na získání jejich hodnot byly použity sofistikovanější metody u kterých je větší šance na úspěšné získání správných hodnot. Tato metoda takto získané informace správně napáruje ke konkrétním věcem z uživatelské vstupní šarže, pokud hodnoty nejsou prázdné.
private void CreateAndAssignUserBatchValues()
Metoda pro řízení práce s uživatelskou vstupní šarží. Řeší zakládání a vyhledávání uživatelské šarže, následně do ní vloží požadovaná data a uloží je.
public bool CheckHwVersion()
Metoda, která pokud se hodnota parametru CheckHwVersion modulu NVCZ TesterComap Parser rovná hodnotě checkHwVersion.afterPartStart porovná zda se řetězec získaný ze souboru rovná řetězci získanému z katalogového parametru, pokud ano tak vrací true. Pokud se hodnoty nerovnají tak se vypíše zpráva upozorňující na tuto skutečnost a podle hodnoty parametru NotEqualHwVersionAction se určí návratová hodnota, konkrétně při NotEqualHwVersionAction == notEqualHwVersionAction.error se vrátí false, jinak se vrátí true.
private void BackupFileForTestReport(string filePath)
Metoda pro kopírování souboru s logem pokud je hodnota fileData.FileBackup rovná testReportBackup.afterPartStart, tak může dojít k překopírování souboru.
TesterComap_Result
Následující kapitola popisuje třídu pro uchování výsledků získaných z logu testeru ComAp.
Seznam public properties
| Typ | Název | Popis |
|---|---|---|
| string | TestResult | Výsledek testu získaný ze souboru |
| bool | Result | Bool hodnota toho jestli test dopadl OK nebo NOK |
| DateTime | Dt | Datum a čas provedení testu |
| string | User | Kód uživatele z logu |
| string | ProgramName | Jméno programu z logu |
| string | HwVersion | Hodnota HW verze produktu |
| string | SerialNumber | Sériové číslo produktu |
| string | Software | Hodnota software získaná z logu |
| string | Testset | Hodnota testset získaná z logu |
| DateTime | TestDuration | Délka testu v jednotkách času |
| string | ProductCode | Kód produktu |
| string | MacAddress | Mac adresa výrobku |
| string | ProductName | Jméno produktu |
| string | TestDuration | Doba trvání v řetězci |
| string | FileContent | Celkový obsah log souboru |
| List\<string> | UserBatchValues | List s vlastnostmi pro které chceme získat hodnoty |
| string | UserBatchValuesString | Vlastnosti pro které chceme získat hodnoty v celku |
| List\<string> | UserValues | List pro získané hodnoty |
| string | SfSn | Sériové číslo zákazníka |
| string | SfIdString | Něco co chce zákazník |
| checkHwVersion | HwVersionCheck | Enum pro zjištění kde se má kontrolovat HW verze |
| string | HwVersionKatalogValue | Hodnota HW verze získaná z katalogového parametru produktu |
| notEqualHwVersionAction | HwVersionActionNotEqual | Enum určující co se má stát pokud HW verze nejsou stejné |
| testReportBackup | FileBackup | Enum pro zjištění kdy se má kopírovat soubor pro test report |
| bool | CopyFileTestReport | Hodnota určující zda se bude kopírovat log pro test report |
| string | TestReportFilePath | Cesta ke složce do které se má nakopírovat log pro test report |
| string | LogFilePath | Cesta k aktuálně zpracovávanému souboru |
Popis některých metod
CreateRegexes()
Metoda pro vytvoření regexů, pomocí nichž se matchují hodnoty pro parametry určené jako uživatelská vstupní šarže.
ParseXmlFile(string path)
Metoda starající se o zpracování souboru typu xml. Dělí se na dvě části, kde nejprve projde pomocí XDocument soubor a podle tagů získá požadované hodnoty. Poté probíhá druhý průchod souborem, kde se hledají hodnoty pro uživatelskou vstupní šarži (Pozn. autora: vím že to není optimální ale potřeboval jsem to rychle udělat a nechtěl jsem řešením strávit hromadu času).
ParseHtmlFile(string path)
Metoda provádějící průchod souborem typu html. Pomocí regulárních výrazů je soubor zpracován po řádcích a zároveň je kontrolováno zda neobsahuje některá data pro uživatelskou vstupní šarži (pomocí regexů získaných metodou CreateRegexes).
Ostatní metody v této třídě nejsou ničím významné a jejich pochopení by mělo být možné i bez popisu pouze z kódu dané metody.