Univarzální struktura - dokumentace
ChangeLog
| Datum | Kdo | Notes |
|---|---|---|
| 4.2.2022 | MG | První verze docky |
Smyslem tohoto dokumentu je vysvětlení univerzální struktury (dále v textu označována jako US). US jsou strukturovaná procesní data ve formátu JSON. Třídy definující US se v projektu xTrace.Core nacházejí v umístění SGCore/Model/UniversalParser.
Popis jednotlivých tříd
Následující kapitoly popisují třídy ze kterých se skládá US. Je velmi pravděpodobné, že každý tester nebude mít všechny hodnoty především ve třídě BusTestParameterResult vyplněné, protože takové věci vůbec nemusí testovat (např. PinNo, nebo limity)
BaseDefinition
Protože nebyla určena přímo pro univerzální strukturu tak se nachází v umístění SGCore/Model/ProcessData. Jedná se o třídu, která tvoří jádro fungování přeposílání dílů mezi jednotlivými pracovišti přes souborový systém. Jelikož bylo usouzeno že je dobré uchovat si informaci o tom, které pracoviště US vytvořilo potažmo zpracovalo, tak je tato třída využita jako základ US. Obsahuje dvě property typu Reader, které obsahují údaje WorkplaceID, WorkplaceCode, a DateTime.
UniversalParserDataDefinition
Jedná se o rozšíření třídy BaseDefinition o propertu typu ProcessData.
BaseUniversalParserDataDefinition
Abstraktní třída, která je základem pro třídy ProcessData, BusTestPartObject, BusTestReferenceResult, BusTestParameterResult tj. tyto třídy od ní dědí.
| Jméno | Datový Typ | Popis |
|---|---|---|
| Result | bool | Výsledek dané úrovně |
| Misc | string | Procesní data, která chceme uložit a nehodí se do žádné z přímo definovaných propert |
ProcessData
Datový typ obsahující všeobecné informace o proběhlém testu, kde nezáleží jestli byl testován panel, jedna pcb nebo více pcb.
| Jméno | Datový Typ | Popis |
|---|---|---|
| Product | string | Jméno produktu |
| ProgramName | string | Jméno programu |
| Side | string | Označení strany |
| DTS | DateTime | Datum a čas začátku testu |
| DTE | DateTime | Datum a čas konce testu |
| IsPanel | bool | Proměnná označující jestli se jedná o test panelu nebo se testují rozdělené pcb |
| NumOfPcbs | int | Počet testovaných pcb |
| NumOfOkPcbs | int | Počet pcb, jejichž test dopadl OK |
| NumOfNokPcbs | int | Počet pcb, jejichž test dopadl NOK |
| ResultFromLog | string | Řetězec označující výsledek testu od stroje |
| PathToOriginalFile | string | Cesta na které byl vytvořen originální soubor strojem |
| PathToBackupedFile | string | Cesta na kterou Externí parser vytvořil kopii originálního souboru |
| ResultsPath | string | Cesta k pomocným souborům týkající se daného testu (požadavek NVCZ než vycouvvali z realizace tohoto řešení na AOI Saki) |
| FilePosition | int | Pozice v souboru na kterém bylo dokončeno čtení údajů o testu dílů z tohoto souboru |
| MsgID | long | Číslo message, kterou má použít xTrace pro zalogování |
| MsgParams | string | Parametry, které má xTrace vloži do message |
| IsError | bool | Proměnná označující zda byla data o testu zpracována úspěšně |
| BusTestPartObject | Dictionary |
Kolekce objektů s informacemi o jednotlivých testovaných dílech |
| BusTestPartObjects | List |
Properta typu Get, která bere hodnotu z property BusTestPartObject a serializuje ji do XML |
UPOZORNĚNÍ: Pokud je properta ProcessData.IsPanel == true, pak je nutné mít v BusTestPartObject vložený objekt s TestIndex == 0, i přesto že bude prázdný (v boudoucnosti se to možná předělá aby to nebylo potřeba, ale v současné době je to takto)
BusTestPartObject
Obsahuje informace o jednom konkrétním testovaném díle. Platí že údaje týkající se panelu se zapisují na TestIndex == 0.
Jméno | Datový Typ | Popis |
--- | --- | ---
Barcode | string | Sériové číslo dílu |
TestIndex | int | Číslo označující index podle, kterého můžeme dohledat výsledky testů pro tento konkrétní díl |
IsBadmark | bool | Proměnná označující zda se jedná o badmark desku (užitečné především pro laser) |
BusTestReferenceResult | Dictionary
BusTestReferenceResult
Obsahuje informace o jedné konkrétní referenci jednoho dílu.
Jméno | Datový Typ | Popis |
--- | --- | ---
Position | string | Název testované reference |
BusTestParameterResult | List
BusTestParameterResult
Obsahuje informace o jednom konkrétním testu jedné reference. Jméno | Datový Typ | Popis | --- | --- | --- Name | string | Název/Označení testu | ParsedValue | string | Získaná hodnota testované věci | LowLimitMachine | string | Spodní limit hodnoty testované věci | HighLimitMachine | string | Horní limit hodnoty testované věci | TestResultMachine | string | Výsledek testu podle stroje | Image | string | Cesta na které se nachází obrázek (užitečné pro AOI) | ErrorCode | string | Označení chyby | PinNo | int | Pin, kterého se daný test týká |
Struktura US
- Reader
- Reader
- ProcessData
- Dictionary BusTestPartObject
- Dictionary BusTestReferenceResult
- List BusParameterResult
- Dictionary BusTestReferenceResult
- Dictionary BusTestPartObject
Věci, které je potřeba dodělat
Objekt, který bude mít informace o jednom testovaném dílu bez zbytečného balastu ohledně ostatních testovaných dílů
Protože od zákazníků existuje požadavek ukládat procesní data ke konkrétním dílům na panelu, tak je potřeba udělat další strukturu, která bude obsahovat jak obecné údaje, tak i údaje o konkrétním požadovaném dílu - možné řešení je rozdělit třídu ProcessData na dvě třídy, kde 1. třída bude obsahovat informace užitečné i pro jeden testovaný díl tj. DTS, DTE, cesty k souborům apod. Druhá třída bude dědit od první třídy a přidá ostatní property, které se vní nenachází. Dále vznikne ještě třetí třída, která bude také dědit od první třídy a bude pouze obsahovat Propertu typu BusTestPartObject, ve které bude informace o konkrétní desce.