|
|
|
|
@ -451,12 +451,17 @@ package rtps_test_package is
|
|
|
|
|
procedure gen_inline_qos(status : in CACHE_CHANGE_KIND_TYPE; key : in INSTANCE_HANDLE_TYPE; output : inout TEST_PACKET_TYPE);
|
|
|
|
|
-- Like previous procedure but with "pid" and "offset" parameters.
|
|
|
|
|
procedure gen_inline_qos(status : in CACHE_CHANGE_KIND_TYPE; key : in INSTANCE_HANDLE_TYPE; output : inout TEST_PACKET_TYPE; pid : in std_logic_vector(PARAMETER_ID_WIDTH-1 downto 0); offset : in integer);
|
|
|
|
|
-- Generate Parameter List Element
|
|
|
|
|
-- pid Parameter ID of element
|
|
|
|
|
-- data Parameter Data of element
|
|
|
|
|
-- output Destination of generated output
|
|
|
|
|
procedure gen_parameter(pid : in std_logic_vector(PARAMETER_ID_WIDTH-1 downto 0); data : in TEST_PACKET_TYPE; output : inout TEST_PACKET_TYPE);
|
|
|
|
|
-- Generate Parameter List Element [NOTE: Dat has to be in the correct endianness]
|
|
|
|
|
-- pid Parameter ID of element
|
|
|
|
|
-- data Parameter Data of element
|
|
|
|
|
-- littleEndian If TRUE the generated Data is in little Endian, else in Big Endian
|
|
|
|
|
-- output Destination of generated output
|
|
|
|
|
procedure gen_parameter(pid : in std_logic_vector(PARAMETER_ID_WIDTH-1 downto 0); data : in TEST_PACKET_TYPE; littleEndian : in std_logic; output : inout TEST_PACKET_TYPE);
|
|
|
|
|
-- Generate Parameter List Sentinel. This procedure should be used to finalize Parameter Lists
|
|
|
|
|
-- littleEndian If TRUE the generated Data is in little Endian, else in Big Endian
|
|
|
|
|
-- output Destination of generated output
|
|
|
|
|
procedure gen_sentinel(littleEndian : in std_logic; output : inout TEST_PACKET_TYPE);
|
|
|
|
|
-- Shortcut of previous procedure in Big Endian
|
|
|
|
|
procedure gen_sentinel(output : inout TEST_PACKET_TYPE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1517,9 +1522,9 @@ package body rtps_test_package is
|
|
|
|
|
-- GUID
|
|
|
|
|
if (pid = PID_PARTICIPANT_GUID) then
|
|
|
|
|
assert (16+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_PARTICIPANT_GUID & endian_swap(ref.littleEndian, int(16+(offset*4), PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_PARTICIPANT_GUID) & endian_swap(ref.littleEndian, int(16+(offset*4), PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_PARTICIPANT_GUID & endian_swap(ref.littleEndian, int(16, PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_PARTICIPANT_GUID) & endian_swap(ref.littleEndian, int(16, PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := ref.guidPrefix(0);
|
|
|
|
|
@ -1536,9 +1541,9 @@ package body rtps_test_package is
|
|
|
|
|
-- DOMAIN ID
|
|
|
|
|
if (pid = PID_DOMAIN_ID) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DOMAIN_ID & endian_swap(ref.littleEndian, int(4+(offset*4), PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DOMAIN_ID) & endian_swap(ref.littleEndian, int(4+(offset*4), PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DOMAIN_ID & endian_swap(ref.littleEndian, int(4, PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DOMAIN_ID) & endian_swap(ref.littleEndian, int(4, PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.domainId);
|
|
|
|
|
@ -1551,9 +1556,9 @@ package body rtps_test_package is
|
|
|
|
|
tmp := string_len(ref.domainTag);
|
|
|
|
|
if (pid = PID_DOMAIN_TAG) then
|
|
|
|
|
assert (((round_div(tmp,4)+1)*4)+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DOMAIN_TAG & endian_swap(ref.littleEndian, int(((round_div(tmp,4)+1)*4)+(offset*4), PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DOMAIN_TAG) & endian_swap(ref.littleEndian, int(((round_div(tmp,4)+1)*4)+(offset*4), PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DOMAIN_TAG & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4, PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DOMAIN_TAG) & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4, PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, int(tmp, CDR_LONG_WIDTH));
|
|
|
|
|
@ -1569,9 +1574,9 @@ package body rtps_test_package is
|
|
|
|
|
-- PROTOCOL VERSION
|
|
|
|
|
if (pid = PID_PROTOCOL_VERSION) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_PROTOCOL_VERSION & endian_swap(ref.littleEndian, int(4+(offset*4), PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_PROTOCOL_VERSION) & endian_swap(ref.littleEndian, int(4+(offset*4), PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_PROTOCOL_VERSION & endian_swap(ref.littleEndian, int(4, PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_PROTOCOL_VERSION) & endian_swap(ref.littleEndian, int(4, PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := (others => '0');
|
|
|
|
|
@ -1583,9 +1588,9 @@ package body rtps_test_package is
|
|
|
|
|
-- VENDORID
|
|
|
|
|
if (pid = PID_VENDORID) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_VENDORID & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_VENDORID) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_VENDORID & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_VENDORID) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := (others => '0');
|
|
|
|
|
@ -1598,9 +1603,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.expectsInlineQoS(0) /= DEFAULT_EXPECTS_INLINE_QOS or pid = PID_EXPECTS_INLINE_QOS) then
|
|
|
|
|
if (pid = PID_EXPECTS_INLINE_QOS) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_EXPECTS_INLINE_QOS & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_EXPECTS_INLINE_QOS) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_EXPECTS_INLINE_QOS & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_EXPECTS_INLINE_QOS) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := (others => '0');
|
|
|
|
|
@ -1616,9 +1621,9 @@ package body rtps_test_package is
|
|
|
|
|
for i in 0 to tmp-1 loop
|
|
|
|
|
if (pid = PID_METATRAFFIC_MULTICAST_LOCATOR) then
|
|
|
|
|
assert (24+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_METATRAFFIC_MULTICAST_LOCATOR & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_METATRAFFIC_MULTICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_METATRAFFIC_MULTICAST_LOCATOR & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_METATRAFFIC_MULTICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.metatrafficMulticastLocatorList.locator(i).kind);
|
|
|
|
|
@ -1644,9 +1649,9 @@ package body rtps_test_package is
|
|
|
|
|
for i in 0 to tmp-1 loop
|
|
|
|
|
if (pid = PID_METATRAFFIC_UNICAST_LOCATOR) then
|
|
|
|
|
assert (24+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_METATRAFFIC_UNICAST_LOCATOR & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_METATRAFFIC_UNICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_METATRAFFIC_UNICAST_LOCATOR & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_METATRAFFIC_UNICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.metatrafficUnicastLocatorList.locator(i).kind);
|
|
|
|
|
@ -1672,9 +1677,9 @@ package body rtps_test_package is
|
|
|
|
|
for i in 0 to tmp-1 loop
|
|
|
|
|
if (pid = PID_DEFAULT_MULTICAST_LOCATOR) then
|
|
|
|
|
assert (24+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DEFAULT_MULTICAST_LOCATOR & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DEFAULT_MULTICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DEFAULT_MULTICAST_LOCATOR & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DEFAULT_MULTICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.defaultMulticastLocatorList.locator(i).kind);
|
|
|
|
|
@ -1701,9 +1706,9 @@ package body rtps_test_package is
|
|
|
|
|
for i in 0 to tmp-1 loop
|
|
|
|
|
if (pid = PID_DEFAULT_UNICAST_LOCATOR) then
|
|
|
|
|
assert (24+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DEFAULT_UNICAST_LOCATOR & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DEFAULT_UNICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DEFAULT_UNICAST_LOCATOR & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DEFAULT_UNICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.defaultUnicastLocatorList.locator(i).kind);
|
|
|
|
|
@ -1727,9 +1732,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.leaseDuration /= DEFAULT_PARTICIPANT_LEASE_DURATION or pid = PID_PARTICIPANT_LEASE_DURATION) then
|
|
|
|
|
if (pid = PID_PARTICIPANT_LEASE_DURATION) then
|
|
|
|
|
assert (8+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_PARTICIPANT_LEASE_DURATION & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_PARTICIPANT_LEASE_DURATION) & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_PARTICIPANT_LEASE_DURATION & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_PARTICIPANT_LEASE_DURATION) & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, std_logic_vector(ref.leaseDuration(0)));
|
|
|
|
|
@ -1743,9 +1748,9 @@ package body rtps_test_package is
|
|
|
|
|
-- AVAILABLE ENDPOINTS
|
|
|
|
|
if (pid = PID_BUILTIN_ENDPOINT_SET) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_BUILTIN_ENDPOINT_SET & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_BUILTIN_ENDPOINT_SET) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_BUILTIN_ENDPOINT_SET & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_BUILTIN_ENDPOINT_SET) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.availableBuiltinEndpoints);
|
|
|
|
|
@ -1757,9 +1762,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.builtinEndpointQoS /= DEFAULT_BUILTIN_ENDPOINT_QOS or pid = PID_BUILTIN_ENDPOINT_QOS) then
|
|
|
|
|
if (pid = PID_BUILTIN_ENDPOINT_QOS) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_BUILTIN_ENDPOINT_QOS & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_BUILTIN_ENDPOINT_QOS) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_BUILTIN_ENDPOINT_QOS & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_BUILTIN_ENDPOINT_QOS) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.builtinEndpointQoS);
|
|
|
|
|
@ -1771,9 +1776,9 @@ package body rtps_test_package is
|
|
|
|
|
-- MANUAL LIVELINESS COUNT
|
|
|
|
|
if (pid = PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.manualLivelinessCount);
|
|
|
|
|
@ -2150,9 +2155,9 @@ package body rtps_test_package is
|
|
|
|
|
-- GUID
|
|
|
|
|
if (pid = PID_ENDPOINT_GUID) then
|
|
|
|
|
assert (16+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_ENDPOINT_GUID & endian_swap(ref.littleEndian, int(16+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_ENDPOINT_GUID) & endian_swap(ref.littleEndian, int(16+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_ENDPOINT_GUID & endian_swap(ref.littleEndian, int(16,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_ENDPOINT_GUID) & endian_swap(ref.littleEndian, int(16,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := ref.participant.guidPrefix(0);
|
|
|
|
|
@ -2170,9 +2175,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.expectsInlineQoS(0) /= DEFAULT_EXPECTS_INLINE_QOS or pid = PID_EXPECTS_INLINE_QOS) then
|
|
|
|
|
if (pid = PID_EXPECTS_INLINE_QOS) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_EXPECTS_INLINE_QOS & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_EXPECTS_INLINE_QOS) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_EXPECTS_INLINE_QOS & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_EXPECTS_INLINE_QOS) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := (others => '0');
|
|
|
|
|
@ -2186,9 +2191,9 @@ package body rtps_test_package is
|
|
|
|
|
tmp := string_len(ref.topic_name);
|
|
|
|
|
if (pid = PID_TOPIC_NAME) then
|
|
|
|
|
assert (((round_div(tmp,4)+1)*4)+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_TOPIC_NAME & endian_swap(ref.littleEndian, int(((round_div(tmp,4)+1)*4)+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_TOPIC_NAME) & endian_swap(ref.littleEndian, int(((round_div(tmp,4)+1)*4)+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_TOPIC_NAME & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_TOPIC_NAME) & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, int(tmp, CDR_LONG_WIDTH));
|
|
|
|
|
@ -2204,9 +2209,9 @@ package body rtps_test_package is
|
|
|
|
|
tmp := string_len(ref.type_name);
|
|
|
|
|
if (pid = PID_TYPE_NAME) then
|
|
|
|
|
assert (((round_div(tmp,4)+1)*4)+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_TYPE_NAME & endian_swap(ref.littleEndian, int(((round_div(tmp,4)+1)*4)+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_TYPE_NAME) & endian_swap(ref.littleEndian, int(((round_div(tmp,4)+1)*4)+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_TYPE_NAME & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_TYPE_NAME) & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, int(tmp,CDR_LONG_WIDTH));
|
|
|
|
|
@ -2222,9 +2227,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.durability /= DEFAULT_DURABILITY_QOS or pid = PID_DURABILITY) then
|
|
|
|
|
if (pid = PID_DURABILITY) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DURABILITY & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DURABILITY) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DURABILITY & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DURABILITY) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.durability);
|
|
|
|
|
@ -2239,9 +2244,9 @@ package body rtps_test_package is
|
|
|
|
|
ref.durability_service_max_instances /= DEFAULT_DURABILITY_SERVICE_MAX_INSTANCES or ref.durability_service_max_samples_per_instances /= DEFAULT_DURABILITY_SERVICE_MAX_SAMPLES_PER_INSTANCE or pid = PID_DURABILITY_SERVICE) then
|
|
|
|
|
if (pid = PID_DURABILITY_SERVICE) then
|
|
|
|
|
assert (28+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DURABILITY_SERVICE & endian_swap(ref.littleEndian, int(28+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DURABILITY_SERVICE) & endian_swap(ref.littleEndian, int(28+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DURABILITY_SERVICE & endian_swap(ref.littleEndian, int(28,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DURABILITY_SERVICE) & endian_swap(ref.littleEndian, int(28,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, std_logic_vector(ref.durability_service_cleanup_delay(0)));
|
|
|
|
|
@ -2266,9 +2271,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.presentation /= DEFAULT_PRESENTATION_QOS or ref.coherent_access(0) /= boolean_to_std_logic(DEFAULT_COHERENT_ACCESS) or ref.ordered_access(0) /= boolean_to_std_logic(DEFAULT_ORDERED_ACCESS) or pid = PID_PRESENTATION) then
|
|
|
|
|
if (pid = PID_PRESENTATION) then
|
|
|
|
|
assert (8+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_PRESENTATION & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_PRESENTATION) & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_PRESENTATION & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_PRESENTATION) & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.presentation);
|
|
|
|
|
@ -2283,9 +2288,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.deadline /= DEFAULT_DEADLINE_QOS or pid = PID_DEADLINE) then
|
|
|
|
|
if (pid = PID_DEADLINE) then
|
|
|
|
|
assert (8+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DEADLINE & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DEADLINE) & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DEADLINE & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DEADLINE) & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, std_logic_vector(ref.deadline(0)));
|
|
|
|
|
@ -2300,9 +2305,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.latency_budget /= DEFAULT_LATENCY_BUDGET_QOS or pid = PID_LATENCY_BUDGET) then
|
|
|
|
|
if (pid = PID_LATENCY_BUDGET) then
|
|
|
|
|
assert (8+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_LATENCY_BUDGET & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_LATENCY_BUDGET) & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_LATENCY_BUDGET & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_LATENCY_BUDGET) & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, std_logic_vector(ref.latency_budget(0)));
|
|
|
|
|
@ -2317,9 +2322,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.ownership /= DEFAULT_OWNERSHIP_QOS or pid = PID_OWNERSHIP) then
|
|
|
|
|
if (pid = PID_OWNERSHIP) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_OWNERSHIP & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_OWNERSHIP) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_OWNERSHIP & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_OWNERSHIP) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.ownership);
|
|
|
|
|
@ -2332,9 +2337,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.ownership_strength /= DEFAULT_OWNERSHIP_STRENGTH_QOS or pid = PID_OWNERSHIP_STRENGTH) then
|
|
|
|
|
if (pid = PID_OWNERSHIP_STRENGTH) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_OWNERSHIP_STRENGTH & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_OWNERSHIP_STRENGTH) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_OWNERSHIP_STRENGTH & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_OWNERSHIP_STRENGTH) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.ownership_strength);
|
|
|
|
|
@ -2347,9 +2352,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.liveliness /= DEFAULT_LIVELINESS_QOS or ref.leaseDuration /= DEFAULT_LEASE_DURATION or pid = PID_LIVELINESS) then
|
|
|
|
|
if (pid = PID_LIVELINESS) then
|
|
|
|
|
assert (12+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_LIVELINESS & endian_swap(ref.littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_LIVELINESS) & endian_swap(ref.littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_LIVELINESS & endian_swap(ref.littleEndian, int(12,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_LIVELINESS) & endian_swap(ref.littleEndian, int(12,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.liveliness);
|
|
|
|
|
@ -2366,9 +2371,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.time_based_filter /= DEFAULT_TIME_BASED_FILTER_QOS or pid = PID_TIME_BASED_FILTER) then
|
|
|
|
|
if (pid = PID_TIME_BASED_FILTER) then
|
|
|
|
|
assert (8+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_TIME_BASED_FILTER & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_TIME_BASED_FILTER) & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_TIME_BASED_FILTER & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_TIME_BASED_FILTER) & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, std_logic_vector(ref.time_based_filter(0)));
|
|
|
|
|
@ -2383,9 +2388,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.reliability /= DEFAULT_RELIABILITY_QOS or ref.max_blocking_time /= DEFAULT_MAX_BLOCKING_TIME or pid = PID_RELIABILITY) then
|
|
|
|
|
if (pid = PID_RELIABILITY) then
|
|
|
|
|
assert (12+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_RELIABILITY & endian_swap(ref.littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_RELIABILITY) & endian_swap(ref.littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_RELIABILITY & endian_swap(ref.littleEndian, int(12,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_RELIABILITY) & endian_swap(ref.littleEndian, int(12,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.reliability);
|
|
|
|
|
@ -2402,9 +2407,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.transport_priority /= DEFAULT_TRANSPORT_PRIORITY_QOS or pid = PID_TRANSPORT_PRIORITY) then
|
|
|
|
|
if (pid = PID_TRANSPORT_PRIORITY) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_TRANSPORT_PRIORITY & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_TRANSPORT_PRIORITY) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_TRANSPORT_PRIORITY & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_TRANSPORT_PRIORITY) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.transport_priority);
|
|
|
|
|
@ -2417,9 +2422,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.lifespan /= DEFAULT_LIFESPAN_QOS or pid = PID_LIFESPAN) then
|
|
|
|
|
if (pid = PID_LIFESPAN) then
|
|
|
|
|
assert (8+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_LIFESPAN & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_LIFESPAN) & endian_swap(ref.littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_LIFESPAN & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_LIFESPAN) & endian_swap(ref.littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, std_logic_vector(ref.lifespan(0)));
|
|
|
|
|
@ -2434,9 +2439,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.destination_order /= DEFAULT_DESTINATION_ORDER_QOS or pid = PID_DESTINATION_ORDER) then
|
|
|
|
|
if (pid = PID_DESTINATION_ORDER) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DESTINATION_ORDER & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DESTINATION_ORDER) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DESTINATION_ORDER & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DESTINATION_ORDER) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.destination_order);
|
|
|
|
|
@ -2451,9 +2456,9 @@ package body rtps_test_package is
|
|
|
|
|
for i in 0 to tmp-1 loop
|
|
|
|
|
if (pid = PID_MULTICAST_LOCATOR) then
|
|
|
|
|
assert (24+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_MULTICAST_LOCATOR & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_MULTICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_MULTICAST_LOCATOR & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_MULTICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.multicastLocatorList.locator(i).kind);
|
|
|
|
|
@ -2479,9 +2484,9 @@ package body rtps_test_package is
|
|
|
|
|
for i in 0 to tmp-1 loop
|
|
|
|
|
if (pid = PID_UNICAST_LOCATOR) then
|
|
|
|
|
assert (24+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_UNICAST_LOCATOR & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_UNICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_UNICAST_LOCATOR & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_UNICAST_LOCATOR) & endian_swap(ref.littleEndian, int(24,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.unicastLocatorList.locator(i).kind);
|
|
|
|
|
@ -2504,7 +2509,7 @@ package body rtps_test_package is
|
|
|
|
|
-- USER DATA
|
|
|
|
|
tmp := string_len(ref.user_data);
|
|
|
|
|
if (tmp > 1) then
|
|
|
|
|
output.data(output.length) := PID_USER_DATA & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_USER_DATA) & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, int(tmp, 32));
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
@ -2516,7 +2521,7 @@ package body rtps_test_package is
|
|
|
|
|
-- TOPIC DATA
|
|
|
|
|
tmp := string_len(ref.topic_data);
|
|
|
|
|
if (tmp > 1) then
|
|
|
|
|
output.data(output.length) := PID_TOPIC_DATA & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_TOPIC_DATA) & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, int(tmp,32));
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
@ -2528,7 +2533,7 @@ package body rtps_test_package is
|
|
|
|
|
-- GROUP DATA
|
|
|
|
|
tmp := string_len(ref.group_data);
|
|
|
|
|
if (tmp > 1) then
|
|
|
|
|
output.data(output.length) := PID_GROUP_DATA & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_GROUP_DATA) & endian_swap(ref.littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, int(tmp,32));
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
@ -2542,9 +2547,9 @@ package body rtps_test_package is
|
|
|
|
|
if (unsigned(ref.max_size_serialized) /= 0) then
|
|
|
|
|
if (pid = PID_DATA_MAX_SIZE_SERIALIZED) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DATA_MAX_SIZE_SERIALIZED & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DATA_MAX_SIZE_SERIALIZED) & endian_swap(ref.littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DATA_MAX_SIZE_SERIALIZED & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, PID_DATA_MAX_SIZE_SERIALIZED) & endian_swap(ref.littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(ref.littleEndian, ref.max_size_serialized);
|
|
|
|
|
@ -2606,16 +2611,21 @@ package body rtps_test_package is
|
|
|
|
|
output.last(output.length-1) := '1';
|
|
|
|
|
end procedure;
|
|
|
|
|
|
|
|
|
|
procedure gen_sentinel(output : inout TEST_PACKET_TYPE) is
|
|
|
|
|
procedure gen_sentinel(littleEndian : in std_logic; output : inout TEST_PACKET_TYPE) is
|
|
|
|
|
begin
|
|
|
|
|
output.data(output.length) := PID_SENTINEL & (0 to PARAMETER_LENGTH_WIDTH-1 => '0');
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_SENTINEL) & (0 to PARAMETER_LENGTH_WIDTH-1 => '0');
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
end procedure;
|
|
|
|
|
|
|
|
|
|
procedure gen_parameter(pid : in std_logic_vector(PARAMETER_ID_WIDTH-1 downto 0); data : in TEST_PACKET_TYPE; output : inout TEST_PACKET_TYPE) is
|
|
|
|
|
procedure gen_sentinel(output : inout TEST_PACKET_TYPE) is
|
|
|
|
|
begin
|
|
|
|
|
gen_sentinel('0', output);
|
|
|
|
|
end procedure;
|
|
|
|
|
|
|
|
|
|
procedure gen_parameter(pid : in std_logic_vector(PARAMETER_ID_WIDTH-1 downto 0); data : in TEST_PACKET_TYPE; littleEndian : in std_logic; output : inout TEST_PACKET_TYPE) is
|
|
|
|
|
begin
|
|
|
|
|
-- PARAMETER HEADER
|
|
|
|
|
output.data(output.length) := pid & int(data.length*4,PARAMETER_LENGTH_WIDTH);
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, pid) & endian_swap(littleEndian, int(data.length*4, PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
-- DATA
|
|
|
|
|
for i in 0 to data.length-1 loop
|
|
|
|
|
@ -2632,9 +2642,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.instance /= HANDLE_NIL or pid = PID_KEY_HASH) then
|
|
|
|
|
if (pid = PID_KEY_HASH) then
|
|
|
|
|
assert (16+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_KEY_HASH & endian_swap(littleEndian, int(16+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_KEY_HASH) & endian_swap(littleEndian, int(16+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_KEY_HASH & endian_swap(littleEndian, int(16,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_KEY_HASH) & endian_swap(littleEndian, int(16,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := ref.instance(0);
|
|
|
|
|
@ -2653,9 +2663,9 @@ package body rtps_test_package is
|
|
|
|
|
if (ref.kind /= ALIVE or pid = PID_STATUS_INFO) then
|
|
|
|
|
if (pid = PID_STATUS_INFO) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_STATUS_INFO & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_STATUS_INFO) & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_STATUS_INFO & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_STATUS_INFO) & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := (others => '0');
|
|
|
|
|
@ -2680,9 +2690,9 @@ package body rtps_test_package is
|
|
|
|
|
tmp := string_len(endpoint.topic_name);
|
|
|
|
|
if (pid = PID_TOPIC_NAME) then
|
|
|
|
|
assert (((round_div(tmp,4)+1)*4)+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_TOPIC_NAME & endian_swap(littleEndian, int(((round_div(tmp,4)+1)*4)+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_TOPIC_NAME) & endian_swap(littleEndian, int(((round_div(tmp,4)+1)*4)+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_TOPIC_NAME & endian_swap(littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_TOPIC_NAME) & endian_swap(littleEndian, int((round_div(tmp,4)+1)*4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, int(tmp, CDR_LONG_WIDTH));
|
|
|
|
|
@ -2698,9 +2708,9 @@ package body rtps_test_package is
|
|
|
|
|
if (endpoint.durability /= DEFAULT_DURABILITY_QOS or pid = PID_DURABILITY) then
|
|
|
|
|
if (pid = PID_DURABILITY) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DURABILITY & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_DURABILITY) & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DURABILITY & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_DURABILITY) & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, endpoint.durability);
|
|
|
|
|
@ -2713,9 +2723,9 @@ package body rtps_test_package is
|
|
|
|
|
if (endpoint.presentation /= DEFAULT_PRESENTATION_QOS or endpoint.coherent_access(0) /= boolean_to_std_logic(DEFAULT_COHERENT_ACCESS) or endpoint.ordered_access(0) /= boolean_to_std_logic(DEFAULT_ORDERED_ACCESS) or pid = PID_PRESENTATION) then
|
|
|
|
|
if (pid = PID_PRESENTATION) then
|
|
|
|
|
assert (8+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_PRESENTATION & endian_swap(littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_PRESENTATION) & endian_swap(littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_PRESENTATION & endian_swap(littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_PRESENTATION) & endian_swap(littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, endpoint.presentation);
|
|
|
|
|
@ -2730,9 +2740,9 @@ package body rtps_test_package is
|
|
|
|
|
if (endpoint.deadline /= DEFAULT_DEADLINE_QOS or pid = PID_DEADLINE) then
|
|
|
|
|
if (pid = PID_DEADLINE) then
|
|
|
|
|
assert (8+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DEADLINE & endian_swap(littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_DEADLINE) & endian_swap(littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DEADLINE & endian_swap(littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_DEADLINE) & endian_swap(littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, std_logic_vector(endpoint.deadline(0)));
|
|
|
|
|
@ -2747,9 +2757,9 @@ package body rtps_test_package is
|
|
|
|
|
if (endpoint.latency_budget /= DEFAULT_LATENCY_BUDGET_QOS or pid = PID_LATENCY_BUDGET) then
|
|
|
|
|
if (pid = PID_LATENCY_BUDGET) then
|
|
|
|
|
assert (8+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_LATENCY_BUDGET & endian_swap(littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_LATENCY_BUDGET) & endian_swap(littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_LATENCY_BUDGET & endian_swap(littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_LATENCY_BUDGET) & endian_swap(littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, std_logic_vector(endpoint.latency_budget(0)));
|
|
|
|
|
@ -2764,9 +2774,9 @@ package body rtps_test_package is
|
|
|
|
|
if (endpoint.ownership /= DEFAULT_OWNERSHIP_QOS or pid = PID_OWNERSHIP) then
|
|
|
|
|
if (pid = PID_OWNERSHIP) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_OWNERSHIP & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_OWNERSHIP) & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_OWNERSHIP & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_OWNERSHIP) & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, endpoint.ownership);
|
|
|
|
|
@ -2779,9 +2789,9 @@ package body rtps_test_package is
|
|
|
|
|
if (endpoint.ownership_strength /= DEFAULT_OWNERSHIP_STRENGTH_QOS or pid = PID_OWNERSHIP_STRENGTH) then
|
|
|
|
|
if (pid = PID_OWNERSHIP_STRENGTH) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_OWNERSHIP_STRENGTH & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_OWNERSHIP_STRENGTH) & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_OWNERSHIP_STRENGTH & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_OWNERSHIP_STRENGTH) & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, endpoint.ownership_strength);
|
|
|
|
|
@ -2794,9 +2804,9 @@ package body rtps_test_package is
|
|
|
|
|
if (endpoint.liveliness /= DEFAULT_LIVELINESS_QOS or endpoint.leaseDuration /= DEFAULT_LEASE_DURATION or pid = PID_LIVELINESS) then
|
|
|
|
|
if (pid = PID_LIVELINESS) then
|
|
|
|
|
assert (12+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_LIVELINESS & endian_swap(littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_LIVELINESS) & endian_swap(littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_LIVELINESS & endian_swap(littleEndian, int(12,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_LIVELINESS) & endian_swap(littleEndian, int(12,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, endpoint.liveliness);
|
|
|
|
|
@ -2813,9 +2823,9 @@ package body rtps_test_package is
|
|
|
|
|
if (endpoint.reliability /= DEFAULT_RELIABILITY_QOS or endpoint.max_blocking_time /= DEFAULT_MAX_BLOCKING_TIME or pid = PID_RELIABILITY) then
|
|
|
|
|
if (pid = PID_RELIABILITY) then
|
|
|
|
|
assert (12+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_RELIABILITY & endian_swap(littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_RELIABILITY) & endian_swap(littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_RELIABILITY & endian_swap(littleEndian, int(12,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_RELIABILITY) & endian_swap(littleEndian, int(12,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, endpoint.reliability);
|
|
|
|
|
@ -2832,9 +2842,9 @@ package body rtps_test_package is
|
|
|
|
|
if (endpoint.transport_priority /= DEFAULT_TRANSPORT_PRIORITY_QOS or pid = PID_TRANSPORT_PRIORITY) then
|
|
|
|
|
if (pid = PID_TRANSPORT_PRIORITY) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_TRANSPORT_PRIORITY & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_TRANSPORT_PRIORITY) & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_TRANSPORT_PRIORITY & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_TRANSPORT_PRIORITY) & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, endpoint.transport_priority);
|
|
|
|
|
@ -2847,9 +2857,9 @@ package body rtps_test_package is
|
|
|
|
|
if (endpoint.lifespan /= DEFAULT_LIFESPAN_QOS or pid = PID_LIFESPAN) then
|
|
|
|
|
if (pid = PID_LIFESPAN) then
|
|
|
|
|
assert (8+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_LIFESPAN & endian_swap(littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_LIFESPAN) & endian_swap(littleEndian, int(8+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_LIFESPAN & endian_swap(littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_LIFESPAN) & endian_swap(littleEndian, int(8,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, std_logic_vector(endpoint.lifespan(0)));
|
|
|
|
|
@ -2864,9 +2874,9 @@ package body rtps_test_package is
|
|
|
|
|
if (endpoint.destination_order /= DEFAULT_DESTINATION_ORDER_QOS or pid = PID_DESTINATION_ORDER) then
|
|
|
|
|
if (pid = PID_DESTINATION_ORDER) then
|
|
|
|
|
assert (4+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
|
|
|
|
|
output.data(output.length) := PID_DESTINATION_ORDER & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_DESTINATION_ORDER) & endian_swap(littleEndian, int(4+(offset*4),PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
else
|
|
|
|
|
output.data(output.length) := PID_DESTINATION_ORDER & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, PID_DESTINATION_ORDER) & endian_swap(littleEndian, int(4,PARAMETER_LENGTH_WIDTH));
|
|
|
|
|
end if;
|
|
|
|
|
output.length := output.length + 1;
|
|
|
|
|
output.data(output.length) := endian_swap(littleEndian, endpoint.destination_order);
|
|
|
|
|
|