The public section of package Navigation needs a with Nav_Types.
The notation for the record terms is wrong:
using parens () instead of brackets [].
using a comma ',' instead of a semicolon ';' to separate the second from the third element.
So it should be
package Navigation
public
with Nav_Types;
process Blended_Navigation
features
GPS_Data : in data port Nav_Types::GPS;
INS_Data : in data port Nav_Types::INS;
Position_ECEF : out data port Nav_Types::Position_ECEF;
Position_NED : out data port Nav_Types::Position_NED;
properties
-- the input rate of GPS is twice that of INS
Input_Rate => [ Value_Range => 50.0 .. 50.0; Rate_Unit => perSecond; Rate_Distribution => Fixed; ] applies to GPS_Data;
Input_Rate => [ Value_Range => 100.0 .. 100.0; Rate_Unit => perSecond; Rate_Distribution => Fixed; ] applies to INS_Data;
end Blended_Navigation;
process implementation Blended_Navigation.Simple
subcomponents
Integrate : thread;
Navigate : thread;
end Blended_Navigation.Simple;
end Navigation;
The example on page 145 has some errors:
public
section of packageNavigation
needs awith Nav_Types
.()
instead of brackets[]
.So it should be