Opravy chyb
Virtuální přístroje gl_pump,
gl_mixer, gl_gauge a
gl_ventilator při zadání blink_rate
hlásily neznámý identifikátor a neumožňovaly definovat blink_color.
V datově řízených aplikacích byly odstraněny chyby,
které mohly způsobit, že se aplikace nerozběhla, zastavila při
běhu, nebo že neaktivovala po změně dat přístroje.
V datově řízených aplikacích byla odstraněna chyba,
která způsobila, že aktivace přístrojů sledovaly i změny
lokálních datových elementů (tj. elementů definovaných
v procedurách a přístrojích).
V datově řízených aplikacích byla odstraněna chyba,
který způsobila, že se v některých případech nečetly
z ovladačů kanály.
Ve vývojovém prostředí byla opravena chyba, která
způsobila pád po přejmenování panelu, pokud již jiný panel
s tímto jménem v aplikaci existoval.
Při přerušované komunikaci procedur se mohlo stát, že
Control Web čekal na dokončení komunikace,
i když žádná komunikace nebyla rozpracována.
Přístroj pid_regulator při použití
parametru condition nepracoval.
Při zápisu do obousměrných kanálů se do zapsaná hodnota
nemusela zapsat ovladače, ovladač mohl získat předešlou
zapisovanou hodnotu.
Atribut send_same_data zapsaný v datové
sekci neovlivnil chování elementů.
V přístroji data_viewer byly opraveny chyby při
výpočtu y-souřadnic grafu a zobrazování popisů os při určitém
poměru plochy os a plochy grafu.
Dovezené (klientské) sekce se sledovanými elementy
nevolaly událostní procedury spojené s aktivitou mezí
(On*Limit, ...).
Bylo odstraněno několik chyb, které po rozpadu spojení
neumožnily klientu opakovaně navázat spojení se
serverem.
V přístroji draw mohlo při vkládání
určitých kreseb s procedurami do knihovny k pádu
systému.
Dovezené sekce se sledovanými elementy nezobrazovaly a
neposkytovaly správné jméno operátora, atribut alarm_head
a atribut warning_head.
Datové elementy bez definované barvy (atribut color)
se v dovezených sekcích chovají, jakoby měly zadánu barvu
black.
Byly opraveny chyby vykreslování přístroje
listbox zařazeného do panelu v módech
off_screen a window_less.
Při vložení přístroje gl_panel do
přístroje gl_scene ve vývojovém prostředí může
dojít k pádu.
Místně dovážená sekce sledovaných elementů chybně
potvrzuje sledované události.
Nativní procedury přístroje sql rozběhnuté
v asynchronním režimu mohly ve vývojové verzi způsobit pád
systému.
Při zastavení klientského modulu mohlo dojít k pádu
serverového modulu.
Dovezené sekce se sledovanými elementy chybně při větším
počtu elementů míchaly události mezí mezi elementy.
Byly odstraněny chyby, které v přístroji
data_viewer mohly zamezit zobrazování
historických dat dovezených datových sekcí.
Úpravy chování
Mimo označené body SP3 nezpůsobuje žádnou změnu chování
aplikačních programů.
V SP2 byla pro 3D virtuální přístroje přidána
událostní procedura On3DMouseClick( GroupName : string ),
která je vyvolána při kliku levým tlačítkem myši na dotyčný
přístroj. Ve svém parametru GroupName procedura
poskytuje jméno skupiny, na kterou kliknutí mířilo. Tato
procedura je (v případě, že se kliknutí trefilo na nějaký
přístroj) zavolána také mateřské 3D scéně. Mechanismus je nyní
rozšířen tak, že v parametru procedury zavolané 3D scéně je
předáno jméno klikem zasaženého přístroje a v parametru
procedury zavolané dotyčnému přístroji je naplněno jméno
zasažené skupiny uvnitř tohoto virtuálního přístroje.
Průvodce novou aplikací nyní již pro inicializační kód
nevytváří zvláštní startup program, ale využívá
proceduru OnStartup hlavního panelu.
Na grafických kartách NVidia (a asi i na nových ATI)
se objevovaly problémy s velmi pomalým výběrem skupiny po
kliku myší. Tyto potíže byly ošetřeny a výběr většinou funguje
o poznání rychleji.
Číselné meze u sledovaných datových elementů jsou
nyní vyhodnocovány neostře: mez o hodnotě 50 je nyní
aktivní již při hodnotě elementu 50. Původní chování mezí
vyžadovalo překročení nebo podkročení hodnoty meze.
Nativní procedura datových sekcí archive
Archive(*) byla upravena tak, aby došlo
k vyhodnocení výrazu elementu i při volání této
procedury (a ne pouze v rytmu aktivací elementu).
Rozšíření
U virtuálního přistroje switch_label
byla doplněna možnost samostatného zadávání barvy inkoustu a
papíru pro každou položku.
Do datových sekcí schedule, archive,
alarm a alarm_and_archive přibyl
atribut (výraz) condition, který je vždy před
akcemi elementů vypočten a podle výsledku tohoto výpočtu pak
datové elementy vykonají, nebo nevykonají svou činnost. Není-li
atribut condition zapsán, elementy svou vykonávají
(to je počáteční stav). V datových sekcích alarm_and_archive
navíc přibyl atribut archive_condition, který
ovlivňuje pouze archivování hodnot elementů — sledování tímto atributem není dotčeno.
Do datových sekcí alarm a alarm_and_archive
přibyla nativní procedura EvaluateAlarms(*), která
umožňuje asynchronně vyhodnotit sledované meze
elementů.
Rozšíření 3D vykreslovacího systému
Do 3D vykreslovacího systému bylo doplněno několik
drobností, které byly inspirovány tvorbou reálných
vizualizačních aplikací:
- Do virtuálního přístroje gl_model byla
přidána schopnost načítání 3D modelů ve formátu Autodesk
'*.DXF'.
3D přístrojům přibyly parametry runtime_selection_mode,
instrument_selection_mode, group_selection_mode: Parametr | Význam |
---|
runtime_selection_mode | specifikace způsobu hledání místa ve scéně, do
kterého směřovalo kliknutí levým tlačítkem myši.
Mechanismus výběru za běhu je využíván pouze
tehdy, jsou-li ve scéně takové virtuální přístroje,
které reagují na kliky myší za běhu aplikačního programu
(např. 3D knoflík, vodní hladina atd.). Během editace
nebo při nepřítomnosti dotyčných přístrojů ve scéně
nejsou mechanismy hledání za běhu aktivovány. | instrument_selection_mode | specifikace způsobu hledání místa ve scéně, do
kterého směřovalo kliknutí levým tlačítkem myši.
Mechanismus výběru přístroje je využívám pouze během
editace scény. | group_selection_mode | specifikace způsobu hledání místa ve scéně, do
kterého směřovalo kliknutí levým tlačítkem myši.
Mechanismus výběru skupiny je využíván během editace
scény i za běhu aplikačního programu. Pro aktivaci
hledacích mechanismů za běhu aplikace je třeba zapnout
parametr solve_mouse_clicks ve scéně. Pak
jsou zasaženým přístrojům i scéně volány událostní
procedury On3DMouseClick( GroupName : string ). |
Parametry mohou nabývat jedné ze tří
hodnot: Hodnota | Význam |
---|
normal | při hledání míst zasažených kliknutím myší jsou
testovány veškeré povrchy ve všech viditelných skupinách
virtuálního přístroje | bounding_box | při hledání míst zasažených kliknutím myší jsou
testovány pouze povrchy okrajových krychlí všech
viditelných skupin virtuálního přístroje.
U složitých modelů je tak dosaženo dramatického
zrychlení výběrového mechanismu. | skip | povrchy přístroje jsou v výběrových
mechanismů vyřazeny a skupiny takového virtuálního
přístroje jsou pro kliky myší průhledné.
Zrychlení je sice maximální, ale je nutno si promyslet
případná rizika prokliknutí do nižších vrstev
struktury scény. |
Upozornění: Tyto parametry můžeme nastavovat
u jednotlivých přístrojů ve scéně nebo je můžeme
nastavit i samotné scéně. V tomto
případě se bude vybírací mechanismus chovat tak, jako by byl
zvolený vybírací mód nastaven všem přístrojům ve scéně.
Tyto parametry lze nastavit samostatně i jednotlivým
skupinám uvnitř virtuálního přístroje (uvnitř sekce group
.. end_group). Nastavení skupiny má vždy
přednost před nastavením v rámci virtuálního
přístroje.
3D přístrojům přibyl parametr bounding_box_mode,
specifikace druhu okrajové krychle, parametr může nabývat tří hodnot: Hodnota | Význam |
---|
oriented | okrajová krychle je vytvořena v závislosti
na rozložení vertexů skupiny v prostoru tak, aby
byly povrchy skupiny krychlí co nejtěsněji
obaleny 
orientovaný okrajový kvádr Upozornění: Výpočet se nemusí pro veškerá
rozložení vertexů v prostoru vždy podařit (výpočet
může narazit na řadu nestabilit matematického algoritmu
způsobenými převážně omezenou přesností výpočtů).
V takovýchto případech je použit osově přilehlý
okrajový kvádr, který se musí podařit vytvořit vždy.
| axis_aligned | okrajová krychle je orientována podle os
souřadného systému virtuálního přístroje 
osově přilehlý okrajový kvádr |
Tento parametr lze nastavit samostatně
i jednotlivým skupinám uvnitř virtuálního přístroje
(uvnitř sekce group .. end_group).
Nastavení skupiny má vždy přednost před nastavením
v rámci virtuálního přístroje.
- Přibyl nový virtuální přístroj gl_tree
jako rychlý a přitom vizuálně přijatelný model
stromu

model stromu s prostorovým
stínem
|