InterfaceView.aadl 3.61 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
PACKAGE interfaceview::IV
PUBLIC
WITH DataView;
WITH interfaceview::FV;
WITH Taste;

---------------------------------------------------
-- TASTE Interface View 
---------------------------------------------------

  SYSTEM interfaceview
  END interfaceview;

  SYSTEM IMPLEMENTATION interfaceview.others
    SUBCOMPONENTS
      My_C_Function: SYSTEM interfaceview::IV::My_C_Function.others
        { Taste::Coordinates => "62 203 533 1091"; };
      My_Simulink_Function: SYSTEM interfaceview::IV::My_Simulink_Function.others
        { Taste::Coordinates => "907 203 1600 1084"; };
    CONNECTIONS
      obj911 : SUBPROGRAM ACCESS My_Simulink_Function.Add_Two_Params_obj96  -> My_C_Function.obj846_obj75 
        { Taste::Coordinates => "533 392 720 392 720 392 907 392"; };
  END interfaceview.others;

  ---------------------------------------------------
  -- TASTE Function: interfaceview::IV::My_C_Function
  ---------------------------------------------------

  SYSTEM My_C_Function
    FEATURES
      obj846_obj75 : REQUIRES SUBPROGRAM ACCESS interfaceview::FV::Add_Two_Params_obj96.others 
        { Taste::Coordinates => "533 392";
          Taste::RCMoperationKind => unprotected;};
      pulse_obj250 : PROVIDES SUBPROGRAM ACCESS interfaceview::FV::pulse_obj250.others
        { Taste::Coordinates => "533 795";
          Taste::RCMoperationKind => cyclic;
          Taste::RCMperiod => 1000 ms;
          Taste::Deadline => 0 ms;
          Taste::Importance => MEDIUM ;};
    PROPERTIES
      Source_Language => C;
      Taste::Instance_Name => "Function0";
  END My_C_Function;

  SYSTEM IMPLEMENTATION My_C_Function.others
    SUBCOMPONENTS
      pulse_obj250_impl : SUBPROGRAM interfaceview::FV::pulse_obj250.others
        { Compute_Execution_Time => 0ms..0ms ;};
    CONNECTIONS
      SUBPROGRAM ACCESS pulse_obj250_impl  -> pulse_obj250;
  END My_C_Function.others;

  ---------------------------------------------------
  -- TASTE Function: interfaceview::IV::My_Simulink_Function
  ---------------------------------------------------

  SYSTEM My_Simulink_Function
    FEATURES
      Add_Two_Params_obj96 : PROVIDES SUBPROGRAM ACCESS interfaceview::FV::Add_Two_Params_obj96.others
        { Taste::Coordinates => "907 392";
          Taste::RCMoperationKind => unprotected;
          Taste::RCMperiod => 0 ms;
          Taste::Deadline => 0 ms;
          Taste::Importance => MEDIUM ;};
    PROPERTIES
      Source_Language => Simulink;
      Taste::Instance_Name => "Function1";
  END My_Simulink_Function;

  SYSTEM IMPLEMENTATION My_Simulink_Function.others
    SUBCOMPONENTS
      Add_Two_Params_obj96_impl : SUBPROGRAM interfaceview::FV::Add_Two_Params_obj96.others
        { Compute_Execution_Time => 0ms..0ms ;};
    CONNECTIONS
      SUBPROGRAM ACCESS Add_Two_Params_obj96_impl  -> Add_Two_Params_obj96;
  END My_Simulink_Function.others;



PROPERTIES
  Taste::Coordinates => "0 0 2970 2100";
  Taste::dataView => ("DataView","DataView");
  Taste::dataViewPath => ("DataView.aadl");

END interfaceview::IV;

PACKAGE interfaceview::FV
PUBLIC

WITH DataView;
WITH TASTE;

  SUBPROGRAM pulse_obj250
  END pulse_obj250;

  SUBPROGRAM IMPLEMENTATION pulse_obj250.others
  END pulse_obj250.others;

  SUBPROGRAM Add_Two_Params_obj96
    FEATURES
      first_param : IN PARAMETER DataView::MyInteger
        { Taste::encoding => NATIVE; };
      second_param : IN PARAMETER DataView::MyInteger
        { Taste::encoding => NATIVE; };
      result : OUT PARAMETER DataView::MyInteger
        { Taste::encoding => NATIVE; };
  END Add_Two_Params_obj96;

  SUBPROGRAM IMPLEMENTATION Add_Two_Params_obj96.others
  END Add_Two_Params_obj96.others;

END interfaceview::FV;