Table of Contents

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: 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:

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:       <Tabule>

Konfiguraciu Buse bitmapovych tabul

TAG <VnutornaTabulaIBIS>

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
Atribut Num

Hovori, ktory obrazec dany riadok definuje.

Moznosti (hodnota atributu Id)
atribut Mode
atribut EmtestInnerTab

Ak sa ma zobrazovat po novom tak atribut musi mat hodnotu “new”

RG tabule vynimky

Pri vnutornych RG tabuliach s protokolom ETL

RG vnutorne tabule - protokol ETL

Nastavenia zobrazovania na vnutornych tabuliach

Font

Velkost fontu je najvacsia mozna, teda:

Co sa ma zobrazovat

Priklad:

<VnutornaTabula>
    <Prichod>
        <Text Num="1" Text="CasSekundy"        Substitute="1" Region="2" Time="0"   Align="Center"/>
        <Text Num="1" Text="Aktualna"          Substitute="1" Region="3" Time="0"   Align="Center"/>
    </Prichod>
    <Odchod>
        <Text Num="1" Text="NasledujucaTXT"         Substitute="1"  Region="2" Time="5"  Align="Center"/>
        <Text Num="1" Text="Nasledujuca"            Substitute="1"  Region="3" Time="5"  Align="Center"/>

        <Text Num="2" Text="Cas"                    Substitute="1"  Region="1" Time="5"  Align="Left"/>
        <Text Num="2" Text="Den"                    Substitute="1"  Region="2" Time="5"  Align="Left"/>
        <Text Num="2" Text="Datum"                  Substitute="1"  Region="3" Time="5"  Align="Right"/>

        <Text Num="3" Text="Cislo"                  Substitute="1"  Region="1" Time="9"  Align="Left"/>
        <Text Num="3" Text="Konecna"                Substitute="1"  Region="2" Time="9"  Align="Center"/>
        <Text Num="3" Text="Trasa"                  Substitute="1"  Region="3" Time="9"  Align="Rotate"/>
    </Odchod>
</VnutornaTabula>

Popis

Princip je podobny ako pri vnutornych buse paneloch. Po prichode sa zobrazuje to, co co sa nachadza medzi tagmi <Prichod> a </Prichod>. 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: 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

        <Text Num="1" Text="NasledujucaTXT"         Substitute="1"  Region="2" Time="3"  Align="Center"/>
        <Text Num="1" Text="Nasledujuca"            Substitute="1"  Region="3" Time="5"  Align="Center"/>

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:

<LineColor ColorValue="1" LineNumbers="606101,606111" />

Farby su definovane nasledovne:

Zobrazenie bitmapy a cisla

Ak potrebujeme naraz zobrazit region s cislom aj bitmapu, je nutne tuto vlastnost zapnut prislusnym atributom a korektne nadefinovat rozlozenie tabule a sposob akym je zobrazovany text. Regiony je nutne mat nastavene nasledovne:

Atribut, kt. je nutne zapnut v root elemente (v tabule.xml):

<Tabule EmuleBuse="yes">

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:       <Tablue>
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:
<VnutornaTabula>
    <Prichod>
        <Text Num="1" Text="CasSekundy"        Substitute="1" Region="2" Time="0"   Align="Center"/>
        <Text Num="1" Text="Aktualna"          Substitute="1" Region="3" Time="0"   Align="Center"/>
    </Prichod>
    <Odchod>
        <Text Num="1" Text="NasledujucaTXT"         Substitute="1"  Region="2" Time="5"  Align="Center"/>
        <Text Num="1" Text="Nasledujuca"            Substitute="1"  Region="3" Time="5"  Align="Center"/>

        <Text Num="2" Text="Cas"                    Substitute="1"  Region="1" Time="5"  Align="Left"/>
        <Text Num="2" Text="Den"                    Substitute="1"  Region="2" Time="5"  Align="Left"/>
        <Text Num="2" Text="Datum"                  Substitute="1"  Region="3" Time="5"  Align="Right"/>

        <Text Num="3" Text="Cislo"                  Substitute="1"  Region="1" Time="9"  Align="Left"/>
        <Text Num="3" Text="Konecna"                Substitute="1"  Region="2" Time="9"  Align="Center"/>
        <Text Num="3" Text="Trasa"                  Substitute="1"  Region="3" Time="9"  Align="Rotate"/>
    </Odchod>
</VnutornaTabula>

Popis:
Princip je podobny ako pri vnutornych buse paneloch. Po prichode sa zobrazuje to, co co sa anchadza medzi tagmi <Prichod> a </Prichod>. 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
        <Text Num="1" Text="NasledujucaTXT"         Substitute="1"  Region="2" Time="3"  Align="Center"/>
        <Text Num="1" Text="Nasledujuca"            Substitute="1"  Region="3" Time="5"  Align="Center"/>
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:

  1. zozenieme si USB kluc, pomenujeme ho “BTXXX”
  2. archiv s FW rozbalime a adresar Bustec skopirujeme na kluc (adresar Bustec musi byt v korenovom adresari)
  3. zapneme LCD tabulu
  4. otvorime zaklopku, vlozime kluc, zacne sa vykonavat prehravanie dat
  5. po ukonceni vytiahneme kluc, tabula sa restartne

FW:
fw_bustec_29_inch_lcd_bratislavky_kraj_2021-12-08
fw_bustec_29_inch_lcd_bratislavky_kraj_2022-01-05
2022-04-21_bratislavskykraj - verzia s opravenym mazanim prestupov
2022-06-01_Lučenec_SAD(Br.Kraj)_Connections_29'' - opravene zobrazovanie iba posledneho prestupu

Prehravanie FW v LCD tabuliach Buse

Postup:

  1. zozenieme si USB kluc, pomenujeme ho “USB-LCDTFT”
  2. obsah archivu (subor DeviceUpdate.conf & adresar) skopirujeme na kluc
  3. zapneme LCD tabulu
  4. otvorime zaklopku, vlozime kluc, zobrazi sa instalacne okno, pockame na dokoncenie
  5. 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:

192.168.12.128 255.255.255.0 192.168.12.199

192.168.12.199 8.8.8.8

Konfiguracny subor:
deviceupdate.zip