Diskuse Elektrika.cz

HYBRIDNÍ zóna => Technická podpora výrobce TECO Kolín radí odborníkům => Téma založeno: Jiri Dvorak 27.01.2014, 22:51



Název: Je toto chyba v mosaic při určité definici vlastního typu proměnné ?
Přispěvatel: Jiri Dvorak 27.01.2014, 22:51
K věci :
(vynechám zdlouhavý popis z příkladu je problém celkem jasný)

TYPE
  type_pok : STRUCT        
    q : ( a, b, c);                                      // zde je problém
    arb : ARRAY [0..20] OF BOOL;         // zde je  problém


  END_STRUCT;
  
END_TYPE

VAR_GLOBAL RETAIN
  arb2 : ARRAY [0..20] OF BOOL;
  var_tp : type_pok;
END_VAR


s tímto vytvořeným typem nechodí toto ( pouze kód pro test):

for  y := 0 to 20 do
   arb2[y] := true;
   var_tp.arb[y] := true;
end_for;


překvapivě toto jde:

var_tp.arb[1] := true;

a druhé ( tedy pro mě ) překvapení, pokud:

TYPE
  type_pok : STRUCT        
     arb : ARRAY [0..20] OF BOOL;
     q : ( a, b, c);

 END_STRUCT;
  
END_TYPE


Tak je zase po problému...... ..






Název: Re: Je toto chyba v mosaic při určité definici vlastního typu proměnné ?
Přispěvatel: Jindra_K 28.01.2014, 13:32
váš dotaz jsem předal kolegům z vývoje prostředí Mosaic, předpokládám, že se do několika dní ozvou.


Název: Re: Je toto chyba v mosaic při určité definici vlastního typu proměnné ?
Přispěvatel: Milan Bydžovský 03.02.2014, 09:06
Překladač bohužel dovolil konstrukci, se kterou neumí pracovat, a to definice enumerace jako instance.

Problém lze obejít následovně:

Kód:
TYPE
  Tq : ( a, b, c);                                   // definice enumerace
  type_pok : STRUCT
    q : Tq;                                            //pouziti enumerace
    arb : ARRAY [0..20] OF BOOL;
  END_STRUCT;
END_TYPE

Následné operace jsou pak již korektní