<br><br><br><br><br><br><br><br><br><br><br><br> # Dokumentace řešení SSD <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> UNICODE SYSTEMS, s.r.o. Václav Mazánek <br><br><br><br><br><br><br><br><br> <div style="page-break-after: always"></div> ## Obsah ### [1. Obecný popis typu SSD](#Obecný-popis-typu-SSD) ### [2. Popis fungování SSD](#Popis-fungování-SSD) ### [3. Hardware](#Hardware) [a. Skříň](#Skříň) [b. Komponenty](#Komponenty) [c. Blokové schéma napájecích obvodů](#Blokové-schéma-napájecích-obvodů) [d. Komunikační rozhraní](#Komunikační-rozhraní) [e. Zařízení pro tisk](#Zařízení-pro-tisk) [f. Indikační zařízení](#Indikační-zařízení) [g. Zařízení pro ukládání dat](#Zařízení-pro-ukládání-dat) ### [4. Komunikační protokoly](#Komunikační-protokoly) ### [5. Software](#Software) [a. Programovací jazyk a vývojové prostředí](#Programovací-jazyk-a-vývojové-prostředí) [b. Operační systém a ovladače](#Operační-systém-a-ovladače) [c. Diagram architektury software SSD(OPT)](#Diagram-architektury-software-SSD(OPT)) [d. Programové vybavení SSD(OPT)](#Programové-vybavení-SSD(OPT)) [e. Požadavky T L S U](#Požadavky-T-L-S-U) [f. Testovací scénáře](#Testovací-scénáře) <div style="page-break-after: always"></div> ## Obecný popis typu SSD Řada tankovacích platebních automatů CardManager je ve všech variantách a konfiguracích výhradně produktem společnosti UNICODE SYSTEMS, s.r.o. se sídlem Průmyslová zóna 161, 674 01 Třebíč. OPT CardManager je samostatně instalované zařízení v podobě samonosného sloupu. Rozměry se liší dle jednotlivého modelu produktové řady. V bezobslužném režimu může řídit až 8 výdejních míst. Na veřejné čerpací stanici může být tankovacím automatem řízeno až 16 výdejních míst. OPT lze vybavit bankovním terminálem s bezkontaktní čtečkou platebních karet. Čtečkou lokálních karet, tiskárnou a skenerem čárových kódů. Díky tomu umožňuje akceptaci všech bezhotovostních platebních prostředků, jako jsou bankovní karty, fleetové karty, věrnostní karty, lokální karty a kupóny. Tankovací automat sám o sobě není výdejní technologií, pouze realizuje uživatelské rozhraní, platební transakci a uchování případně export transakčních dat. ![Product line](https://i.imgur.com/sD24pME.jpg) S výdejní technologií OPT komunikuje pomocí mnoha standardních komunikačních protokolů. Data o tankování jsou přebírána z výdejního stojanu a během zpracování a uchování nejsou žádným způsobem modifikována. Platba je je realizována platebním terminálem. Zákazníkovi je vytištěn prodejní doklad. Výrobce přijal taková opatření, aby nemohlo dojít k nechtěné nebo neoprávněné manipulaci se zařízením a daty skrze popsaná rozhraní. <div style="page-break-after: always"></div> ## Popis fungování SSD Stručný postup ovládání tankovacího automatu v prostředí bezobslužné čerpací stanice **1. Výběr výdejního místa a předautorizace platby** ![Uvodní obrazovka software SSD](https://i.imgur.com/azsiY0M.png) Nejprve musí zákazník zvolit výdejní místo na kterém chce čerpat pohonné hmoty, provozní kapaliny nebo využít mycí program. Na dotykovém displeji tankovacího automatu tedy klepne na zelenou ikonu s popisem **Čerpání** a zobrazí se všechna výdejní místa bez ohledu na typ produktu. ![Obrazovka stavu výdejních míst](https://i.imgur.com/LEAsig6.png) Pokud jsou ikony jednotlivých výdejních míst zelené je možné je zvolit pro nové čerpání. Má-li ikona některého výdejního místa jinou barvu, znamená to, že zde již probíhá čerpání, případně, že je výdejní místo v jiném provozním režimu, blokované nebo vyřazeno z provozu. V orientaci zákazníkovi pomůže text nad ikonou popisující aktuální stav. Následuje volba požadovaného množství produktu nebo maximální celkové ceny dle konfigurace SSD. Na základě této volby dojde k předautorizování transakce v platebním systému banky. Ve fázi dokončení platby se však vždy odečte pouze částka odpovídající skutečně odebranému množství pohonných hmot či elektrické energie v případě nabíjecí stanice. ![Zadání částky nebo množství](https://i.imgur.com/juSP0Q4.png) **2. Zvednutí pistole výdejního stojanu a samotné tankování** Nyní je zákazník vyzván k zahájení čerpání na zvoleném výdejním místě. Čerpání je nutné začít v určitém čase od povolení transakce, jedná se ale vždy o dostatečně dlouhou dobu pro pohodlnou obsluhu výdejní pistole. Pokud tato doba uplyne bez zvednutí pistole na zvoleném výdejním místě, je celá transakce zrušena. ![Výzva k čerpání](https://i.imgur.com/EefZxqS.png) V průběhu samotného čerpání se obrazovka tankovacího automatu vrátí po nastavené době zpět do výchozího stavu a čerpání probíhá na pozadí. Čerpání se automaticky zastaví, pokud se dosáhne předvolené částky či množství nebo pokud zákazník zavěsí pistoli nebo je nádrž plná a sepne pojistka pistole výdejního stojanu. Tankovací automat umí čerpání zastavit přesně na zvoleném množství či celkové ceně pouze pokud je výdejní technologie vybavena speciálními škrtícími ventily. V případě, že výdejní stojan není vybaven těmito ventily, čerpání se zastaví vždy o něco dříve, než je zvolené maximum. **3. Dokončení platby dle odebraného množství a tisk dokladu** K odbavení čerpání a dokončení transakce dojde automaticky po zavěšení pistole výdejního stojanu. Zákazník se poté vrací zpět k dotykové obrazovce tankovacího automatu a po stisknutí ikony tiskárny s nápisem “Tisk dokladu”, zvolí výdejní místo, na kterém čerpání uskutečnil a vytiskne si doklad se všemi potřebnými údaji. Pokud se jedná o transakci na takzvanou fakturační kartu, není vytištěný doklad daňový ale slouží pouze jako potvrzení o čerpání. Zákazník poté platí pohonné hmoty na základě faktury za dohodnuté období. ![Tlačítko pro tisk dokladu je nyní dostupné](https://i.imgur.com/OYUqPvI.png) ## Hardware ### Skříň Veškeré komponenty jsou namontovány do skříně vyrobené z nerezové oceli a lakované práškovými barvami dle přání zákazníka. Skladba komponent do jisté míry závisí na variantě skříně, konfiguraci a vybavení zařízení. ### Komponenty **Průmyslové PC** počítač s procesorem Intel nebo jiným, kompatibilním a operačním systémem Windows 10 Iot nebo novějším, který zajišťuje běh aplikačního software. PC je vybaveno operační pamětí a datovým úložištěm v podobě SSD disků. PC je sestaveno z komponent s rozšířenou teplotní odolností. **Dotykový displej** speciální dotykový displej pro venkovní použití na kterém se zobrazuje uživatelské rozhraní aplikačního software a zároveň funguje jako vstupní zařízení. Některé varianty zařízení mohou využívat tzv. All-in-one řešení a spojit tak s pohledu hardware průmyslové PC a dotykový displej v jeden komponent. **Platební terminál** platební terminál různých výrobců pro zajištění bezhotovostních platebních metod pomocí platebních karet. **Paragonová tiskárna** termotiskárna pro tisk dokladů o tankování. Může se jednat o různé typy tiskáren, vzhledem k dostupnosti nebo v případě kombinace s fiskálním modulem, dle certifikovaných typů v jednotlivých zemích kde je SSD v provozu. **Scanner / RFID čtečka** zařízení sloužící ke čtení čárových kódů a bezkontaktních identifikačních médií. Scanner používá LED přísvit, je tak vyloučeno nebezpečí úrazu laserovým paprskem. **Topné těleso / termostat** udržuje provozní teplotu zařízení. Obvykle má instalovaný výkon 200-400W. **Napájecí zdroje** Pro napájení hlavních komponent se využívá napájecí zdroj s výkonovou rezervou. **Kabeláž a rozvodné krabice** rozvodnice a kabeláž v různém provedení dle varianty a vybavení řady tankovacích automatů CardManager a CardManager Compact. V případě provedení s certifikací ATEX se jedná o skříně s certifikací do prostředí s nebezpečím výbuchu. **Chráněné úložiště USB** Speciální nepřepisovatelné USB médium typu WORM. Je připraveno pro zaplombování drátěnou nebo samolepící plombou. ![Chráněné úložiště USB](https://i.imgur.com/kPhIgwr.jpg) Dalšími komponenty mohou být například otřesové čidlo, kamera nebo DA rozhraní pro ovládání dalších zařízení jako jsou závory, brány, osvětlení atp. ### Blokové schéma napájecích obvodů ![Blokové schéma napájecích obvodů](https://i.imgur.com/qoVtBDb.png) ### Komunikační rozhraní Pro komunikaci mezi OPT a nadřazenými systémy se používá TCP/IP protokol v síti Ethernet. Pro komunikaci mezi OPT a výdejní technologií se využívá skupina protokolů k tomu určená. ### Zařízení pro tisk K tisku prodejních a provozních dokladů je využívána paragonová termotiskárna různých značek a modelů dle aktuální dostupnosti na trhu, preferencí zákazníka nebo platné certifikace v případě spojení tiskárny s fiskálním řešením. ### Indikační zařízení Pro běžného uživatele / zákazníka i pro servisní zásahy je hlavním indikačním zařízením integrovaný dotykový displej. Na paragonové tiskárně se dle modelu může nacházet LED dioda, která indikuje probíhající tisk dokladu. Proškolená obsluha s přístupem do vnitřních prostor skříně OPT může dále indikovat závadu hardware tiskárny pomocí speciálních LED diod a stav napájení dle LED diod napájecího zdroje. ### Zařízení pro ukládání dat V současném provedení se u všech typů a variant zařízení CardManager a CardManager Compact využívá pro ukládání dat SSD disk s dostatečnou kapacitou často ve dvojici a v provedení s rozšířenou teplotní odolností. Zařízení pro ukládání dat je fyzicky zabezpečeno proti odpojení či výměně. ### Komunikační protokoly V současné době je pro řešení SSD implementován pouze protokol **IFSF / LON**. - ACCORD - ADAST EASY CALL - GILBARCO - 2-WIRE - HDX - IFSF / LON - LOGITRON /PUMALAN - NESTERI - YLMII - NUMERO 10 - NUOVO PIGNONE - OCPP 1.6 / 2.0.x - PDEBG - Scheidt & Bachmann ER 3/2 (ER3/ER4) - Scheidt & Bachmann T01/T02 - Scheidt & Bachmann V.11 T20 - T10/8 - SCHWELM ZSR83 - WAYNE - CURRENT LOOP - WAYNE DART - WAYNE TDS - ZSR Pro komunikaci s perifériemi se využívá rozhraní USB nebo seriový port RS232/RS485 ![Schéma provozu SSD(OPT) v případě integrace se systémem EuroShop a bez něj](https://i.imgur.com/AQS7wAm.png) ## Software ### Minimální požadavky na hardware a operační systém | Komponenty | Popis | | ---------- | ------------------------------------------------------| | Procesor |Intel® Celeron®(1.58 GHz, dual-core, 2 MB cache) | | RAM |2GB | | HDD |64GB | | LAN |100Mbit | | OS |WINDOWS 10 ### Programovací jazyk a vývojové prostředí Object-Pascal, DELPHI XE, Java ### Operační systém a ovladače Operační systém běžící na SSD(OPT) je vždy Microsoft Windows bez ohledu na konfiguraci hardware či modelovou řadu. Verze operačního systému se mohou lišit dle požadavků zákazníka. Preferovaným operačním systémem je v současné době (2022) Windows 10 Iot. SSD(OPT) využívá pouze nativní ovladače Windows nebo ovladače dodané výrobcem jednotlivých komponent. ### Diagram architektury software SSD(OPT) ![popis architektury řešení vyhovujícího MID](https://i.imgur.com/wp8VmGi.jpg) ### Programové vybavení SSD(OPT) je rozděleno na legálně relevantní část, která je svázána s certifikátem a nelze ji měnit bez součinnosti certifikační autority a necertifikovanou část u které je možné provádět změny formou aktualizací. #### Komponenty legálně relevantní části **LAM.DLL** knihovna zajišťuje validaci transakcí a poskytuje také uživatelské rozhraní, pomocí kterého lze ověřit validitu těchto dat. Implementovány jsou také funkce pro detekci *LAM.CRC* na nepřepisovatelném USB médiu. Funkce pro detekci a reportovaní porušení *LAM.CRC* a *LAM.DAT* souborů. knihovna obsahuje hardkódované číslo verze LAM a číslo certifikátu a funkce pro zobrazení těchto údajů v uživatelském rozhraní aplikace *OPTApp.exe*. **LAM UI** Kontrolní UI je dostupné ze servisního menu aplikace OPTApp po přihlášení pomocí identifikačního média s dostatečnými právy. ![Tlačítko pro otevření LAM UI v servisním menu](https://i.imgur.com/uTFtT97.png) Stisknutím tlačítka :black_square_button: **Get fueling points** se do roletového menu načtou dostupná výdejní místa pohonných hmot. Po vybrání požadovaného výdejního místa je nutné zvolit požadovaný datum z robalovacího kalendáře a stisknout tlačítko :black_square_button:**Get transactions** pro načtení dat. Konkrétní text lze vyhledat po zadání do textového pole stisknutím tlačítka :black_square_button: **Find text** Dále jsou v okně LAM UI k dispozici údaje o verzi a kontrolním součtu (CRC) knihovny *LAM.DLL*, označení vydaného certifikátu a výsledek poslední validace kontrolního součtu knihovny *LAM.DLL*. ![UI pro kontrolu transakčních dat](https://i.imgur.com/4r5kW4O.png) V případě poškození transakčních záznamů v souboru .dat je zamezeno dalšímu tankování a do logu *unifp_RRMMDD.log* se zapíše záznam s textem *LAM storage malformed*. ``` 10:19:43.252:[info ]:----------------------------------------------------------------------- 10:19:43.252:[info ]:Module "forecourt" version "UniFP-Application Ver: 1.0.8-SNAPSHOT, Rev: 97707, Date: 12.10.2022 10:12:20" created 10:19:43.317:[warn ]:LAM storage is malformed - fuelling points are deactivated! 10:19:43.325:[info ]:Start 10:19:43.325:[info ]:Started as "core" 11:30:18.318:[info ]:-------------------------------------------------------------------------------- ``` Při požadavku na zobrazení záznamů stisknutím tlačítka :black_square_button:**Get transactions** pro dané výdejní místo a datum mohou nastat tyto stavy: | Výsledek | Varování | Důvod | | ------------------------- | ------------------ | ----------------------------------------------------------------------- | |Zobrazí se seznam transakcí|bez varování | všechny záznamy jsou validní | |Zobrazí se varování |No transaction found|pro výběr neexistují žádné záznamy | |Zobrazí se varování |Database malformed |pokud bude poškozen soubor, celkové CRC nebo záznam v souboru či jeho CRC| U každého záznamu se zobrazuje CRC status - *OK/ERROR* ![](https://i.imgur.com/qSzkmIX.png) Číslo verze LAM a číslo certifikátu je možné zobrazit po stisknutí tlačítka **Language/Sprache** ze základní obrazovky aplikace. ![Obrazovka pro výběr jazyka](https://i.imgur.com/zCwn3Mv.png) **LAMxx.yymm.DAT** soubory obsahující seznam čerpání a jejich crc. #### Komponenty / soubory na chráněném USB úložišti Na speciální USB datové úložiště je možné zapsat soubory pouze jednou (WORM). Soubory takto zapsané je možné opakovaně číst ale není možné je z úložiště smazat. **LAM.CRC** soubor obsahuje kontrolní součet knihovny *LAM.DLL*. CRC certifikované verze knihovny je **CRC 479F73C6** **LAM.INI** soubor obsahuje sadu chráněných parametrů a CRC těchto parametrů. příklad sady parametrů v *LAM.INI* (parametry `Seed` a `Sign` jsou tajné): `country.iso=CZ currency.iso=CZK currency.name=Kč dp.quantity=2 dp.totalprice=2 dp.unitprice=2 dp.separator=, fmt.datetime=DD.MM.YYYY HH:NN.SS fmt.record=DT:%-19s CRC:%.8x FP:%2d N:%1d S:%.4d Q:%10s %-3s P:%10s %-3s UP:%7s %-3s Seed= Zde neuvádíme Sign= Zde neuvádíme` :::info :information_source: Paměť USB typu WORM zapiš-jednou-přečti-mnohokrát je speciálně navržena pro aplikace, kde je prvořadá spolehlivost a bezpečnost dat. Nezměnitelné, nepřepisovatelné a nesmazatelné řešení, zajišťující integritu dat v rámci USB. ::: #### Komponenty necertifikované části **OPTApp.exe** #### Kontroly při startu SSD(OPT) ##### Kontroly při startu aplikace UniFP - komunikační protokol - kontroluje se *LAM.CRC* oproti spočítanému CRC *LAM.DLL* - kontrolují se soubory *LAMxx.yymm.dat* - obousměrné ověření *LAM.DLL* oproti aplikaci UniFP - kontroluje se CRC spočítané aplikací UniFP a DLL na základě náhodných hodnot poskytnutých protější stranou. - následují aplikační kontroly a inicializace komunikace IFSF ##### Kontroly při startu aplikace OPTApp.exe - obecené testy stavu HW PC - test dostatku RAM, dostaktu místa HDD - inicializace a ověření *LAM.DLL* (obousměrné ověření DLL vs aplikace OPT) - inicializace další periferií (tiskárny, skenery, ..) - spuštění user interface OPT - v případě poruchy tiskárny nebude možné zahájit čerpání. - v případě, že není nalezen validní soubor *LAM.CRC* na připojeném úložišti je při spuštění *OPTApp.exe* vypsána chyba. ![Chybové hlášení v případě chybějícího LAM.CRC](https://i.imgur.com/VEwCXyA.png) ### Požadavky T L S U Požadavky popsané v samostatných dokumentech jsou dostupné pod odkazy níže [Požadavky T](https://unicodesys-my.sharepoint.com/:w:/g/personal/vaclav_mazanek_unicodesys_cz/EQ-u5hKViDNAtraLw5R5r1ABpGhmdm-WIEeCywQPwLvwJA?e=Agkdyi) [Požadavky L](https://unicodesys-my.sharepoint.com/:w:/g/personal/vaclav_mazanek_unicodesys_cz/EXJRptjvBhBLoY9JJOI43fQBgV2JqWMUk-gahCKUMvHOvg?e=OF2RGx) [Požadavky S](https://unicodesys-my.sharepoint.com/:w:/g/personal/vaclav_mazanek_unicodesys_cz/ETmEGgHmWvxCrKIAfE7jM0YBnuOtm3DrHXW-8HhMPz_YSw?e=js6aHv) [Požadavky U](https://unicodesys-my.sharepoint.com/:w:/g/personal/vaclav_mazanek_unicodesys_cz/EaiPiXdZBslIr8LIEBcBKgMBQ76RPYkca4bq2vAUWazX4A?e=239oUm) ### Testovací scénáře #### Porušení crc ##### LAM.DLL a LAM.CRC CRC neboli kontrolní součet slouží pro kontrolu správnosti *LAM.DLL* ##### Postup nasimulování porušení crc - LAM.CRC musí být na USB nepřepisovatelném médiu - musí být v PC nalezeno médium s validním *LAM.CRC* pokud nenalezen žádný -> **chyba** pokud jsou všechny nalezené nevalidní -> **chyba** - nasimulovat se dá změnou nějakéhé údaje v *LAM.CRC* jakéhokoliv byte v *LAM.DLL* - nespočítá se shodný výsledek :::info :bulb: příklady "špatných" verzí *LAM.CRC* a *LAM.DLL* budou poskytnuty - soubory stačí překopírovat na místo správných Zobrazí nebo zaloguje se chyba s textem "Library CRC File Singature mismatch" ::: ##### Porušení LAMxx.yymm.DAT *LAMxx.yymm.DAT* - soubory obsahující seznam čerpání a jejich crc, které se kontrolují při startu, načítají se do paměti, s každým dalším novým záznamem se zapisuje celý obsah vč. nového CRC. V případě nesouladu CRC, je možné aplikaci OPT spustit ale není možné zahájit tankování. Výdejní místa jsou v takovém případě mimo provoz. ![](https://i.imgur.com/1eMufP5.png) ##### Postup nasimulování porušení transakčních dat - nutno zastavit služby FCSsvc a UniFP - otevřít zvolený soubor *LAMxx.yymm.DAT* pro editaci - změnit cokoli - hodnotu, crc záznamu, crc souboru, apod. - uložit - spustit služby FCSsvc, UniFP - zalogují se odpovídající chyby do logu *unifp_RRMMDD.log* s textem *LAM storage malformed*. ``` 10:19:43.252:[info ]:----------------------------------------------------------------------- 10:19:43.252:[info ]:Module "forecourt" version "UniFP-Application Ver: 1.0.8-SNAPSHOT, Rev: 97707, Date: 12.10.2022 10:12:20" created 10:19:43.317:[warn ]:LAM storage is malformed - fuelling points are deactivated! 10:19:43.325:[info ]:Start 10:19:43.325:[info ]:Started as "core" 11:30:18.318:[info ]:-------------------------------------------------------------------------------- ``` #### Postup nasimulování chyby tiskárny V případě poruchy tiskárny nebude možné zahájit čerpání. Nutno v OPT config.xml mít setting printonerror="0" ##### Postup odpojit komunikační nebo napájecí kabel.