osate / osate2

Open Source AADL2 Tool Environment
http://osate.org
Eclipse Public License 2.0
36 stars 8 forks source link

Warning on missing actual prototype parameter? #316

Closed stevevestal closed 8 years ago

stevevestal commented 10 years ago

Why am I getting a warning of a missing feature classifier in all of the connections near the end of this package? Why aren't the classifiers being defined by the actual parameters at line 36, where Controller.MBS100 is declared? (And why is a label required on the connection declarations? If you remove the labels, you get syntax errors.)

package ParamClassifier public

bus MemoryFabric
end MemoryFabric;

bus implementation MemoryFabric.Nonblocking
end MemoryFabric.Nonblocking;

bus Cable
end Cable;

bus implementation Cable.MBS100
properties
    Transmission_Type => push;
    -- 100 mbps = 1 bit per 10 ns
    -- Fixed is 84 octets frame plus gap, 84 * 8 * 10ns = 6720 ns
    Transmission_Time => [Fixed => 6720 ns .. 6720 ns; PerByte => 80 ns .. 80 ns;];     
end Cable.MBS100;

bus Controller
prototypes
    cableType: bus Cable;
    busType: bus MemoryFabric;
features
    p0: requires bus access cableType;
    p1: requires bus access cableType;  
    memBus: requires bus access busType;    
end Controller;

bus implementation Controller.Imp
end Controller.Imp;

bus implementation Controller.MBS100 
extends Controller.Imp (cableType => bus Cable.MBS100, busType => bus MemoryFabric.Nonblocking)
properties
    Transmission_Type => push;
    -- Assumes a fixed upper bound on the time required to place an incoming
    -- message from a processor onto the appropriate outgoing port queue.
    Transmission_Time => [Fixed => 672 ns .. 672 ns; PerByte => 0 ns .. 0 ns;];     
end Controller.MBS100;

system FACE653
features
    p0: requires bus access Cable.MBS100;
    p1: requires bus access Cable.MBS100;       
end FACE653;

system implementation FACE653.DualCore
subcomponents
    controller: bus Controller.MBS100;      
    fabric: bus MemoryFabric.Nonblocking;
connections
    -- Why do these give warnings that the classifiers are missing?
    eb0: bus access controller.p0 <-> p0;
    eb1: bus access controller.p1 <-> p1;       
    mb5: bus access fabric <-> controller.memBus;               
end FACE653.DualCore;   

end ParamClassifier;

lwrage commented 10 years ago

The bug is that the AADL validation does not resolve prototypes. This also applies to other validations.

lwrage commented 8 years ago

Created #641 for the underlying issue, closed this one as a duplicate.