demultiplexer

Funkce

Zobrazení výsledku libovolného numerického výrazu pomocí ručkového přístroje, grafu, popř. displeje. Hodnota výrazu je nejen zobrazena, ale také vyslána na výstupní proměnné (kanály), které mají splněnu podmínku výběru.

Syntax

  demultiplexer demultiplexer_name;
    rem = string;
    bubble = string;
    timer = timer_name;
    owner = owner_name;
    position = integer, integer, integer, integer;
    win_disable = [ identifier, . . . ];
    win_title = string;
    access = integer;
    tab_select = integer;
    send_same_data;
    output_item
      condition = boolean_expression;
      output_to = real_dataelement;
    end_output_item;
    output_item
      . . . 
    end_output_item;
    input = real_expression;
    show_outputs boolean;
    show_numbers boolean;
    mode = identifier;
    content = identifier;
    range_from = real;
    range_to = real;
    low_limit = real;
    high_limit = real;
    history = integer;
    dec_places = integer;
    real_step = real;
    h_grid = integer;
    v_grid = integer;
    font = font_identifier, integer, style_identifier;
    mask = string;
    driver_exception = driver_name;
    colors
      border_ink = color;
      border_paper = color;
      top_shadow = color;
      bottom_shadow = color;
      ink = color;
      paper = color;
      value = color;
      low_limit = color;
      high_limit = color;
      h_grid = color;
      v_grid = color;
      data_background = color;
      number_color = color;
    end_colors;
  end_demultiplexer;

Specifické parametry přístroje

Poznámky

Příklad

Příklad nastavení:

  window demultiplexer hodiny;
    owner = background;
    position = 10, 10, 100, 100;
    win_disable = move, zoom, minimize, maximize;
    input = hodiny;
    output_item
      condition = hodiny < 12;
      output_to = dopoledne;
    end_output_item;
    output_item
      condition = hodiny >= 12;
      output_to = odpoledne;
    end_output_item;
    mode = text_display;
    content = min;
  end_demultiplexer;

Nativní procedury přístroje

SetLowLimit( LowLimit : real )
SetHighLimit( HighLimit : real )

Nastavení horní a dolní meze zobrazovaných hodnot. Přístroj bude výsledek vstupního výrazu porovnávat s hodnotami HighLimit a LowLimit; bude-li vstupní hodnota menší než LowLimit nebo větší než HighLimit, bude jednou z těchto limitních hodnot nahrazena.

SetRange( RealFrom : real, RealTo : real )

Nastavení rozsahu přístroje. Historické hodnoty uložené ve vyrovnávací paměti případně přesahující nový rozsah budou ořezány. Stejně tak budou případně upraveny i limity. V rámci této metody bude přístroj v nové podobě i překreslen.

SetMode( Mode : real )

Pomocí této metody je možné za běhu přístroje nastavovat jeho vzhled. Čísla módů a jejich stručný popis uvádí tabulka:

0 pointer - ručkový přístroj
1 digital - digitální výstup bodový
2 dot_digital - digitální výstup
3 vertical_bar - poměrná svislá barevná plocha
4 horizontal_bar - poměrná vodorovná barevná plocha
5 flow_graph - posunující se graf
6 sweep_graph - stojící graf
7 text_display - návěští s aktuální hodnotou

NewRect( x, y, width, depth : real )

Zavoláním metody je možné přístroji změnit současně jeho pozici a velikost. Velikosti hodnot x, y, width, a depth jsou v bodech obrazovky.

MoveTo( x, y : real )

Posunutí přístroje na pozici x, y. Velikosti hodnot x a y jsou v bodech obrazovky.

Show()

Zobrazení skrytého přístroje.

Hide()

Skrytí viditelného přístroje.

Událostní procedury přístroje

Přístroj může volat standardní událostní procedury:

OnActivate()
OnMouseDown( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) 
OnMouseDoubleClick( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean )
OnMouseUp( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) 
OnMouseMove( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean )
OnSelect() 
OnDeselect() 
OnShow() 
OnHide() 
OnNewPosition( RectX, RectY, RectW, RectD : integer ) 
OnWindowMinimize() 
OnWindowMaximize() 
OnWindowRestore( WasMinimized, WasMaximized : boolean ) 

Podrobnější informace k těmto procedurám lze nalézt v kapitole Programování a procedury.