====== Popis komunikacneho protokolu ======
DokumentaciaTD/VyvojovyUsek/VyvojSW/TransFare/Devices/Panels
====== Update firmware-u ======
Update vykonava binarka UpdateFirmwares v repozitari
git@192.168.241.14:/home/git/repositories/vehiclesystemutils.git
Popis konfiguracneho suboru pre update firmware-ov:
[[dev_doc:configs#fwupdateconfig.xml|FWUpdateConfig]]
====== Zapojenie R&G tabul (pomala 485 rg) ======
+24 na +24V
GND na -24V
GND(TR) na -24V
TR- na KB1 (EMRDi S1) / KB2 (EMRDi S2)
TR+ na KA1 (EMRDi S1) / KA2 (EMRDi S2)
====== Poznamky k HWConfig ======
=== Position ===
Pre vsetky zaznamy tabul musi byt unikatne. Nemozu existovat dve tabule s rovnakou poziciou (napr SIDE1 emtest a SIDE1 buse).
== Moznosti position: ==
* FRONT1, FRONT2 (predne tabule)
* SIDE1, SIDE2, SIDE3, SIDE4 (bocne tabule)
* REAR1, REAR2 (zadne tabule)
* INNER1, INNER2 (vnutorne tabule)
=== ID ===
Unikatne pre dany typ tabul. Nesmu byt dve emtest tabule s rovnakym ID. Ale moze byt tabula buse s ID=0 a tabula emtest s ID=0.
Pre kazdy pouzity typ tabul musi pre spravnu funkcnost existovat aspon jeden zaznam s ID=0
=== Specificke atributy pre typy tabul ===
== RG tabule ==
Atribut: Protocol
Moznosti: ETL, ETLZU
Predvolene: ETLZU
Vyznam: podla toho aky je protokol sa posielaju rozne prikazy pre tabulu (pre ETL su ine prikazy)
== Buse Tabule ==
Atribut: ResendPeriod
Moznosti: Nezaporne cele cislo
Predvolene: 50
Vyznam: Pocet sekund kolko ma uplynut pred tym ako budu opat poslane data na tabulu. Dovodom tohto atributu je specifikacia protokolu ibis ktory vravi ze by sa mali data posielat na tabulu periodicky a nie len raz pri zmene
Platnost: Od verzie 37.0.0
== Textove Buse Tabule ==
Atribut: Width
Moznosti: Nezaporne cele cislo
Predvolene: 0
Vyznam: Pocet pixelov tabule na dlzku (pri tercikovych to bude asi pocet tercikov - neviem ako to odskusat ci to je naozaj tak)
Platnost: Od verzie 39.1.0
Atribut: Height
Moznosti: Nezaporne cele cislo
Predvolene: 0
Vyznam: Pocet pixelov tabule na vysku (pri tercikovych to bude asi pocet tercikov - neviem ako to odskusat ci to je naozaj tak)
Platnost: Od verzie 39.1.0
====== Tabule.xml ======
Indikator ci sa ma zobrazovat na emtest vnutornej tabuli po starom alebo po novom:
subor: tabule.xml
tag:
==== Konfiguraciu Buse bitmapovych tabul ====
TAG
Tento tag musi obsahovat dalsie dva podriadene tagy: **Prichod**, **Odchod** \\
V nich su potom definovane obrazce, ktore sa maju zobrazovat na danu udalost (prichod alebo odchod)
=== BuseID zastavky ===
Pri zobrazovani zastavky su podmienkou dobre naeditovane data lebo ako parameter sa posiela BuseID. \\
Ak sa vo vstupnych data nachadza ZastavkyBuse.xml, tak je toto ID vytahovane z neho na zaklade ID(emtest) zastavky, zony na linkeZastavke, zone pre vystup pre danu zastavku a nejakeho atributu. \\
== Zazracny atribut ==
* 3 - ak je zastavka v poradi paPoradie hranicna
* 1 - ak je zastavka v poradi paPoradie prva v pasme
* 2 - ak je zastavka v poradi paPoradie posledna v pasme
* 4 - ak je zastavka v poradi paPoradie posledna na spoji
* 0 - v ostatnych pripadoch
== Atribut Num ==
Hovori, ktory obrazec dany riadok definuje.
== Moznosti (hodnota atributu Id) ==
* LinkaSmer
* zobrazi linku a ciel
* na zbernicu posiela SendLinkaCislo, SendCielCislo pricom ako parameter ide cislo bitmapy (Linky a Ciele maju osobitne cisleniky teda ciel17 a Linka17 zobrazia nieco insie)
* AktualnaZastavka
* zobrazi bitmapu pre danu zastavku
* na zbernicu posle SendZastavka (buse ID zastavky)
* NasledujucaZastavka
* na zbernicu SendZastavka (buse ID zastavky)
* Cas, CasPasmo
* malo by poslat SendPasmoCas, avsak neviem ci to funguje - vraj iba niektora verzia firmwaru je schopna spracovat takyto prikaz
* podla moznosti bez otestovania to NEPOUZIVAT!!!
== atribut Mode ==
* cyclic (periodicky prechadza jednotlive obrazce)
* static - zobrazi sa a dalej nic nerobi
* ones - zobrazi raz to co je zadefinovane a prejde na dalsi krok (necykli vsak medzi krokmi)
== atribut EmtestInnerTab ==
Ak sa ma zobrazovat po novom tak atribut musi mat hodnotu "new"
==== RG tabule vynimky ====
Pri vnutornych RG tabuliach s protokolom ETL
* pri zobrazeni 3 regionov mozne zobrazit do
* vrchneho riadku 32 znakov
* spodneho riadku 1024 znakov
* pri zobrazeni 2 riadkov mozne zobrazit do
* vrchneho riadku 32 znakov
* spodneho riadku 512 znakov
=== RG vnutorne tabule - protokol ETL ===
* RG vnutorne tabule ignoruju atribut //Align//. Na zaklade tejto informacie sa zistila informacia ze sa automaticky rotuje druhy riadok nezavisle na nastaveni v tabule.xml alebo nastaveni v TransOffice.
* V pripade ze je nastaveny //Region// na hodnotu //"1"//, co tato tabula nema, dochadza k uplnemu znefunkcneniu zobrazenia sekcii //Prichod// alebo //Odchod//
==== Nastavenia zobrazovania na vnutornych tabuliach ====
=== Font ===
Velkost fontu je najvacsia mozna, teda:
* cislo sa zobrazuje najvacsim moznym fontom (na celu vysku tabule)
* ak je iba jeden riadok tak velkost fontu je rovnaka ako cislo
* ak je text v jednom riadku, velkost je polovicna - teda aby bol text na polovicu tabule
=== Co sa ma zobrazovat ===
Priklad:
=== Popis ===
Princip je podobny ako pri vnutornych buse paneloch. Po prichode sa zobrazuje to, co co sa nachadza medzi tagmi
Mozne hodnoty Substitute: 0/1 (0=false, 1=true)
^Mozne hodnoty Text:^ ^Popis ^
|PrvaZastavka | | prva zastavka spoja |
|PrvaZastavkaPoCiarku | | prva zastavka spoja po ciarku |
|Konecna |!| posledna zastavka spoja |
|KonecnaPoCiarku |!| posledna zastavka spoja po ciarku |
|KonecnaBezSipky | | posledna zastavka spoja ale bez sipocky na zaciatku |
|KonecnaPoCiarkuBezSipky | | posledna zastavka spoja po ciarku ale bez sipocky na zaciatku |
|Aktualna | | aktualna zastavka |
|AktualnaNaZnamenie |*| aktualna zastavka a ak ma flag 'zastavka na znamenie', tak sa pripoji prelozeny text "(na znamenie)" - napr.: "Hricovska (na znamenie)" |
|AktualnaPoCiarkuNaZnamenie |*| aktualna zastavka (nazov po ciarku) a ak ma flag 'zastavka na znamenie', tak sa pripoji prelozeny text "(na znamenie)" - napr.: "Hricovska (na znamenie)" |
|Nasledujuca | | nasledujuca zastavka |
|NasledujucaTXT | | text "Nasledujúca zastávka" |
|NasledujucaNaZnamenie |*| nasledujuca zastavka a ak ma flag 'zastavka na znamenie', tak sa pripoji prelozeny text "(na znamenie)" - napr.: "Hricovska (na znamenie)" |
|NasledujucaPoCiarkuNaZnamenie |*| nasledujuca zastavka (nazov po ciarku) a ak ma flag 'zastavka na znamenie', tak sa pripoji prelozeny text "(na znamenie)" - napr.: "Hricovska (na znamenie)" |
|Trasa | | upresnenie trasy iba od aktualnej zastavky |
|TrasaPoCiarku | | upresnenie trasy po ciarku iba od aktualnej zastavky |
|Cislo | | cisloText linky max 3 znaky |
|CisloDlhe | | cisloText linky max 6 znakov |
|CisloLinkyDlhe | | cislo linky (naozaj cislo) v plnej dlzke |
|CisloLinkyKratke | | cislo linky (naozaj cislo) skratene na 3 znaky |
|LinkaNazov | | nazov linky |
|LinkaNazovRiadok1 | | prva cast nazvu linky - po prvy podtrhovnik ('_') |
|LinkaNazovRiadok2 | | druha cas nazvu linky - od prveho podtrhovniku po druhy podtrhovnik |
|CasSekundy | | cas so sekundami - prikaz pre tabulu PrintTime (u RG zatial nepodporovane) |
|Cas | | text obsahujuci cas hh:mm (neaktualizuje sa sam, je to text) |
|Den | | aktualny den |
|Datum | | aktualny datum (D.M.YYYY) |
! Ak sa zobrazuje konecna zastavka, su pred jej nazov prilepene znaky "-> "
* v pripade ze sa to spolu s lokalizovanym textom nevojde do 240 znakov, tak sa nazov zastavky oreze sprava po najblizsiu medzeru, tak aby sa nazov zastavky + lokalizovany text "na znamenie" zmestil do 240 znakov.
V najhorsom pripade (ak by cely nazov zastavky bol bez medzier dlhsi ako 240 znakov) sa vypise len " (na znamenie)".
Atribut //Region// urcuje v ktorm regione ma byt zobrazeny dany text.
ak je v danom kroku zadany len jeden riadok, na tabuli je zobrazeny 1 riadok na celu vysku tabule
Mozne hodnoty:
1 - region cisla
2 - region horneho riadka
3 - region spodneho riadka
pre texto BUSE tabule este aj:
0 - znamena ze to ide vsetko do jedneho riadka a buffruju sa texty v tomto regione v danom kroku
NOTE:
Odporucam davat cislo ako prve kedze to moze definovat ze riadky maju zacinat dalej na tabuli a nie hned od odkraju
Atribut //Time// reprezentuje ako dlho ma byt zobrazeny dany casovy krok. Do uvahy sa berie hodnota v poslednom udaji daneho casoveho kroku.
V pripade
bude zobrazene 5 sekund.
Atribut //Align// urcuje zarovnanie textu (pre rg tabule je podporovane len Rotate urcujuce ci ma rotovat spodny riadok)
Mozne hodnoty:
Auto - automaticky
Left - zarovnane vlavo
Center - vycentrovane
Rotate - rotovanie
Atribut //Lang// hovori o tom do akeho jazyka ma byt prelozeny dany text. Momentalne si applikacia tento atribut vsima pri NasledujucaTXT, Den, Nasledujuca, Konecna, Aktualna, postfix "na znamenie) pri AktualnaNaZnamenie a NasledujucaNaZnamenie.
Pri jednom jazyku (napr pri anglictine) sa musi hodnota atributu (napr "en") zhodovat s atributov Lang v busstopsConfig.xml a s identifikatorom jazyka v prekladovych slovnikoch qm (custom_en.qm). Pozor, applikacia rozlisuje velke a male pismena!
=== Priradenie farby textu k cislu linky ===
**Farbu textu, farbu oramovania textu a farbu pozadia je mozne po novom (od buildu 1058 - vratane) nastavit len pomocou custom property - tabulka 45, custom property type ID 2 (v tvare:"#FFFFFF,#FFFFFF,#FFFFFF" - text, ramik, pozadie)**
Po build 1057: Na novych Bustec RGB tabuliach je mozne priradit ku cislu linky konkretnu farbu z definovaneho ciselnika farieb.
Element ma nazov LineColor, v atribute ColorValue je nastavena konkretna farba a cisla liniek, ktore budu zobrazene touto farbou su vymenovane v atribute LineNumbers, kde moze byt vymenovanych viac cisel, ktore su oddelene ciarkou.\\
Priklad:
Farby su definovane nasledovne:
====== Tabule.xml z hladiska vyvojara ======
System zobrazovania Vnutornych Tabul
------------------------------------
Indikator ci sa ma zobrazovat na emtest vnutornej tabuli po starom alebo po novom:
subor: tabule.xml
tag:
atribut: EmtestInnerTab
Ak sa ma zobrazovat po novom tak atribut musi mat hodnotu "new"
devel
-----
Toto vycitavanie sa uskutocnuje triede ETableConfig
Nastavovanie podla suboru -> GetAttributeNewEmInnerSystem
Ziskanie hdnoty -> IsEmInnerTabSystem
//==================================================================================
devel
-----
Naplnanie vectora s informaciami co sa ma kedy kde zobrazit, ktore su ziskane z xml sa uskutocnuje v triede ETabuleConfig (metoda GetEmTableSettNode)
Ziskanie vectora je cez GetSetting(RNG_TAB, Prichod) napr. Vrati to smernik na vector struktur ETableXmlSetting. Ak vsak ide o vector pre RNG alebo EM tabule, su to ETableInnerSett (pototmok ETableXmlSetting).
V business logike je treba tento vecotr vycitat spominanou metodou
Zavolat subsituciu potrebnych textov (metoda SubstituteTexts) a nasledne FillCommandParameters, kde sa naplnia iformacia o velkosti fontov, a suradniciach potrebne pre zobrazenie pre EMtabule
Nasledne je upraveny vector odoslany Message do drivera ako s nastavenym priznakom bSetTimeControl.
Popis
-----
Nastavenia zobrazovania na vnutornych tabuliach:
Font: Velkost fontu je najvacsia mozna, teda:
- cislo sa zobrazuje najvacsim moznym fontom (na celu vysku tabule)
- ak je iba jeden riadok tak velkost fontu je rovnaka ako cislo
- ak je text v jednom riadku, velkost je polovicna - teda aby bol text na polovicu tabule
Co sa ma zobrazovat:
Priklad:
Popis:
Princip je podobny ako pri vnutornych buse paneloch. Po prichode sa zobrazuje to, co co sa anchadza medzi tagmi a . Obdobne to je aj pre Odchod.
Tag Text reprezentuje jeden region ktory ma byt zobrazeny.
Num je cislo casoveho kroku, cize texty s rovnakm "Num" budu ozbrazene naraz.
Hodnoty atributu musia v danej sekcii (prichod alebo odchod) tvorit suvislu postupnost cisel (napr 1,3,2 a nie 1,3).
ATRIBUT Text urcuje co sa ma zobrazit. Ak ma atribut Substitute hodnotu 0, zobrazi sa presne hodnota atributu Text.
Ak je Substitute rovne 1 ,Text prelozeny/substituovany za text s danym vyznamom.
Teda text Aktualna bude zameneny za nazov aktualnej zastavky.
Mozne hodnoty Substitute: 0/1 (0=false, 1=true)
Mozne hodnoty Text:
Konecna - posledna zastavka spoja
Aktualna - aktualna zastavka
Nasledujuca - nasledujuca zastavka
NasledujucaTXT - text "Nasledujúca zastávka"
Trasa - upresnenie trasy po ciarku iba od aktualnej zastavky
Cislo - cislo linky max 3 znaky
CasSekundy - cas so sekundami - prikaz pre tabulu PrintTime (u RG zatial nepodporovane)
Cas - text obsahujuci cas hh:mm (neaktualizuje sa sam, je to text)
Den - aktualny den
Datum - aktualny datum (D.M.YYYY)
Ak sa zobrazuje konecna zastavka, su pred jej nazov prilepene znaky "-> "
Atribut Region urcuje v ktorm regione ma byt zobrazeny dany text.
ak je v danom kroku zadany len jeden riadok, na tabuli je zobrazeny 1 riadok na celu vysku tabule
Mozne hodnoty:
1 - region cisla
2 - region horneho riadka
3 - region spodneho riadka
Atribut Time reprezentuje ako dlho ma byt zobrazeny dany casovy krok. DO uvahy sa berie hodnota v poslednom udaji daneho casoveho kroku.
V pripade
bude ozbrazene 5 sekund.
Atribut Align urcuje zarovnanie textu (pre rg tabule je podporovane len Rotate urcujuce ci ma rotovat spodny riadok)
Mozne hodnoty:
Auto - automaticky (== rotovanie)
Left - zarovnane vlavo
Center - vycentrovane
Rotate - rotovanie
Pozor: Niektore tabule nepodporuju viac ako jeden rotovany text. Viac ako jeden rotovany text na tabuli by nemal byt nastaveny vo vstupnych datach pre tabulu.
//==================================================================================
RG tabule vynimky
-----------------
Pri vnutornych RG tabuliach s protokolom ETL
pri zobrazeni 3 regionov mozne zobrazit do
- vrchneho riadku 32 znakov
- spodneho riadku 1024 znakov
pri zobrazeni 2 riadkov mozne zobrazit do
- vrchneho riadku 32 znakov
- spodneho riadku 512 znakov
devel
-----
kontrola dlzky sa uskutocnuje vo funkciach kde sa buildia commandy
Zobrazovanie 2 riadkov: ShowText command 0x61
Zobrazovanie 3 regionov: ShowLineAndText command 0x60
====== Prehravanie FW v LCD tabuliach Bustec ======
Postup:
- zozenieme si USB kluc, pomenujeme ho "BTXXX"
- archiv s FW rozbalime a adresar Bustec skopirujeme na kluc (adresar Bustec musi byt v korenovom adresari)
- zapneme LCD tabulu
- otvorime zaklopku, vlozime kluc, zacne sa vykonavat prehravanie dat
- po ukonceni vytiahneme kluc, tabula sa restartne
FW:\\
{{dev_dec:fw_bustec_29_inch_lcd_bratislavky_kraj_2021-12-08.zip|fw_bustec_29_inch_lcd_bratislavky_kraj_2021-12-08}} \\
{{dev_dec:bustec_29_inch_lcd_bratislavky_kraj_2022-01-05.zip|fw_bustec_29_inch_lcd_bratislavky_kraj_2022-01-05}} \\
{{dev_dec:2022-04-21_bratislavskykraj.zip|2022-04-21_bratislavskykraj - verzia s opravenym mazanim prestupov}} \\
{{dev_dec:2022-06-01_lucenec_sad_br.kraj_connections_29_.zip|2022-06-01_Lučenec_SAD(Br.Kraj)_Connections_29'' - opravene zobrazovanie iba posledneho prestupu}}
====== Prehravanie FW v LCD tabuliach Buse ======
Postup:
- zozenieme si USB kluc, pomenujeme ho "USB-LCDTFT"
- obsah archivu (subor DeviceUpdate.conf & adresar) skopirujeme na kluc
- zapneme LCD tabulu
- otvorime zaklopku, vlozime kluc, zobrazi sa instalacne okno, pockame na dokoncenie
- po ukonceni (zobrazi sa hlaska "Remove USB") vytiahneme kluc, tabula sa restartne
FW: \\
====== Zmena IP adresy v LCD tabuliach Buse ======
Postup:\\
- zozenieme si USB kluc, pomenujeme ho "USB-LCDTFT" \\
- pomocou suboru DeviceUpdate.conf vieme zmenit IP adresu, subor obsahuje:
* set_IP (IPAdresaPanelu MaskaPodsiete Gateway)
192.168.12.128 255.255.255.0 192.168.12.199
* set_dns (DNS1 DNS2)
192.168.12.199 8.8.8.8
Konfiguracny subor:\\
{{dev_dec:deviceupdate.zip|deviceupdate.zip}}