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 | Kolekce objektů s informacemi o jednotlivých testovaných referencích na tomto díle | BusTestReferenceResultList | List | Properta typu Get, která bere hodnotu z property BusTestReferenceResult a serializuje ji do XML |

BusTestReferenceResult

Obsahuje informace o jedné konkrétní referenci jednoho dílu. Jméno | Datový Typ | Popis | --- | --- | --- Position | string | Název testované reference | BusTestParameterResult | List | Kolekce testů týkajících se této konkrétní reference na jednom konkrétním díle |

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

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.