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.