Commit b0c045c8 authored by Maxime Perrotin's avatar Maxime Perrotin

Fix test cases due to stricter type checkings

parent 38264417
......@@ -2172,7 +2172,7 @@ def primary_index(root, context, pos):
elif is_number(idx_bty):
# Check range only is index is given as a raw number
if float(idx_bty.Max) >= float(r_max) \
or float(idx_bty.Min) < 1:
or float(idx_bty.Min) < 0:
errors.append(error(root,
'Index range [{id1} .. {id2}] '
'outside of range [{r1} .. {r2}]'
......@@ -2192,9 +2192,10 @@ def primary_index(root, context, pos):
def primary_substring(root, context, pos):
''' Primary substring analysis '''
# Check documentation of primary_index
# Substring parameters must be ground expression : var (3, 5)
# Substring parameters should be ground expression : var (3, 5)
# and not var (a, b), because allowing a and b to have a range does
# not allow to compute a fixed size for the substring
# It is only reported as a warning but this is questionable
node, errors, warnings = ogAST.PrimSubstring(), [], []
......@@ -2236,9 +2237,8 @@ def primary_substring(root, context, pos):
min1, max1 = 0, 0
if min0 != max0 or min1 != max1:
msg = 'Substring bounds must be ground expressions, not variables'
errors.append(error(root, msg))
min1, max1 = 0, 0
msg = 'Substring bounds should be ground expressions'
warnings.append(warning(root, msg))
if min0 < 0 or min1 < 0:
msg = 'Substring bounds cannot be negative'
......
/* CIF PROCESS (149, 150), (150, 75) */
PROCESS og;
/* CIF TEXT (97, 0), (539, 448) */
process og;
/* CIF TEXT (223, 0), (539, 448) */
-- A Demo to test the generation of _Equal functions from ASN1SCC
dcl V1 My_OctStr := 'Hello';
dcl V2 My_OctStr := 'World!';
dcl V3 SeqOf := { 'Hello', 'World!' };
dcl V4 SeqOf := { 'Hello', 'World' };
dcl fail t_bool := false;
-- Test optional field
dcl V5 Toto := { elem_1 'Hello' };
dcl V6 Toto := { elem_1 'Hello', elem_2 {'Ola', 'TheWorld'} };
dcl V7 AChoice := a: TRUE;
dcl V8 ACHoice := b: {'Hello', 'World!'};
-- test REAL equality
dcl number1 MyReal := 1.0;
dcl number2 MyReal := 1.000001;
dcl number3 MyReal := 3.0;
dcl V1 My_OctStr := 'Hello';
dcl V2 My_OctStr := 'World!';
dcl V3 SeqOf := { 'Hello', 'World!' };
dcl V4 SeqOf := { 'Hello', 'World' };
dcl fail t_bool := false;
-- Test optional field
dcl V5 Toto := { elem_1 'Hello' };
dcl V6 Toto := { elem_1 'Hello', elem_2 {'Ola', 'TheWorld'} };
dcl V7 AChoice := a: TRUE;
dcl V8 ACHoice := b: {'Hello', 'World!'};
-- test REAL equality
dcl number1 MyReal := 1.0;
dcl number2 MyReal := 1.000001;
dcl number3 MyReal := 3.0;
/* CIF ENDTEXT */
/* CIF START (1065, 26), (60, 30) */
/* CIF START (1191, 26), (60, 30) */
START;
/* CIF TASK (988, 72), (214, 35) */
TASK v8 := b: {'hello', 'world'};
/* CIF LABEL (1060, 122), (70, 35) */
/* CIF task (1114, 72), (214, 35) */
task v8 := b: {'hello', 'world'};
/* CIF label (1186, 122), (70, 35) */
one:
/* CIF DECISION (1046, 172), (98, 50) */
DECISION V1 = V2;
/* CIF ANSWER (669, 242), (73, 28) */
(true):
/* CIF TASK (644, 285), (123, 35) */
TASK fail := false;
/* CIF PROCEDURECALL (642, 335), (126, 38) */
CALL writeln('2');
/* CIF LABEL (670, 388), (70, 35) */
two:
/* CIF DECISION (656, 438), (98, 50) */
DECISION V3 = V4;
/* CIF ANSWER (452, 508), (73, 28) */
(true):
/* CIF TASK (427, 551), (123, 35) */
TASK fail := false;
/* CIF PROCEDURECALL (425, 601), (126, 38) */
CALL writeln('4');
/* CIF LABEL (447, 654), (82, 35) */
three:
/* CIF DECISION (410, 704), (156, 95) */
DECISION V5 /= V6
/* CIF decision (1172, 172), (98, 50) */
decision V1 = V2;
/* CIF ANSWER (795, 242), (73, 28) */
(true):
/* CIF task (770, 285), (123, 35) */
task fail := false;
/* CIF PROCEDURECALL (769, 335), (126, 38) */
call writeln('2');
/* CIF label (797, 388), (70, 35) */
two:
/* CIF decision (783, 438), (98, 50) */
decision V3 = V4;
/* CIF ANSWER (507, 508), (73, 28) */
(true):
/* CIF task (482, 551), (123, 35) */
task fail := false;
/* CIF PROCEDURECALL (481, 601), (126, 38) */
call writeln('4');
/* CIF label (503, 654), (82, 35) */
three:
/* CIF decision (466, 704), (156, 95) */
decision V5 /= V6
and V7 /= V8;
/* CIF ANSWER (-19, 819), (73, 28) */
(true):
/* CIF PROCEDURECALL (-46, 862), (126, 38) */
CALL writeln('5');
/* CIF TASK (-93, 915), (220, 48) */
TASK V5 := V6,
/* CIF ANSWER (74, 819), (73, 28) */
(true):
/* CIF PROCEDURECALL (48, 862), (126, 38) */
call writeln('5');
/* CIF task (1, 915), (220, 48) */
task V5 := V6,
V7 := b: {'Hello', 'World'};
/* CIF TASK (-94, 978), (222, 35) */
TASK V8 := b: {'Hello', 'world' };
/* CIF JOIN (0, 1028), (35, 35) */
JOIN three;
/* CIF ANSWER (581, 819), (78, 28) */
(false):
/* CIF PROCEDURECALL (557, 862), (126, 38) */
CALL writeln('6');
/* CIF DECISION (520, 915), (200, 50) */
DECISION number1 = number2;
/* CIF ANSWER (413, 985), (120, 38) */
(true):
/* CIF PROCEDURECALL (405, 1038), (136, 38) */
CALL writeln('7');
/* CIF DECISION (373, 1091), (200, 50) */
DECISION number1 = number3;
/* CIF ANSWER (264, 1161), (73, 28) */
(true):
/* CIF PROCEDURECALL (138, 1204), (325, 38) */
CALL writeln('FAIL number1 = number3');
/* CIF ANSWER (625, 1161), (78, 38) */
(false):
/* CIF PROCEDURECALL (596, 1214), (136, 38) */
CALL writeln('8');
ENDDECISION;
/* CIF ANSWER (936, 985), (78, 28) */
(false):
/* CIF PROCEDURECALL (814, 1028), (322, 38) */
CALL writeln('FAIL number1 /= number2');
/* CIF TASK (763, 1081), (424, 35) */
TASK number3 := abs((number1 - number2)/number1);
/* CIF PROCEDURECALL (742, 1131), (466, 35) */
CALL writeln(number3, ' >= 0.00001 !?', number3 < 0.00001);
ENDDECISION;
/* CIF NEXTSTATE (585, 1282), (70, 35) */
NEXTSTATE wait;
ENDDECISION;
/* CIF ANSWER (1558, 508), (78, 28) */
/* CIF task (0, 978), (222, 35) */
task V8 := b: {'Hello', 'world' };
/* CIF join (93, 1028), (35, 35) */
join three;
/* CIF ANSWER (636, 819), (78, 28) */
(false):
/* CIF DECISION (1558, 551), (78, 50) */
DECISION fail;
/* CIF ANSWER (1451, 621), (73, 28) */
(true):
/* CIF PROCEDURECALL (1298, 664), (378, 38) */
CALL writeln('FAIL: V3 = V4 reports FALSE, but...');
/* CIF PROCEDURECALL (1218, 717), (539, 35) */
CALL writeln('Length of V3(1) =', Length(V3(1)), ' and Value = ', V3(1));
/* CIF PROCEDURECALL (1218, 767), (539, 35) */
CALL writeln('Length of V4(1) =', Length(V4(1)), ' and Value = ', V4(1));
/* CIF NEXTSTATE (1452, 817), (70, 35) */
NEXTSTATE wait;
/* CIF ANSWER (1741, 621), (78, 28) */
(false):
/* CIF PROCEDURECALL (1717, 664), (126, 38) */
CALL writeln('3');
/* CIF TASK (1689, 717), (182, 35) */
TASK V3(1) := V4(1)(0,4);
/* CIF TASK (1721, 767), (118, 35) */
TASK fail := true;
/* CIF JOIN (1762, 817), (35, 35) */
JOIN two;
ENDDECISION;
ENDDECISION;
/* CIF ANSWER (1960, 242), (78, 28) */
(false):
/* CIF DECISION (1960, 285), (78, 50) */
DECISION fail;
/* CIF ANSWER (1918, 355), (73, 28) */
/* CIF PROCEDURECALL (612, 862), (126, 38) */
call writeln('6');
/* CIF decision (575, 915), (200, 50) */
decision number1 = number2;
/* CIF ANSWER (468, 985), (120, 38) */
(true):
/* CIF PROCEDURECALL (460, 1038), (136, 38) */
call writeln('7');
/* CIF decision (428, 1091), (200, 50) */
decision number1 = number3;
/* CIF ANSWER (319, 1161), (73, 28) */
(true):
/* CIF PROCEDURECALL (193, 1204), (325, 38) */
call writeln('FAIL number1 = number3');
/* CIF ANSWER (680, 1161), (78, 38) */
(false):
/* CIF PROCEDURECALL (651, 1214), (136, 38) */
call writeln('8');
enddecision;
/* CIF ANSWER (991, 985), (78, 28) */
(false):
/* CIF PROCEDURECALL (869, 1028), (322, 38) */
call writeln('FAIL number1 /= number2');
/* CIF task (818, 1081), (424, 35) */
task number3 := abs((number1 - number2)/number1);
/* CIF PROCEDURECALL (797, 1131), (466, 35) */
call writeln(number3, ' >= 0.00001 !?', number3 < 0.00001);
enddecision;
/* CIF NEXTSTATE (640, 1282), (70, 35) */
NEXTSTATE wait;
enddecision;
/* CIF ANSWER (1684, 508), (78, 28) */
(false):
/* CIF decision (1684, 551), (78, 50) */
decision fail;
/* CIF ANSWER (1506, 621), (73, 28) */
(true):
/* CIF PROCEDURECALL (1881, 398), (147, 38) */
CALL writeln('FAIL');
/* CIF NEXTSTATE (1919, 451), (70, 35) */
/* CIF PROCEDURECALL (1354, 664), (378, 38) */
call writeln('FAIL: V3 = V4 reports FALSE, but...');
/* CIF PROCEDURECALL (1273, 717), (539, 35) */
call writeln('Length of V3(1) =', Length(V3(1)), ' and Value = ', V3(1));
/* CIF PROCEDURECALL (1273, 767), (539, 35) */
call writeln('Length of V4(1) =', Length(V4(1)), ' and Value = ', V4(1));
/* CIF NEXTSTATE (1508, 817), (70, 35) */
NEXTSTATE wait;
/* CIF ANSWER (2078, 355), (78, 28) */
/* CIF ANSWER (1874, 621), (78, 28) */
(false):
/* CIF PROCEDURECALL (2054, 398), (126, 38) */
CALL writeln('1');
/* CIF TASK (2066, 451), (102, 35) */
TASK V2 := V1;
/* CIF TASK (2058, 501), (118, 35) */
TASK fail := true;
/* CIF JOIN (2099, 551), (35, 35) */
JOIN one;
ENDDECISION;
ENDDECISION;
/* CIF STATE (646, 53), (70, 35) */
STATE wait;
ENDSTATE;
ENDPROCESS og;
\ No newline at end of file
/* CIF PROCEDURECALL (1850, 664), (126, 38) */
call writeln('3');
/* CIF task (1820, 717), (187, 40) */
task 'v3 := v3(0) // v4(1)(0,4)'
/* CIF comment (2027, 719), (193, 40) */
comment 'raise Ada compilation error,
CHECKME';
/* CIF task (1820, 777), (187, 40) */
task 'v3 := v3(0) // {v4(1)(0,4)}'
/* CIF comment (2027, 779), (193, 40) */
comment 'raise Ada compilation error,
CHECKME';
/* CIF task (1878, 837), (70, 35) */
task v3 := v4;
/* CIF task (1854, 887), (118, 35) */
task fail := true;
/* CIF join (1896, 937), (35, 35) */
join two;
enddecision;
enddecision;
/* CIF ANSWER (2309, 242), (78, 28) */
(false):
/* CIF decision (2309, 285), (78, 50) */
decision fail;
/* CIF ANSWER (2267, 355), (73, 28) */
(true):
/* CIF PROCEDURECALL (2230, 398), (147, 38) */
call writeln('FAIL');
/* CIF NEXTSTATE (2269, 451), (70, 35) */
NEXTSTATE wait;
/* CIF ANSWER (2427, 355), (78, 28) */
(false):
/* CIF PROCEDURECALL (2403, 398), (126, 38) */
call writeln('1');
/* CIF task (2415, 451), (102, 35) */
task V2 := V1;
/* CIF task (2407, 501), (118, 35) */
task fail := true;
/* CIF join (2449, 551), (35, 35) */
join one;
enddecision;
enddecision;
/* CIF state (772, 53), (70, 35) */
state wait;
endstate;
endprocess og;
\ No newline at end of file
/* CIF PROCESS (250, 150), (150, 75) */
PROCESS packetmanager;
STATE AGGREGATION wait;
SUBSTRUCTURE
STATE packetReceival;
SUBSTRUCTURE
/* CIF TEXT (673, 16), (357, 140) */
-- Text area for declarations and comments
DCL noOfSentPackets My8BitArrayValueInteger := 1;
/* CIF ENDTEXT */
/* CIF START (28, 0), (70, 35) */
START;
/* CIF NEXTSTATE (0, 58), (127, 35) */
NEXTSTATE frameReceival;
/* CIF STATE (345, 0), (127, 35) */
STATE frameReceival;
/* CIF INPUT (318, 55), (181, 35) */
INPUT ReceivePacket(packet);
/* CIF OUTPUT (287, 105), (244, 35) */
OUTPUT SendFrameCount(length(packet));
/* CIF LABEL (348, 155), (122, 54) */
frameSending:
/* CIF OUTPUT (264, 224), (290, 35) */
OUTPUT SendFrame(packet(noOfSentPackets - 1));
/* CIF DECISION (258, 274), (301, 50) */
DECISION length(packet) = noOfSentPackets;
/* CIF ANSWER (137, 344), (70, 23) */
(true):
/* CIF RETURN (155, 382), (35, 35) */
RETURN ;
/* CIF ANSWER (618, 344), (70, 23) */
(false):
/* CIF TASK (339, 382), (628, 35) */
TASK noOfSentPackets := if noOfsentPackets = 255 then noOfSentPackets else noOfSentPackets + 1 fi;
/* CIF JOIN (636, 432), (35, 35) */
JOIN frameSending;
ENDDECISION;
ENDSTATE;
ENDSUBSTRUCTURE;
STATE frameReceival;
SUBSTRUCTURE
process packetmanager;
state aggregation wait;
substructure
state frameReceival;
substructure
/* CIF TEXT (1100, 14), (336, 140) */
-- Text area for declarations and comments
......@@ -49,42 +13,79 @@ PROCESS packetmanager;
START;
/* CIF NEXTSTATE (22, 50), (164, 35) */
NEXTSTATE frameCountReceival;
/* CIF STATE (270, 0), (164, 35) */
STATE frameCountReceival;
/* CIF INPUT (231, 55), (243, 35) */
INPUT ReceiveFrameCount(frameCount);
/* CIF state (726, 0), (127, 35) */
state frameReceival;
/* CIF input (695, 55), (189, 35) */
input ReceiveFrame(frame);
/* CIF task (515, 105), (548, 40) */
task frameCounter := if frameCounter = 255 then frameCounter else frameCounter + 1 fi;
/* CIF task (498, 165), (582, 35) */
task packet := packet (0, frameCounter -1) // { frame } // packet (frameCounter, length(packet));
/* CIF decision (675, 215), (229, 41) */
decision frameCounter = frameCount;
/* CIF ANSWER (631, 276), (70, 24) */
(true):
/* CIF output (585, 316), (162, 35) */
output SendPacket(packet);
/* CIF return (648, 366), (35, 35) */
return ;
/* CIF ANSWER (873, 276), (70, 24) */
(false):
/* CIF NEXTSTATE (844, 316), (127, 35) */
NEXTSTATE frameReceival;
enddecision;
endstate;
/* CIF state (270, 0), (164, 35) */
state frameCountReceival;
/* CIF input (231, 55), (243, 35) */
input ReceiveFrameCount(frameCount);
/* CIF NEXTSTATE (289, 105), (127, 35) */
NEXTSTATE frameReceival;
ENDSTATE;
/* CIF STATE (726, 0), (127, 35) */
STATE frameReceival;
/* CIF INPUT (695, 55), (189, 35) */
INPUT ReceiveFrame(frame);
/* CIF TASK (515, 105), (548, 38) */
TASK frameCounter := if frameCounter = 255 then frameCounter else frameCounter + 1 fi,
packet(frameCounter - 1) := frame;
/* CIF DECISION (675, 161), (229, 41) */
DECISION frameCounter = frameCount;
/* CIF ANSWER (631, 222), (70, 23) */
endstate;
endsubstructure;
state packetReceival;
substructure
/* CIF TEXT (673, 16), (357, 140) */
-- Text area for declarations and comments
DCL noOfSentPackets My8BitArrayValueInteger := 1;
/* CIF ENDTEXT */
/* CIF START (28, 0), (70, 35) */
START;
/* CIF NEXTSTATE (0, 58), (127, 35) */
NEXTSTATE frameReceival;
/* CIF state (345, 0), (127, 35) */
state frameReceival;
/* CIF input (318, 55), (181, 35) */
input ReceivePacket(packet);
/* CIF output (287, 105), (244, 35) */
output SendFrameCount(length(packet));
/* CIF label (348, 155), (122, 54) */
frameSending:
/* CIF output (264, 224), (290, 35) */
output SendFrame(packet(noOfSentPackets - 1));
/* CIF decision (258, 274), (301, 50) */
decision length(packet) = noOfSentPackets;
/* CIF ANSWER (137, 344), (70, 24) */
(true):
/* CIF OUTPUT (585, 260), (162, 35) */
OUTPUT SendPacket(packet);
/* CIF RETURN (648, 310), (35, 35) */
RETURN ;
/* CIF ANSWER (873, 222), (70, 23) */
/* CIF return (155, 384), (35, 35) */
return ;
/* CIF ANSWER (618, 344), (70, 24) */
(false):
/* CIF NEXTSTATE (844, 260), (127, 35) */
NEXTSTATE frameReceival;
ENDDECISION;
ENDSTATE;
ENDSUBSTRUCTURE;
/* CIF STATE (11, 0), (134, 35) */
STATE frameReceival;
ENDSTATE;
/* CIF STATE (0, 49), (159, 35) */
STATE packetReceival;
ENDSTATE;
ENDSUBSTRUCTURE;
/* CIF task (339, 384), (628, 35) */
task noOfSentPackets := if noOfsentPackets = 255 then noOfSentPackets else noOfSentPackets + 1 fi;
/* CIF join (636, 434), (35, 35) */
join frameSending;
enddecision;
endstate;
endsubstructure;
/* CIF state (0, 49), (159, 35) */
state packetReceival;
endstate;
/* CIF state (11, 0), (134, 35) */
state frameReceival;
endstate;
endsubstructure;
/* CIF TEXT (328, 13), (300, 140) */
-- Text area for declarations and comments
......@@ -96,11 +97,11 @@ packet(frameCounter - 1) := frame;
/* CIF ENDTEXT */
/* CIF START (49, 1), (70, 35) */
START;
/* CIF LABEL (49, 56), (70, 35) */
/* CIF label (49, 56), (70, 35) */
waiting:
/* CIF NEXTSTATE (49, 111), (70, 35) */
NEXTSTATE wait;
/* CIF STATE (175, 1), (70, 35) */
STATE wait;
ENDSTATE;
ENDPROCESS packetmanager;
\ No newline at end of file
/* CIF state (175, 1), (70, 35) */
state wait;
endstate;
endprocess packetmanager;
\ No newline at end of file
......@@ -29,10 +29,12 @@ My16BitArrayValueInteger ::= INTEGER (0..65535)
MyPacket ::= SEQUENCE (SIZE (0..255)) OF MyFrame
-- Stack for data in bits
MyDataStack ::= SEQUENCE (SIZE (40..2000)) OF BOOLEAN
--MyDataStack ::= SEQUENCE (SIZE (40..2000)) OF BOOLEAN
MyDataStack ::= SEQUENCE (SIZE (2000)) OF BOOLEAN
-- Stack for data of FCS calculation
MyFcsStack ::= SEQUENCE (SIZE (224..2192)) OF BOOLEAN -- Frame has empty info or is full
MyFcsStack ::= SEQUENCE (SIZE (2192)) OF BOOLEAN -- Frame has empty info or is full
--MyFcsStack ::= SEQUENCE (SIZE (224..2192)) OF BOOLEAN -- Frame has empty info or is full
-- Integer for data of FCS calculation
MyFcsStackInteger ::= INTEGER (0..2175)
......
......@@ -26,13 +26,13 @@ My16BitArrayInteger ::= INTEGER (0..15)
My16BitArrayValueInteger ::= INTEGER (0..65535)
-- Packet structure
MyPacket ::= SEQUENCE (SIZE (0..255)) OF MyFrame
MyPacket ::= SEQUENCE (SIZE (255)) OF MyFrame
-- Stack for data in bits
MyDataStack ::= SEQUENCE (SIZE (40..2000)) OF BOOLEAN
MyDataStack ::= SEQUENCE (SIZE (2000)) OF BOOLEAN
-- Stack for data of FCS calculation
MyFcsStack ::= SEQUENCE (SIZE (224..2192)) OF BOOLEAN -- Frame has empty info or is full
MyFcsStack ::= SEQUENCE (SIZE (2192)) OF BOOLEAN -- Frame has empty info or is full
-- Integer for data of FCS calculation
MyFcsStackInteger ::= INTEGER (0..2175)
......@@ -104,7 +104,7 @@ MyCntrl ::= My8BitArray -- Fixed value 0x03
MyCode ::= My8BitArray
-- INFO: Operation data
MyOperationData ::= SEQUENCE (SIZE (0..250)) OF My8BitArray
MyOperationData ::= SEQUENCE (SIZE (250)) OF My8BitArray
-- INFO: Info Frame check sequence
MyIfcs ::= My16BitArray
......@@ -116,22 +116,22 @@ MyAuth ::= My16BitArray
MyFcs ::= My16BitArray
-- Stack of L3 frames
MyL3Stack ::= SEQUENCE (SIZE (0..255)) OF MyL3Data
MyL3Stack ::= SEQUENCE (SIZE (255)) OF MyL3Data
-- Stack of L3 frame numbers
MyL3StackNumbers ::= SEQUENCE (SIZE (0..255)) OF BOOLEAN
MyL3StackNumbers ::= SEQUENCE (SIZE (255)) OF BOOLEAN
-- Integer for L3 frame stack numbering
MyL3StackInteger ::= INTEGER (0..254)
-- Stack of L3 missing frame numbers in octets
MyL3MissingStack ::= SEQUENCE (SIZE (0..255)) OF My8BitArray
MyL3MissingStack ::= SEQUENCE (SIZE (255)) OF My8BitArray
-- Stack for L3 data in bits
MyL3DataStack ::= SEQUENCE (SIZE (0..1960)) OF BOOLEAN
MyL3DataStack ::= SEQUENCE (SIZE (1960)) OF BOOLEAN
-- Stack for data of L3 FCS calculation
MyL3FcsStack ::= SEQUENCE (SIZE (80..2040)) OF BOOLEAN -- L3 frame is empty or full
MyL3FcsStack ::= SEQUENCE (SIZE (2040)) OF BOOLEAN -- L3 frame is empty or full
-- Integer for data of L3 FCS calculation
MyL3FcsStackInteger ::= INTEGER (0..2023)
......@@ -179,19 +179,19 @@ MyL3Mrt ::= My16BitArray
MyL3Fnum ::= My8BitArray
-- L3 FRAME: Data
MyL3Data ::= SEQUENCE (SIZE (0..245)) OF My8BitArray
MyL3Data ::= SEQUENCE (SIZE (245)) OF My8BitArray
-- Integer for L3 data
MyL3DataInteger ::= INTEGER (0..244)
-- Stack for L3 acknowledgement data in bits
MyL3AckDataStack ::= SEQUENCE (SIZE (0..1952)) OF BOOLEAN
MyL3AckDataStack ::= SEQUENCE (SIZE (1952)) OF BOOLEAN
-- Stack for data of L3 acknowledgement FCS calculation
MyL3AckFcsStack ::= SEQUENCE (SIZE (88..2040)) OF BOOLEAN -- L3 acknowledgement frame is empty or full
MyL3AckFcsStack ::= SEQUENCE (SIZE (2040)) OF BOOLEAN -- L3 acknowledgement frame is empty or full
-- Stack of L3 missing frame numbers
MyL3AckMissingStack ::= SEQUENCE (SIZE (0..244)) OF INTEGER (0..255)
MyL3AckMissingStack ::= SEQUENCE (SIZE (244)) OF INTEGER (0..255)
-- Integer for stack of L3 missing frame stack numbering
MyL3AckMissingStackInteger ::= INTEGER (0..243)
......@@ -219,7 +219,7 @@ MyL3Lfn ::= My8BitArray
MyL3Hfn ::= My8BitArray
-- L3 ACKNOWLEDGEMENT FRAME: Frame numbers missing
MyL3Rrq ::= SEQUENCE (SIZE (0..244)) OF My8BitArray
MyL3Rrq ::= SEQUENCE (SIZE (244)) OF My8BitArray
-- Integer for L3 frame numbers missing
MyL3RrqInteger ::= INTEGER (0..243)
......@@ -234,7 +234,7 @@ MyInputData ::= SEQUENCE {
}
-- INPUT DATA: Raw data
MyRawData ::= SEQUENCE (SIZE (0..62475)) OF My8BitArray -- Up to 255 frames of data
MyRawData ::= SEQUENCE (SIZE (62475)) OF My8BitArray -- Up to 255 frames of data
-- Integer for raw data numbering
MyRawDataInteger ::= INTEGER (0..62475)
......
SYSTEM orchestrator;
system orchestrator;
/* CIF TEXT (880, 108), (315, 128) */
use datatypes comment 'dataview-uniq.asn';
signal pulse (t_int);
signal arr (t_seqof);
signal paramless;
signal pulse (t_int);
signal arr (t_seqof);
signal paramless;
/* CIF ENDTEXT */
CHANNEL c
FROM ENV TO orchestrator WITH pulse,
channel c
from env to orchestrator with pulse,
arr,
paramless;
ENDCHANNEL;
BLOCK orchestrator;
SIGNALROUTE r
FROM ENV TO orchestrator WITH pulse,
endchannel;
block orchestrator;
signalroute r
from env to orchestrator with pulse,
arr,
paramless;
CONNECT c AND r;
connect c and r;
/* CIF PROCESS (465, 158), (265, 176) */
PROCESS orchestrator;