big reorganization agreed during 2017-10-26
This commit is contained in:
CyrilleComar
2017-10-26 15:28:50 +02:00
parent c55d46c6a8
commit b914e6c263
169 changed files with 41455 additions and 41498 deletions

View File

@@ -1,12 +0,0 @@
# Specification of the product to be developed
*Streamlining Development Assurance - muXAV Use Case*
This folder contains the specification of a toy drone named muXAV (micro
Uninhabited Air Vehicle) intended to support experiments on various ways of
performing development assurance.
As of 2016/09/20 the folder contains only the
RESSAC_CaseStudy_muXAV_Specification.docx and the
RESSAC_UseCase_FAA_Dallas2016_09_15.ppt files.
A Modelica model implementing the DIF part of the document is planned for fall of 2016.

View File

@@ -1,2 +0,0 @@
This folder contains the system layer development & assurance artefacts for the
Electrical Propulsion subsystem

View File

@@ -1,2 +0,0 @@
This folder contains the system layer development & assurance artefacts for the
Hydraulic Breaking subsystem

View File

@@ -1,2 +0,0 @@
This folder contains the system layer development & assurance artefacts for the
Mission Management subsystem

View File

@@ -1,79 +0,0 @@
ACTIVITIES:
1 - Identification and validation of inputs / outputs:
* Design:
The specification is structured into a component based architecture. Each component and sub-component has identified inputs and outputs, which may have types, bounds... Information flows through these signals between components.
Each sub-component is a child package of its container. Inputs and outputs of components are translated as functions without parameters stored in specific child packages named Comp.Input and Comp.Output. Types for signals are stored at the root of the architecture, namely in mms.ads. They are as precise as we could make them, based on the specifications available.
Links between inputs and outputs of various components are made through renamings, or through expression functions when the mapping is more complex. Inputs and outputs are grouped together depending on where they are coming from/where they are going to.
* Verifications:
We have checked by review that:
- Inputs and outputs of components are consistent, namely, if a component A has an output to another component B, then B must have an input from A and conversely.
+ Method: If a function F is in a group of inputs (resp. outputs) of a component Comp1 labelled 'From Comp2' (resp. 'To Comp2'), where Comp2 is inside the same container as Comp1, check that Comp2.Output (resp. Comp2.Input) has a section 'To Comp1' (resp. 'From Comp1') containing a matching output (resp. input).
+ Result: Inconsistencies have been reported.
- Types (as well as bounds and units) are consistent between sources and destinations.
+ Method: This is enforced through static typing by turning the destination of a signal as a renaming of its origin.
+ Assumptions: When no information was supplied, we have made the following choices:
* Payload_Mass_Type is in kg with a precision of 0.1 and bounds of 1.0 and 5.0.
* [...]
- The component structure is well-formed, namely, information does not flow through the edge of components.
+ Method: This can be verified by reviewing use clauses inserted at the beginning of inputs or outputs packages. More precisely
* An input package Comp.Subcomp.Input can only reference outputs of siblings Comp.*.Output or inputs of parent Comp.Input.
* An output package Comp.Output can only reference its own inputs Comp.Input or outputs of its children Comp.Subcomp.Output.
+ Result: No inconsistency found.
2 - Review of the specification for translatability in Ada contracts:
* Design:
Each component provides one or more procedures located in a child package Comp.Behavior. They are responsible of updating the internal state of the component at each step. Scheduling is not considered here. These procedures may have a contract, representing the part of behavioural specification of the component which is translatable into Ada contracts. Contracts from the specification document are translated as Ada contracts of a Run procedure located in a distinct unit, named Comp.Behavior.Guarantees. Parts of specification contracts and of functional behaviours which are not fit for translation into SPARK contracts will be listed here.
* Report for translatability into Ada contracts:
- MMS.F_PT.F_MM:
6.6.3
Inherited assumptions A, B, C, D, E: Not translated (linked to weather condition).
Inherited assumption F: Translated into types (validity of inputs).
Inherited guarantees A, B: Translated as postconditions.
6.6.3.1
A. Additional assumption: Translated into types (validity of inputs).
6.6.3.1
A. Additional guarantee: Translated as a postcondition.
6.6.4
Behavioural Specification: Mostly translated as contracts. Parts involving calculations or update frequencies have been kept as comments. Notably missing, external and internal disturbances (linked to weather conditions and AV behavior).
- MMS.F_PT.F_EM:
6.8.3.1
Assumptions A, B: Not translated (linked with AV, mechanical body behavior)
6.8.3.2
Guarantee A: Not translated (linked with weather conditions)
Guarantees B, C: Not translated (linked with actual embedded energy which is not measurable)
- MMS.F_PT.F_CM:
6.9.3.1:
Assumptions A. B, C, E: Not translated (linked with AV's electrical and mechanical behavior)
6.9.3.2:
Guarantees A, B: The outputs are ensured to be initialized
Guarantee C: Translated as a postcondition on F_MM.Behavior.garantees.Run (arbitration has been moved to F_MM).
- MMS.F_EL:
7.3.2:
Guarantees A, B: Not tranlated (linked to weather conditions)
- MMS.F_FC:
6.7.3.1:
Assumption A: Not tranlated (linked to measurements)
Assumption B: Input safety assumptions are automatic
Assumption C: Not translated, F_FC does not have the necessary inputs.
6.7.3.2:
Guarantees A, B, C: Not translated (linked to weather conditions and mechanical body behavior)
Guarantees D, E: Translated as postconditions.
* Verifications:
The SPARK toolset can be used to check that:
- Ada contracts are consistent. If it is a case by case contract, SPARK can check that all cases are covered and that no two cases can apply to the same inputs. If some properties or some information can only be accessed in some cases, these cases can be expressed as preconditions on property or information functions and SPARK will check that they are always used in valid context.
- Guarantees are implied by the behavioral specification. If both can be expressed as Ada contracts, SPARK can check that, if the behavioural specification of a component is respected by its implementation, then the implementation will also respect the guarantees as stated in the specification contracts. For this, a body has to be provided for Behavior.garantees.Run, calling explicitely the procedures declared in Behavior in a meaningful order.

View File

@@ -1,2 +0,0 @@
This folder contains the SPARK version of the software layer development
& assurance artefacts for the Mission Management subsystem

View File

@@ -1,73 +0,0 @@
with Types; use Types;
package External with Abstract_State => (State with External => Async_Writers) is
------------------------------------------------------
-- Ground-based Mission Preparation and Supervision --
------------------------------------------------------
function Navigation_Parameters return Navigation_Parameters_Type_Option with
Volatile_Function,
Global => State;
function Navigation_Mode return Navigation_Mode_Type_Option with
Volatile_Function,
Global => State;
function Navigation_Option return Navigation_Option_Type_Option with
Volatile_Function,
Global => State;
function Go return Boolean with
Volatile_Function,
Global => State;
function Emergency_Landing return Boolean with
Volatile_Function,
Global => State;
--------------------------------------------------
-- AV-based Mission Preparation (Control Panel) --
--------------------------------------------------
function On_OFF_Push_Button return Boolean with
Volatile_Function,
Global => State;
function Start_Push_Button return Boolean with
Volatile_Function,
Global => State;
function Mode_Switch return Navigation_Mode_Type with
Volatile_Function,
Global => State;
function Bay_Switch return Bay_Switch_Type with
Volatile_Function,
Global => State;
function Payload_Mass return Payload_Mass_Type with
Volatile_Function,
Global => State;
function USB_Key return USB_Key_Type_Option with
Volatile_Function,
Global => State;
-------------------------
-- Physical Parameters --
-------------------------
function P return Distance_Type with
Volatile_Function,
Global => State;
function P_Dot return Speed_Type with
Volatile_Function,
Global => State;
function Q return Angle_Type with
Volatile_Function,
Global => State;
end External;

View File

@@ -1,37 +0,0 @@
with Types; use Types;
package MMS.F_EL.Behavior with SPARK_Mode is
------------
-- Inputs --
------------
function P return Distance_Type with Global => Private_State;
function P_Dot return Speed_Type with Global => Private_State;
function Q return Angle_Type with Global => Private_State;
----------------------
-- Estimated Values --
----------------------
function Q_Dot return Speed_Type with Global => Private_State;
---------------------------------------
-- Behavioural Specification of F_EL --
---------------------------------------
procedure Read_Inputs with
-- Read values of inputs once and for all and update the current state
Global => (In_Out => Private_State);
procedure Write_Outputs with
-- Compute values of outputs from the current state
Global => (Input => Private_State,
Output => Output_State);
procedure Run with
Global => (In_Out => Private_State);
end MMS.F_EL.Behavior;

View File

@@ -1,28 +0,0 @@
with MMS.Input;
with MMS.F_PT.Output;
with Types; use Types;
package MMS.F_EL.Input is
--------------
-- From MMS --
--------------
function P return Distance_Type
renames MMS.Input.P;
function P_Dot return Speed_Type
renames MMS.Input.P_Dot;
function Q return Angle_Type
renames MMS.Input.Q;
---------------
-- From F_PT --
---------------
function Emergency_Landing return Boolean
renames MMS.F_PT.Output.Emergency_Landing;
end MMS.F_EL.Input;

View File

@@ -1,19 +0,0 @@
with Types; use Types;
package MMS.F_EL.Output is
------------
-- To MMS --
------------
function Propulsion_Torque return Torque_Type with Global => Output_State;
function Braking_Torque return Torque_Type with Global => Output_State;
-------------
-- To F_PT --
-------------
function Mission_Abort return Boolean with Global => Output_State;
end MMS.F_EL.Output;

View File

@@ -1,4 +0,0 @@
private
package MMS.F_EL.State is
end MMS.F_EL.State;

View File

@@ -1,4 +0,0 @@
package MMS.F_EL with Abstract_State => (Private_State, Output_State) is
pragma Elaborate_Body (MMS.F_EL);
end MMS.F_EL;

View File

@@ -1,7 +0,0 @@
with Types; use Types;
package MMS.F_PT.Data is
Payload_Mass_Grid : Payload_Mass_Grid_Type (1 .. 10); -- ??? bounds
end MMS.F_PT.Data;

View File

@@ -1,92 +0,0 @@
with MMS.F_PT.Input;
with MMS.F_PT.F_MM.Output;
with MMS.F_PT.F_FC.Output;
with MMS.F_PT.F_EM.Output;
with Types; use Types;
package MMS.F_PT.F_CM.Input is
---------------
-- From F_PT --
---------------
function Navigation_Parameters return Navigation_Parameters_Type_Option
renames MMS.F_PT.Input.Navigation_Parameters;
function Navigation_Mode return Navigation_Mode_Type_Option
renames MMS.F_PT.Input.Navigation_Mode;
function Navigation_Option return Navigation_Option_Type_Option
renames MMS.F_PT.Input.Navigation_Option;
function Go return Boolean
renames MMS.F_PT.Input.Go;
function Emergency_Landing return Boolean
renames MMS.F_PT.Input.Emergency_Landing;
function On_OFF_Push_Button return Boolean
renames MMS.F_PT.Input.On_OFF_Push_Button;
function Start_Push_Button return Boolean
renames MMS.F_PT.Input.Start_Push_Button;
function Mode_Switch return Navigation_Mode_Type
renames MMS.F_PT.Input.Mode_Switch;
function Bay_Switch return Bay_Switch_Type
renames MMS.F_PT.Input.Bay_Switch;
function Payload_Mass return Payload_Mass_Type
renames MMS.F_PT.Input.Payload_Mass;
function USB_Key return USB_Key_Type_Option
renames MMS.F_PT.Input.USB_Key;
function P return Distance_Type
renames MMS.F_PT.Input.P;
function P_Dot return Speed_Type
renames MMS.F_PT.Input.P_Dot;
function Q return Angle_Type
renames MMS.F_PT.Input.Q;
---------------
-- From F_MM --
---------------
function Mission_Aborted return Boolean
renames MMS.F_PT.F_MM.Output.Mission_Aborted;
function Mission_Complete return Boolean
renames MMS.F_PT.F_MM.Output.Mission_Complete;
function Mission_Cancelled return Boolean
renames MMS.F_PT.F_MM.Output.Mission_Cancelled;
function Ready_For_Takeoff return Boolean
renames MMS.F_PT.F_MM.Output.Ready_For_Takeoff;
---------------
-- From F_EM --
---------------
function Primary_Source return Source_Type
renames MMS.F_PT.F_EM.Output.Primary_Source;
function Secondary_Source return Source_Type
renames MMS.F_PT.F_EM.Output.Secondary_Source;
---------------
-- From F_FC --
---------------
function Propulsion_Torque return Torque_Type
renames MMS.F_PT.F_FC.Output.Propulsion_Torque;
function Braking_Torque return Torque_Type
renames MMS.F_PT.F_FC.Output.Braking_Torque;
end MMS.F_PT.F_CM.Input;

View File

@@ -1,109 +0,0 @@
with MMS.F_PT.F_CM.Input;
with Types; use Types;
package MMS.F_PT.F_CM.Output is
-------------
-- To F_PT --
-------------
function CP_Switches return CP_Switches_Type is
(CP_Switches_Type'
(Power => MMS.F_PT.F_CM.Input.On_OFF_Push_Button, -- ???
Mode => MMS.F_PT.F_CM.Input.Mode_Switch,
Bay => MMS.F_PT.F_CM.Input.Bay_Switch,
Start => MMS.F_PT.F_CM.Input.Start_Push_Button,
Rotactor_1 =>
Rotactor_Type (MMS.F_PT.F_CM.Input.Payload_Mass / 10),
Rotactor_2 =>
Rotactor_Type (MMS.F_PT.F_CM.Input.Payload_Mass mod 10)));
-- ??? Rotactors are computed from payload mass, which one is which?
function CP_Displays return CP_Displays_Type is
(CP_Displays_Type'
(Ready => MMS.F_PT.F_CM.Input.Ready_For_Takeoff,
Cancelled => MMS.F_PT.F_CM.Input.Mission_Cancelled,
Complete => MMS.F_PT.F_CM.Input.Mission_Complete,
Aborted => MMS.F_PT.F_CM.Input.Mission_Aborted,
Primary_Source => MMS.F_PT.F_CM.Input.Primary_Source,
Secondary_Source => MMS.F_PT.F_CM.Input.Secondary_Source));
function Propulsion_Energy return Propulsion_Energy_Type is
(Propulsion_Energy_Type'
(Primary_Source_Capacity => MMS.F_PT.F_CM.Input.Primary_Source,
Secondary_Source_Capacity => MMS.F_PT.F_CM.Input.Secondary_Source));
function Mission_Cancelled return Boolean
renames MMS.F_PT.F_CM.Input.Mission_Cancelled;
function Mission_Complete return Boolean
renames MMS.F_PT.F_CM.Input.Mission_Complete;
function Mission_Aborted return Boolean
renames MMS.F_PT.F_CM.Input.Mission_Aborted;
function Primary_Source return Source_Type
renames MMS.F_PT.F_CM.Input.Primary_Source;
function Secondary_Source return Source_Type
renames MMS.F_PT.F_CM.Input.Secondary_Source;
function Propulsion_Torque return Torque_Type
renames MMS.F_PT.F_CM.Input.Propulsion_Torque;
function Braking_Torque return Torque_Type
renames MMS.F_PT.F_CM.Input.Braking_Torque;
-------------
-- To F_MM --
-------------
function Navigation_Parameters return Navigation_Parameters_Type_Option
renames MMS.F_PT.F_CM.Input.Navigation_Parameters;
function Navigation_Mode return Navigation_Mode_Type_Option
renames MMS.F_PT.F_CM.Input.Navigation_Mode;
function Navigation_Option return Navigation_Option_Type_Option
renames MMS.F_PT.F_CM.Input.Navigation_Option;
function Go return Boolean
renames MMS.F_PT.F_CM.Input.Go;
function Emergency_Landing return Boolean
renames MMS.F_PT.F_CM.Input.Emergency_Landing;
function On_OFF_Push_Button return Boolean
renames MMS.F_PT.F_CM.Input.On_OFF_Push_Button;
function Start_Push_Button return Boolean
renames MMS.F_PT.F_CM.Input.Start_Push_Button;
function Mode_Switch return Navigation_Mode_Type
renames MMS.F_PT.F_CM.Input.Mode_Switch;
function Bay_Switch return Bay_Switch_Type
renames MMS.F_PT.F_CM.Input.Bay_Switch;
function USB_Key return USB_Key_Type_Option
renames MMS.F_PT.F_CM.Input.USB_Key;
----------------------
-- To F_MM and F_FC --
----------------------
function Payload_Mass return Payload_Mass_Type
renames MMS.F_PT.F_CM.Input.Payload_Mass;
-------------
-- To F_FC --
-------------
function P return Distance_Type renames MMS.F_PT.F_CM.Input.P;
function P_Dot return Speed_Type renames MMS.F_PT.F_CM.Input.P_Dot;
function Q return Angle_Type renames MMS.F_PT.F_CM.Input.Q;
end MMS.F_PT.F_CM.Output;

View File

@@ -1,7 +0,0 @@
with Types; use Types;
package MMS.F_PT.F_CM is
end MMS.F_PT.F_CM;

View File

@@ -1,81 +0,0 @@
with MMS.F_PT.F_EM.Data;
package MMS.F_PT.F_EM.Behavior with SPARK_Mode is
------------
-- Inputs --
------------
function Propulsion_Torque return Torque_Type with Global => Private_State;
function Braking_Torque return Torque_Type with Global => Private_State;
function P_Dot return Speed_Type with Global => Private_State;
---------------------------------------
-- Behavioural Specification of F_EM --
---------------------------------------
procedure Read_Inputs with
-- Read values of inputs once and for all and update the current state
Global => (In_Out => Private_State);
procedure Write_Outputs with
-- Compute values of outputs from the current state
Global => (Input => Private_State,
Output => Output_State);
procedure Run with
Global => (In_Out => Private_State);
private
function Primary_Initial_Capacity return Energy_Level_Type
is
(Data.Primary_Initial_Capacity + Data.Secondary_Initial_CapacitY)
with Global => Private_State;
function Propulsion_Energy return Energy_Level_Type
with Global => Private_State;
-- Integral [0-t] Propulsion_Torque(u) * P_Dot(u) * du
function Braking_Energy return Energy_Level_Type
with Global => Private_State;
-- Integral [0-t] Braking_Torque(u) * P_Dot(u) * du
function Dispended_Energy return Energy_Level_Type
is
(Propulsion_Energy + Braking_Energy)
with Global => Private_State;
function Primary_Energy_Left return Energy_Level_Type
is
(Data.Primary_Initial_Capacity - Dispended_Energy)
with Global => Private_State;
function Primary_Source return Source_Type
is
(Source_Type (100 *
(Data.Primary_Initial_Capacity - Dispended_Energy /
Data.Primary_Initial_Capacity)))
with Global => Private_State;
function Secondary_Energy_Left return Energy_Level_Type
is
(if Primary_Source > 0 then
Data.Secondary_Initial_Capacity
else
Data.Secondary_Initial_Capacity - Dispended_Energy)
with Global => Private_State;
function Secondary_Source return Source_Type
is
(if Primary_Source > 0 then
100
else
Source_Type (100 *
(Data.Secondary_Initial_Capacity - Dispended_Energy /
Data.Secondary_Initial_Capacity)))
with Global => Private_State;
end MMS.F_PT.F_EM.Behavior;

View File

@@ -1,14 +0,0 @@
with Types; use Types;
package MMS.F_PT.F_EM.Data is
---------------
-- Constants --
---------------
-- From 6.8.4
Primary_Initial_Capacity : Energy_Level_Type;
Secondary_Initial_Capacity : Energy_Level_Type;
end MMS.F_PT.F_EM.Data;

View File

@@ -1,25 +0,0 @@
with MMS.F_PT.F_FC.Output;
with MMS.F_PT.F_CM.Output;
with Types; use Types;
package MMS.F_PT.F_EM.Input is
---------------
-- From F_FC --
---------------
function Propulsion_Torque return Torque_Type
renames MMS.F_PT.F_FC.Output.Propulsion_Torque;
function Braking_Torque return Torque_Type
renames MMS.F_PT.F_FC.Output.Propulsion_Torque;
---------------
-- From F_CM --
---------------
function P_Dot return Speed_Type
renames MMS.F_PT.F_CM.Output.P_Dot;
end MMS.F_PT.F_EM.Input;

View File

@@ -1,19 +0,0 @@
with Types; use Types;
package MMS.F_PT.F_EM.Output is
-------------
-- To F_CM --
-------------
function Primary_Source return Source_Type with Global => Output_State;
function Secondary_Source return Source_Type with Global => Output_State;
-------------
-- To F_MM --
-------------
function Energy_Level return Energy_Level_Type with Global => Output_State;
end MMS.F_PT.F_EM.Output;

View File

@@ -1,4 +0,0 @@
private
package MMS.F_PT.F_EM.State is
end MMS.F_PT.F_EM.State;

View File

@@ -1,6 +0,0 @@
with Types; use Types;
package MMS.F_PT.F_EM with Abstract_State => (Private_State, Output_State) is
pragma Elaborate_Body (MMS.F_PT.F_EM);
end MMS.F_PT.F_EM;

View File

@@ -1,43 +0,0 @@
with MMS.F_PT.F_FC.State;
package body MMS.F_PT.F_FC.Behavior.Guarantees with SPARK_Mode is
Stored_Time_Since_In_Safety_Escape : Time_Type with Ghost;
function Get_Time_Since_In_Safety_Escape return Time_Type is
(Stored_Time_Since_In_Safety_Escape);
procedure Run is
begin
if On_State = RUNNING then
Check_Safety_Escape;
if not In_Safety_Envelope then
Stored_Time_Since_In_Safety_Escape := Time_Since_In_Safety_Escape;
end if;
Choose_Operating_Mode;
end if;
AV_State_Vector;
Update_State;
if On_State = RUNNING then
Propulsion_Braking_Mutual_Exclusion;
Reference_Trajectory_Computation;
if Engine_State = PROPULSION then
Gain_Scheduling;
Propulsion_Control;
State.Braking_Torque := 0.0;
elsif Engine_State = BRAKING then
Gain_Scheduling;
Braking_Control;
State.Propulsion_Torque := 0.0;
else
State.Braking_Torque := 0.0;
State.Propulsion_Torque := 0.0;
end if;
end if;
end Run;
end MMS.F_PT.F_FC.Behavior.Guarantees;

View File

@@ -1,45 +0,0 @@
with MMS.F_PT.F_FC.Data;
with Types; use Types;
package MMS.F_PT.F_FC.Behavior.Guarantees with SPARK_Mode is
pragma Unevaluated_Use_Of_Old (Allow);
-----------------------------------
-- High-Level Properties on F_FC --
-----------------------------------
function Engine_State_In_Braking return Boolean is
(On_State = RUNNING
and then Engine_State in Braking_State_Type);
function Engine_State_In_Propulsion return Boolean is
(On_State = RUNNING
and then Engine_State in Propulsion_State_Type);
function Get_Time_Since_In_Safety_Escape return Time_Type with
Ghost;
-----------------------------------
-- High-Level Garantees for F_FC --
-----------------------------------
procedure Run with
Post =>
-- 6.7.3.2.D Propulsion and braking torque actions are in mutual
-- exclusion.
(if (Engine_State_In_Propulsion'Old and then Engine_State_In_Braking)
or else (Engine_State_In_Braking'Old and then Engine_State_In_Propulsion)
then Time_Since_Stopped > MMS.F_PT.F_FC.Data.Commutation_Duration)
-- 6.7.3.2.E In-flight mission concellation with remaining propulsion
-- capacity implies occurrence of safety excapes for more than
-- Escape_Time seconds.
and then
(if On_State = ABORTED and then On_State'Old /= ABORTED
and then Aborted_With_Propulsion_Available
then Get_Time_Since_In_Safety_Escape > MMS.F_PT.F_FC.Data.Escape_Time);
end MMS.F_PT.F_FC.Behavior.Guarantees;

View File

@@ -1,793 +0,0 @@
with MMS.F_PT.F_FC.Data;
with External;
with Types; use Types; use all type Types.Mks.Mks_Type;
with MMS.F_PT.Data;
package MMS.F_PT.F_FC.Behavior with SPARK_Mode is
pragma Unevaluated_Use_Of_Old (Allow);
------------
-- Inputs --
------------
function P return Distance_Type with Global => Input_State;
function P_Dot return Speed_Type with Global => Input_State;
function Q return Angle_Type with Global => Input_State;
function Start_Take_Off return Boolean with
Global => (Input => Input_State, Proof_In => Private_State),
Pre => On_State = INIT;
function Start_Landing return Boolean with
Global => (Input => Input_State, Proof_In => Private_State),
Pre => On_State = RUNNING;
function Operating_Point return Operating_Point_Type with
Global => Input_State;
function Operating_Mode return Navigation_Option_Type with
Global => Input_State;
function Mission_Range return Current_Range_Type with
Global => Input_State;
function Emergency_Landing return Boolean with
Global => Input_State;
function Payload_Mass return Payload_Mass_Type with
Global => Input_State;
--------------------------
-- Properties on Inputs --
--------------------------
function Operating_Point_Changed return Boolean with
Global => Input_State;
function Operating_Mode_Changed return Boolean with
Global => Input_State;
----------------------
-- Estimated Values --
----------------------
function Q_Dot return Speed_Type with Global => Input_State;
------------
-- States --
------------
function On_State return On_State_Type with
Global => Private_State;
function Running_State return Running_State_Type with
Global => Private_State;
function Engine_State return Engine_State_Type with
Global => (Input => Mutual_Exclusion_State, Proof_In => Private_State),
Pre => On_State = RUNNING;
function Aborted_With_Propulsion_Available return Boolean with
Global => Private_State,
Pre => On_State = ABORTED;
----------------
-- Properties --
----------------
-- From 6.7.3.2
function Flight_Phase return Flight_Phase_Type with
Global => (Input => Trajectory_State, Proof_In => Private_State),
Pre => On_State = RUNNING;
function In_Safety_Envelope return Boolean is
(case Flight_Phase is
when CLIMB =>
Q_Dot in MMS.F_PT.F_FC.Data.Qdot_MinCl .. MMS.F_PT.F_FC.Data.Qdot_MaxCl
and Q < MMS.F_PT.F_FC.Data.Q_MaxCl,
when CRUISE =>
Q_Dot in MMS.F_PT.F_FC.Data.Qdot_MinCr .. MMS.F_PT.F_FC.Data.Qdot_MaxCr
and Q > MMS.F_PT.F_FC.Data.Q_MinCr
and P_Dot < MMS.F_PT.F_FC.Data.Pdot_MaxCr,
when DESCENT =>
Q_Dot in MMS.F_PT.F_FC.Data.Qdot_MinDs .. MMS.F_PT.F_FC.Data.Qdot_MaxDs
and Q < MMS.F_PT.F_FC.Data.Q_MaxDs)
with Pre => On_State = RUNNING;
function Selected_Option return Speed_Or_Altitude with
Global => (Input => Operating_Mode_State,
Proof_In => Private_State),
Pre => On_State = RUNNING;
function Already_Running return Boolean with
Global => Private_State,
Pre => On_State = RUNNING;
function Time_Since_In_Safety_Escape return Time_Type with
Global => (Input => Safety_Escape_State,
Proof_In => (Input_State, Trajectory_State, Private_State)),
Pre => On_State = RUNNING and then not In_Safety_Envelope;
function Fast_Evolving_Safety_Escape return Boolean with
Global => (Input => Private_State,
Proof_In => (Input_State, Trajectory_State)),
Pre => On_State = RUNNING and then not In_Safety_Envelope;
function Time_Since_Stopped return Time_Type with
Global => (Input => Mutual_Exclusion_State, Proof_In => Private_State),
Pre => On_State = RUNNING;
function Propulsion_Torque return Torque_Type with
Global => Propulsion_State;
function Braking_Torque return Torque_Type with
Global => Braking_State;
function Current_Speed return Current_Speed_Type with
Global => AV_State_Vector_State;
function Current_Altitude return Current_Altitude_Type with
Global => AV_State_Vector_State;
function Current_Range return Current_Range_Type with
Global => AV_State_Vector_State;
function Estimated_Total_Mass return Estimated_Total_Mass_Type with
Global => AV_State_Vector_State;
---------------------------------------
-- Behavioural Specification of F_FC --
---------------------------------------
procedure Read_Inputs with
-- Read values of inputs once and for all and update the current state
Post => Operating_Point_Changed =
(Operating_Point'Old /= Operating_Point)
and then Operating_Mode_Changed =
(Operating_Mode'Old /= Operating_Mode);
procedure Write_Outputs with
-- Compute values of outputs from the current state
Global => (Input => (Input_State,
Trajectory_State,
Private_State,
Mutual_Exclusion_State,
Gain_Scheduling_State,
Propulsion_State,
Braking_State),
Output => Output_State);
-----------------------
-- Safety Objectives --
-----------------------
-- See 7.7.3.2.E
procedure Check_Safety_Escape with
Global => (Input => (Input_State, Trajectory_State),
In_Out => Safety_Escape_State),
Pre => On_State in RUNNING,
Post =>
-- Time_Since_In_Safety_Escape is the number of seconds since the first
-- occurrence of safety escapes.
(if not In_Safety_Envelope then
(if In_Safety_Envelope'Old then Time_Since_In_Safety_Escape = 0
else Time_Since_In_Safety_Escape > Time_Since_In_Safety_Escape'Old));
---------------------------------------------
-- Choice of Operating Mode in Energy Mode --
---------------------------------------------
-- See 6.7.4 (Propulsion Control)
procedure Choose_Operating_Mode with
-- Two systems of two equations in (pdotA, qA), (pdotS, qS) are to be solved.
-- First:
-- g/L= (pdotA) ** 2 * cos(qA)
-- Operating_Point.Altitude = L * (1 - cos(qA))
-- Second<6E>:
-- g/L = (pdotS) ** 2 * cos(qS)
-- Operating_Point.Speed = pdotS * L * sin(qS)
-- If pdotA < pdotS, option ALTITUDE is selected otherwise SPEED is
-- selected.
Global => (Input => Input_State,
In_Out => Operating_Mode_State),
Pre => On_State = RUNNING,
Post =>
(if Already_Running
and then not Operating_Mode_Changed
and then not Operating_Point_Changed
then Selected_Option = Selected_Option'Old)
and then
(if Operating_Mode in SPEED | ALTITUDE then
Selected_Option = Operating_Mode);
-----------------------
-- AV's State Vector --
-----------------------
procedure AV_State_Vector with
Global => (Input => Input_State,
In_Out => AV_State_Vector_State);
-- The AV's state vector is defined by:
-- Current_Speed = L * sin(Q) * P_Dot
-- Current_Altitude = L * (1 - cos(Q))
-- Current_Range = Integral of Current_Speed over time
-- Estimated_Total_Mass = M0 + Payload_Mass + Micing, where Micing is an
-- unknown perturbation to be estimated.
--------------------------------
-- Update the State Automaton --
--------------------------------
-- Same states as F_MM except On/Off is not considered here
procedure Update_State with
Global => (Input => (Input_State, Trajectory_State),
In_Out => Private_State),
Contract_Cases =>
((On_State in INIT .. RUNNING)
and then Emergency_Landing
=>
On_State = ABORTED
and then not Aborted_With_Propulsion_Available,
On_State = INIT
and then not Emergency_Landing
and then Start_Take_Off
=>
On_State = RUNNING
and then Running_State = TAKE_OFF,
On_State = INIT
and then not Emergency_Landing
and then not Start_Take_Off
=>
On_State = INIT,
On_State = RUNNING
and then not Emergency_Landing
and then
(if Running_State = LANDING then
not (P_Dot = Zero_Speed and then Q_Dot = Zero_Speed))
and then not In_Safety_Envelope
and then Time_Since_In_Safety_Escape > MMS.F_PT.F_FC.Data.Escape_Time
=>
On_State = ABORTED
and then Aborted_With_Propulsion_Available,
On_State = RUNNING
and then not Emergency_Landing
and then
(if Running_State = LANDING then
not (P_Dot = Zero_Speed and then Q_Dot = Zero_Speed))
and then
(if Running_State = FLIGHT then not Start_Landing)
and then
(if Running_State = TAKE_OFF then not Operating_Point_Changed)
and then
(if not In_Safety_Envelope then
Time_Since_In_Safety_Escape <= MMS.F_PT.F_FC.Data.Escape_Time)
=>
On_State = RUNNING
and then Running_State = Running_State'Old,
On_State = RUNNING
and then not Emergency_Landing
and then Running_State = TAKE_OFF
and then Operating_Point_Changed
and then
(if not In_Safety_Envelope then
Time_Since_In_Safety_Escape <= MMS.F_PT.F_FC.Data.Escape_Time)
=>
-- A change in the Operating_Point means that the Take_Off phase is
-- over, see #28.
On_State = RUNNING
and then Running_State = FLIGHT,
On_State = RUNNING
and then not Emergency_Landing
and then Running_State = FLIGHT
and then Start_Landing
and then
(if not In_Safety_Envelope then
Time_Since_In_Safety_Escape <= MMS.F_PT.F_FC.Data.Escape_Time)
=>
On_State = RUNNING
and then Running_State = LANDING,
On_State = RUNNING
and then not Emergency_Landing
and then Running_State = LANDING
and then P_Dot = Zero_Speed and then Q_Dot = Zero_Speed
=>
On_State = COMPLETE,
(On_State in COMPLETE | ABORTED)
=>
On_State = On_State'Old),
Post =>
(if On_State = RUNNING then
Engine_State = Engine_State'Old -- ??? Needed due to current limitation in proof tool
and then Already_Running = (On_State'Old = RUNNING));
-------------------------------------------
-- Propulsion / Braking Mutual Exclusion --
-------------------------------------------
subtype Propulsion_State_Type is Engine_State_Type
range PROPULSION .. WAITING_BRAK;
subtype Braking_State_Type is Engine_State_Type
range BRAKING .. WAITING_PROP;
function Go_To_Braking return Boolean is
(not In_Safety_Envelope
and then
(Time_Since_In_Safety_Escape > MMS.F_PT.F_FC.Data.Hazard_Duration
or else Fast_Evolving_Safety_Escape))
with
Pre => On_State = RUNNING;
function Go_To_Propulsion return Boolean is
(In_Safety_Envelope)
with
Pre => On_State = RUNNING;
procedure Propulsion_Braking_Mutual_Exclusion with
Global => (Input => (Input_State, Trajectory_State, Private_State),
In_Out => Mutual_Exclusion_State),
Pre => On_State = RUNNING,
Contract_Cases =>
(not Already_Running
=>
Engine_State = PROPULSION,
-- 6.7.4 Propulsion braking mutual exclusion
Already_Running
and then Engine_State = PROPULSION
and then Go_To_Braking
=>
Engine_State = WAITING_BRAK
and then Time_Since_Stopped = 0,
Already_Running
and then Engine_State = PROPULSION
and then not Go_To_Braking
=>
Engine_State = PROPULSION,
Already_Running
and then Engine_State = BRAKING
and then Go_To_Propulsion
=>
Engine_State = WAITING_PROP
and then Time_Since_Stopped = 0,
Already_Running
and then Engine_State = BRAKING
and then not Go_To_Propulsion
=>
Engine_State = BRAKING,
Already_Running
and then Engine_State = WAITING_PROP
and then Go_To_Braking
=>
Engine_State = BRAKING,
Already_Running
and then Engine_State = WAITING_PROP
and then not Go_To_Braking
=>
(if Time_Since_Stopped > MMS.F_PT.F_FC.Data.Commutation_Duration
then Engine_State = PROPULSION
else Engine_State = WAITING_PROP
and then Time_Since_Stopped > Time_Since_Stopped'Old),
Already_Running
and then Engine_State = WAITING_BRAK
and then Go_To_Propulsion
=>
Engine_State = PROPULSION,
Already_Running
and then Engine_State = WAITING_BRAK
and then not Go_To_Propulsion
=>
(if Time_Since_Stopped > MMS.F_PT.F_FC.Data.Commutation_Duration
then Engine_State = BRAKING
else Engine_State = WAITING_BRAK
and then Time_Since_Stopped > Time_Since_Stopped'Old));
--------------------------------------
-- Reference Trajectory Computation --
--------------------------------------
function Use_Set_Point_Altitude return Boolean is
(Running_State = LANDING or else Selected_Option = ALTITUDE)
with Pre => On_State = RUNNING;
function Set_Point_Altitude return Current_Altitude_Type with
Global => (Input => Trajectory_State,
Proof_In => (Input_State,
Private_State,
Operating_Mode_State,
Mutual_Exclusion_State)),
Pre => On_State = RUNNING
and then Use_Set_Point_Altitude;
function Intermediate_Set_Point_Altitude return Current_Altitude_Type with
Global => (Input => Trajectory_State,
Proof_In => (Input_State,
Private_State,
Operating_Mode_State,
Mutual_Exclusion_State)),
Pre => On_State = RUNNING
and then Use_Set_Point_Altitude;
function Close_To_Set_Point_Altitude return Boolean with
Global => (Input => Trajectory_State,
Proof_In => (Input_State,
Private_State,
Operating_Mode_State,
Mutual_Exclusion_State)),
Pre => On_State = RUNNING
and then Use_Set_Point_Altitude;
-- True if we are close enough to the set point. Used to avoid Zeno effect.
function Intermediate_Set_Point_Altitude_Reached return Boolean with
Global => (Input => Trajectory_State,
Proof_In => (Input_State,
Private_State,
Operating_Mode_State,
Mutual_Exclusion_State)),
Pre => On_State = RUNNING
and then Already_Running
and then not Operating_Mode_Changed
and then not Operating_Point_Changed
and then Use_Set_Point_Altitude;
-- True if we have reached the previous intermediate set point.
function Use_Set_Point_Speed return Boolean is
(Running_State = LANDING or else Selected_Option = SPEED)
with Pre => On_State = RUNNING;
function Set_Point_Speed return Current_Speed_Type with
Global => (Input => Trajectory_State,
Proof_In => (Input_State,
Private_State,
Operating_Mode_State,
Mutual_Exclusion_State)),
Pre => On_State = RUNNING
and then Use_Set_Point_Speed;
function Intermediate_Set_Point_Speed return Current_Speed_Type with
Global => (Input => Trajectory_State,
Proof_In => (Input_State,
Private_State,
Operating_Mode_State,
Mutual_Exclusion_State)),
Pre => On_State = RUNNING
and then Use_Set_Point_Speed;
function Close_To_Set_Point_Speed return Boolean with
Global => (Input => Trajectory_State,
Proof_In => (Input_State,
Private_State,
Operating_Mode_State,
Mutual_Exclusion_State)),
Pre => On_State = RUNNING
and then Use_Set_Point_Speed;
-- True if we are close enough to the set point. Used to avoid Zeno effect.
function Intermediate_Set_Point_Speed_Reached return Boolean with
Global => (Input => Trajectory_State,
Proof_In => (Input_State,
Private_State,
Operating_Mode_State,
Mutual_Exclusion_State)),
Pre => On_State = RUNNING
and then Already_Running
and then not Operating_Mode_Changed
and then not Operating_Point_Changed
and then Use_Set_Point_Speed;
-- True if we have reached the previous intermediate set point.
function Set_Point_Distance return Current_Range_Type with
Global => (Input => Trajectory_State,
Proof_In => Private_State),
Pre => On_State = RUNNING and then Running_State = LANDING;
function Close_To_Set_Point return Boolean is
(if Selected_Option = ALTITUDE then Close_To_Set_Point_Altitude
else Close_To_Set_Point_Speed)
with Pre => On_State = RUNNING;
procedure Reference_Trajectory_Computation with
-- Computed at each cycle. Slower rates are possible but not too slow.
Global => (Input => (Input_State, Private_State, Operating_Mode_State),
In_Out => Trajectory_State),
Pre => On_State = RUNNING,
Post =>
-- For landing, the target, or preset operating point, or (final) reference
-- value, is more complicated than for the other phases.
-- For all phases except landing there is only one target: either a Speed
-- value or an Altitude value. But for landing there are three of them:
-- - Current_Range ~ Mission_Range, i.e (Current_Range - Mission_Range
-- =< DeliveryPrecisionUpperBound).
-- - Current_Altitude = 0
-- - Current_Speed = 0
-- (see #29)
(if Running_State = LANDING then
Set_Point_Altitude = 0
and then Set_Point_Speed = 0
and then Set_Point_Distance = Mission_Range
else
(case Selected_Option is
when ALTITUDE =>
Set_Point_Altitude = Operating_Point.Altitude,
when SPEED =>
Set_Point_Speed = Operating_Point.Speed))
-- Instead of giving the true set-point to propulsion control, it gives
-- half of the change amplitude. When current intermediate set-point is
-- reached, a new one is computed (zeno like aspects to be addressed for
-- convergence).
-- Module is reset by any operating point change.
and then
(if Use_Set_Point_Speed then
Intermediate_Set_Point_Speed =
(if not Already_Running
or else Operating_Point_Changed
or else Operating_Mode_Changed
or else (Intermediate_Set_Point_Speed_Reached
and then not Close_To_Set_Point_Speed)
then
(Set_Point_Speed + Current_Speed) / 2
elsif Close_To_Set_Point_Speed then Set_Point_Speed
else Intermediate_Set_Point_Speed'Old))
and then
(if Use_Set_Point_Altitude then
Intermediate_Set_Point_Altitude =
(if not Already_Running
or else Operating_Point_Changed
or else Operating_Mode_Changed
or else (Intermediate_Set_Point_Altitude_Reached
and then not Close_To_Set_Point_Altitude)
then (Set_Point_Altitude + Current_Altitude) / 2
elsif Close_To_Set_Point_Altitude then Set_Point_Altitude
else Intermediate_Set_Point_Altitude'Old))
-- Changes in the operating point provoque termination of the current
-- cruise phase and activate a transient climb or descent phase to
-- capture the new operating point (see 6.6.4 4. Cruise).
and then Flight_Phase =
(if Running_State = LANDING then
DESCENT
elsif not Already_Running
or else Operating_Point_Changed
or else not Close_To_Set_Point
then
(if (Selected_Option = ALTITUDE
and then Current_Altitude < Set_Point_Altitude)
or else
(Selected_Option = SPEED
and then Current_Speed < Set_Point_Speed)
then CLIMB
else DESCENT)
else CRUISE);
---------------------
-- Gain Scheduling --
---------------------
function Mission_Profile return Mission_Profile_Type with
Global => Gain_Scheduling_State;
function Distance_With_Neighbour
(Neighbour : Mission_Profile_Type) return Mission_Profile_Distance_Type
with
Global => Gain_Scheduling_State;
-- Compute the distance between Mission_Profile and its Neighbour.
function Nearest_Neighbours return Neighbour_Mission_Profiles with
Global => Gain_Scheduling_State;
function Extract_Gain_Triple_For_Neighbours return Gain_Triples with
Global => Gain_Scheduling_State;
function Interpolated_Gain_Triple return Gain_Triple with
Global => Gain_Scheduling_State;
-- Compute the interpolation of the energy levels of the neighbours of
-- Mission_Profile by distance-based averaging.
procedure Gain_Scheduling with
Global => (Input => (Input_State,
Trajectory_State,
Private_State,
Mutual_Exclusion_State),
In_Out => Gain_Scheduling_State),
Pre => On_State = RUNNING
and then Engine_State in BRAKING | PROPULSION,
Post =>
-- 1. Assembling mission profile.
Mission_Profile =
(Mass => Payload_Mass,
Altitude => Current_Altitude,
Speed => Current_Speed)
-- 2. Computing the nearest neighbours of Mission_Profile in
-- Flight_Domain_Mesh, and the distance of Mission_Profile to its nearest
-- neignbours.
and then
(for all Neighbour_Center of Nearest_Neighbours.Neighbours =>
Neighbour_Center.Mission_Profile.M in
MMS.F_PT.Data.Payload_Mass_Grid'Range
and then Neighbour_Center.Mission_Profile.S in
Data.Flight_Domain_Mesh'Range (1)
and then Neighbour_Center.Mission_Profile.A in
Data.Flight_Domain_Mesh'Range (2)
and then Neighbour_Center.Distance =
Distance_With_Neighbour
(Mission_Profile_Type'
(Mass =>
MMS.F_PT.Data.Payload_Mass_Grid
(Neighbour_Center.Mission_Profile.M),
Altitude =>
Data.Flight_Domain_Mesh
(Neighbour_Center.Mission_Profile.S,
Neighbour_Center.Mission_Profile.A).Altitude,
Speed =>
Data.Flight_Domain_Mesh
(Neighbour_Center.Mission_Profile.S,
Neighbour_Center.Mission_Profile.A).Speed)))
-- 3. Extracting gain triples for the neighbours.
and then Extract_Gain_Triple_For_Neighbours.Size =
Nearest_Neighbours.Size
and then
(for all I in 1 .. Extract_Gain_Triple_For_Neighbours.Size =>
Extract_Gain_Triple_For_Neighbours.Neighbours (I) =
(case Flight_Phase is
when CLIMB =>
(if Engine_State = PROPULSION then
Data.Climb_Propulsion_Gains
(M => Nearest_Neighbours.Neighbours (I).Mission_Profile.M,
A => Nearest_Neighbours.Neighbours (I).Mission_Profile.A,
S => Nearest_Neighbours.Neighbours (I).Mission_Profile.S)
else
Data.Climb_Braking_Gains
(M => Nearest_Neighbours.Neighbours (I).Mission_Profile.M,
A => Nearest_Neighbours.Neighbours (I).Mission_Profile.A,
S => Nearest_Neighbours.Neighbours (I).Mission_Profile.S)),
when CRUISE =>
(if Engine_State = PROPULSION then
Data.Cruise_Propulsion_Gains
(M => Nearest_Neighbours.Neighbours (I).Mission_Profile.M,
A => Nearest_Neighbours.Neighbours (I).Mission_Profile.A,
S => Nearest_Neighbours.Neighbours (I).Mission_Profile.S)
else
Data.Cruise_Braking_Gains
(M => Nearest_Neighbours.Neighbours (I).Mission_Profile.M,
A => Nearest_Neighbours.Neighbours (I).Mission_Profile.A,
S => Nearest_Neighbours.Neighbours (I).Mission_Profile.S)),
when DESCENT =>
(if Engine_State = PROPULSION then
Data.Descent_Propulsion_Gains
(M => Nearest_Neighbours.Neighbours (I).Mission_Profile.M,
A => Nearest_Neighbours.Neighbours (I).Mission_Profile.A,
S => Nearest_Neighbours.Neighbours (I).Mission_Profile.S)
else
Data.Descent_Braking_Gains
(M => Nearest_Neighbours.Neighbours (I).Mission_Profile.M,
A => Nearest_Neighbours.Neighbours (I).Mission_Profile.A,
S => Nearest_Neighbours.Neighbours (I).Mission_Profile.S))))
-- 4. Compute MP's gain triple by interpolation of its neighbours
-- Set appropriate value to Interpolated_Gain_Triple.
;
------------------------
-- Propulsion Control --
------------------------
function Propulsion_Altitude_Error return Current_Altitude_Type'Base is
(Current_Altitude - Intermediate_Set_Point_Altitude)
with Pre => On_State = RUNNING
and then Use_Set_Point_Altitude;
function Propulsion_Speed_Error return Current_Speed_Type'Base is
(Current_Speed - Intermediate_Set_Point_Speed)
with Pre => On_State = RUNNING
and then Use_Set_Point_Speed;
function Propulsion_Error return Error_Type with
Global => Propulsion_State;
-- In Flight and maybe also Take-Off phase, should be
-- Propulsion_Altitude_Error if Selected_Mode is ALTITUDE and
-- Propulsion_Speed_Error otherwise, but I am confused about the units...
-- In Landing phase, should depend on speed, altitude, and also distance,
-- see #29.
function Propulsion_Integral_Error return Error_Type with
Global => Propulsion_State;
-- Cumulative past Propulsion_Error during the last Ti seconds
function Propulsion_Derivative_Error return Error_Type with
Global => Propulsion_State;
-- Propulsion_Error variation at current time
procedure Propulsion_Control with
Global => (Input => (Input_State,
Trajectory_State,
Private_State,
Gain_Scheduling_State,
Mutual_Exclusion_State),
In_Out => Propulsion_State),
Pre => On_State = RUNNING
and then Engine_State = PROPULSION,
Post => Propulsion_Torque =
Torque_Type (Interpolated_Gain_Triple.Kp * Propulsion_Error) +
Torque_Type (Interpolated_Gain_Triple.Ki * Propulsion_Integral_Error) +
Torque_Type (Interpolated_Gain_Triple.Kd * Propulsion_Derivative_Error);
---------------------
-- Braking Control --
---------------------
function Braking_Altitude_Error return Current_Altitude_Type'Base is
(Current_Altitude - Intermediate_Set_Point_Altitude)
with Pre => On_State = RUNNING
and then Use_Set_Point_Altitude;
function Braking_Speed_Error return Current_Speed_Type'Base is
(Current_Speed - Intermediate_Set_Point_Speed)
with Pre => On_State = RUNNING
and then Use_Set_Point_Speed;
function Braking_Error return Error_Type with
Global => Braking_State;
-- Same as propulsion, see #28.
function Braking_Integral_Error return Error_Type with
Global => Braking_State;
-- Cumulative past Braking_Error during the last Ti seconds
function Braking_Derivative_Error return Error_Type with
Global => Braking_State;
-- Braking_Error variation at current time
procedure Braking_Control with
Global => (Input => (Input_State,
Trajectory_State,
Private_State,
Gain_Scheduling_State,
Mutual_Exclusion_State),
In_Out => Braking_State),
Pre => On_State = RUNNING
and then Engine_State = BRAKING,
Post => Braking_Torque =
Torque_Type (Interpolated_Gain_Triple.Kp * Braking_Error) +
Torque_Type (Interpolated_Gain_Triple.Ki * Braking_Integral_Error) +
Torque_Type (Interpolated_Gain_Triple.Kd * Braking_Derivative_Error);
end MMS.F_PT.F_FC.Behavior;

View File

@@ -1,131 +0,0 @@
with MMS.F_PT.Data;
with Types; use Types;
package MMS.F_PT.F_FC.Data with SPARK_Mode is
-- ??? Types need to be precisely defined.
------------
-- Tables --
------------
-- From 6.7.2.3
Flight_Domain_Mesh : constant Flight_Domain_Mesh_Type (1 .. 100, 1 .. 100); -- ??? bounds
function Climb_Propulsion_Gains
(S : Flight_Speed_Center;
A : Flight_Altitude_Center;
M : Payload_Mass_Center) return Gain_Triple
with
Pre => S in Flight_Domain_Mesh'Range (1)
and then A in Flight_Domain_Mesh'Range (2)
and then M in MMS.F_PT.Data.Payload_Mass_Grid'Range;
function Cruise_Propulsion_Gains
(S : Flight_Speed_Center;
A : Flight_Altitude_Center;
M : Payload_Mass_Center) return Gain_Triple
with
Pre => S in Flight_Domain_Mesh'Range (1)
and then A in Flight_Domain_Mesh'Range (2)
and then M in MMS.F_PT.Data.Payload_Mass_Grid'Range;
function Descent_Propulsion_Gains
(S : Flight_Speed_Center;
A : Flight_Altitude_Center;
M : Payload_Mass_Center) return Gain_Triple
with
Pre => S in Flight_Domain_Mesh'Range (1)
and then A in Flight_Domain_Mesh'Range (2)
and then M in MMS.F_PT.Data.Payload_Mass_Grid'Range;
function Climb_Braking_Gains
(S : Flight_Speed_Center;
A : Flight_Altitude_Center;
M : Payload_Mass_Center) return Gain_Triple
with
Pre => S in Flight_Domain_Mesh'Range (1)
and then A in Flight_Domain_Mesh'Range (2)
and then M in MMS.F_PT.Data.Payload_Mass_Grid'Range;
function Cruise_Braking_Gains
(S : Flight_Speed_Center;
A : Flight_Altitude_Center;
M : Payload_Mass_Center) return Gain_Triple
with
Pre => S in Flight_Domain_Mesh'Range (1)
and then A in Flight_Domain_Mesh'Range (2)
and then M in MMS.F_PT.Data.Payload_Mass_Grid'Range;
function Descent_Braking_Gains
(S : Flight_Speed_Center;
A : Flight_Altitude_Center;
M : Payload_Mass_Center) return Gain_Triple
with
Pre => S in Flight_Domain_Mesh'Range (1)
and then A in Flight_Domain_Mesh'Range (2)
and then M in MMS.F_PT.Data.Payload_Mass_Grid'Range;
---------------
-- Constants --
---------------
-- From 6.7.3.2
Qdot_MinCl : constant Speed_Type; -- in angle.s-1
Qdot_MaxCl : constant Speed_Type; -- in angle.s-1
Q_MaxCl : constant Angle_Type; -- in angle
Qdot_MinCr : constant Speed_Type; -- in angle.s-1
Qdot_MaxCr : constant Speed_Type; -- in angle.s-1
Q_MinCr : constant Angle_Type; -- in angle
Pdot_MaxCr : constant Speed_Type; -- in angle.s-1
Qdot_MinDs : constant Speed_Type; -- in angle.s-1
Qdot_MaxDs : constant Speed_Type; -- in angle.s-1
Q_MaxDs : constant Angle_Type; -- in angle
Escape_Time : constant Time_Type; -- in s
-- From 6.7.4
Commutation_Duration : constant Time_Type; -- in s
Hazard_Duration : constant Time_Type; -- in s
Recovery_Speed : constant Current_Speed_Type; -- in m.s
J0 : constant Integer; -- in kg.m2
L : constant Integer; -- in m
M0 : constant Integer; -- in kg
private
pragma SPARK_Mode (Off);
Flight_Domain_Mesh : constant Flight_Domain_Mesh_Type (1 .. 100, 1 .. 100) :=
(others => (others => <>));
Qdot_MinCl : constant Speed_Type := Zero_Speed;
Qdot_MaxCl : constant Speed_Type := Zero_Speed;
Q_MaxCl : constant Angle_Type := 0.0;
Qdot_MinCr : constant Speed_Type := Zero_Speed;
Qdot_MaxCr : constant Speed_Type := Zero_Speed;
Q_MinCr : constant Angle_Type := 0.0;
Pdot_MaxCr : constant Speed_Type := Zero_Speed;
Qdot_MinDs : constant Speed_Type := Zero_Speed;
Qdot_MaxDs : constant Speed_Type := Zero_Speed;
Q_MaxDs : constant Angle_Type := 0.0;
Escape_Time : constant Time_Type := 0;
-- From 6.7.4
Commutation_Duration : constant Time_Type := 0;
Hazard_Duration : constant Time_Type := 0;
Recovery_Speed : constant Current_Speed_Type := 0;
J0 : constant Integer := 0;
L : constant Integer := 0;
M0 : constant Integer := 0;
end MMS.F_PT.F_FC.Data;

View File

@@ -1,46 +0,0 @@
with MMS.F_PT.F_CM.Output;
with MMS.F_PT.F_MM.Output;
with Types; use Types;
package MMS.F_PT.F_FC.Input is
---------------
-- From F_CM --
---------------
function P return Distance_Type
renames MMS.F_PT.F_CM.Output.P;
function P_Dot return Speed_Type
renames MMS.F_PT.F_CM.Output.P_Dot;
function Q return Angle_Type
renames MMS.F_PT.F_CM.Output.Q;
function Payload_Mass return Payload_Mass_Type
renames MMS.F_PT.F_CM.Output.Payload_Mass;
---------------
-- From F_MM --
---------------
function Start_Take_Off return Boolean
renames MMS.F_PT.F_MM.Output.Start_Take_Off;
function Start_Landing return Boolean
renames MMS.F_PT.F_MM.Output.Start_Landing;
function Operating_Point return Operating_Point_Type
renames MMS.F_PT.F_MM.Output.Operating_Point;
function Operating_Mode return Navigation_Option_Type
renames MMS.F_PT.F_MM.Output.Operating_Mode;
function Mission_Range return Current_Range_Type
renames MMS.F_PT.F_MM.Output.Mission_Range;
function Emergency_Landing return Boolean
renames MMS.F_PT.F_MM.Output.Emergency_Landing;
end MMS.F_PT.F_FC.Input;

View File

@@ -1,29 +0,0 @@
with Types; use Types;
package MMS.F_PT.F_FC.Output is
---------------------
-- To F_CM or F_EM --
---------------------
function Propulsion_Torque return Torque_Type with Global => Output_State;
function Braking_Torque return Torque_Type with Global => Output_State;
-------------
-- To F_MM --
-------------
function Mission_Abort return Boolean with Global => Output_State; -- ??? not listed in F_FC outputs
function Estimated_Total_Mass return Estimated_Total_Mass_Type with Global => Output_State;
function Current_Range return Current_Range_Type with Global => Output_State;
function Current_Speed return Current_Speed_Type with Global => Output_State;
function Current_Altitude return Current_Altitude_Type with Global => Output_State;
function Current_Flight_Phase return Flight_Phase_Type with Global => Output_State;
end MMS.F_PT.F_FC.Output;

View File

@@ -1,8 +0,0 @@
private
package MMS.F_PT.F_FC.State is
Propulsion_Torque : Torque_Type with Part_Of => Propulsion_State;
Braking_Torque : Torque_Type with Part_Of => Braking_State;
end MMS.F_PT.F_FC.State;

View File

@@ -1,81 +0,0 @@
with Types; use Types;
package MMS.F_PT.F_FC with
Abstract_State => (Input_State,
Safety_Escape_State,
Operating_Mode_State,
AV_State_Vector_State,
Trajectory_State,
Private_State,
Mutual_Exclusion_State,
Gain_Scheduling_State,
Propulsion_State,
Braking_State,
Output_State)
is
pragma Elaborate_Body (MMS.F_PT.F_FC);
type Flight_Cell_Center_Type is record
Speed : Current_Speed_Type;
Altitude : Current_Altitude_Type;
end record;
type Flight_Speed_Center is new Positive;
type Flight_Altitude_Center is new Positive;
type Flight_Domain_Mesh_Type is array
(Flight_Speed_Center range <>, Flight_Altitude_Center range <>)
of Flight_Cell_Center_Type;
type Gain_Type is new Integer; -- ??? some bounds
type Gain_Triple is record
Kd : Gain_Type;
Kp : Gain_Type;
Ki : Gain_Type;
end record;
subtype Error_Type is Gain_Type'Base; -- ??? what is the type of a PID error?
type Time_Type is new Integer; -- in s ??? some bounds
type Engine_State_Type is
(PROPULSION, WAITING_BRAK, BRAKING, WAITING_PROP);
type Mission_Profile_Type is record
Mass : Payload_Mass_Type;
Altitude : Current_Altitude_Type;
Speed : Current_Speed_Type;
end record;
type Center_Mission_Profile_Type is record
M : Payload_Mass_Center;
A : Flight_Altitude_Center;
S : Flight_Speed_Center;
end record;
type Mission_Profile_Distance_Type is new Natural;
type Neighbour_Mission_Profile_Type is record
Mission_Profile : Center_Mission_Profile_Type;
Distance : Mission_Profile_Distance_Type;
end record;
type Num_Of_Neighbours is new Positive range 1 .. 8;
type Neighbour_Mission_Profile_Array_Type is array
(Num_Of_Neighbours range <>)
of Neighbour_Mission_Profile_Type;
type Neighbour_Mission_Profiles (Size : Num_Of_Neighbours) is record
Neighbours : Neighbour_Mission_Profile_Array_Type (1 .. Size);
end record;
type Gain_Triple_Array_Type is array (Num_Of_Neighbours range <>)
of Gain_Triple;
type Gain_Triples (Size : Num_Of_Neighbours) is record
Neighbours : Gain_Triple_Array_Type (1 .. Size);
end record;
end MMS.F_PT.F_FC;

View File

@@ -1,70 +0,0 @@
with Types; use Types;
package body MMS.F_PT.F_MM.Behavior.Guarantees with SPARK_Mode is
Initial_Energy_Test_Done : Boolean with Ghost;
In_Flight_Energy_Test_Done : Boolean with Ghost;
Energy_Test_Succeded : Boolean with Ghost;
function Initial_Energy_Test_Succeeded return Boolean is
(Initial_Energy_Test_Done and then Energy_Test_Succeded);
function In_Flight_Energy_Test_Failed return Boolean is
(In_Flight_Energy_Test_Done and then not Energy_Test_Succeded);
procedure Run is
begin
Initial_Energy_Test_Done := False;
In_Flight_Energy_Test_Done := False;
Energy_Test_Succeded := False;
Read_Inputs;
if Power_On then
Management_Of_Navigation_Modes_Options_Parameters;
if Power_State = On then
if On_State in INIT | RUNNING
and then Mission_Parameters_Defined
then
Operating_Point_Update_Management;
end if;
if (On_State = RUNNING
and then Running_State = FLIGHT
and then Current_Flight_Phase = CRUISE)
or else
(On_State = INIT
and then Init_Completed)
then
Mission_Viability_Logic;
if On_State = RUNNING then
In_Flight_Mission_Viability_Logic;
In_Flight_Energy_Test_Done := True;
Energy_Test_Succeded :=
In_Flight_Energy_Compatible_With_Mission;
else
Initial_Mission_Viability_Logic;
Initial_Energy_Test_Done := True;
Energy_Test_Succeded :=
Initial_Energy_Compatible_With_Mission;
end if;
elsif On_State = RUNNING
and then Running_State = FLIGHT
and then Current_Flight_Phase = DESCENT
then
Mission_Termination_Control;
end if;
end if;
end if;
Update_States;
Write_Outputs;
end Run;
end MMS.F_PT.F_MM.Behavior.Guarantees;

View File

@@ -1,77 +0,0 @@
-- This package provides a Run procedure which simulates execution of the
-- main loop of F_MM and is used to verify in SPARK that high level guarantees
-- on F_MM are implied by its behavioural specification.
with Types; use Types;
package MMS.F_PT.F_MM.Behavior.Guarantees with SPARK_Mode is
pragma Unevaluated_Use_Of_Old (Allow);
-----------------------------------
-- High-Level Properties on F_MM --
-----------------------------------
function In_Take_Off_State return Boolean is
(Power_State = On
and then On_State = RUNNING
and then Running_State = TAKE_OFF)
with Global => Private_State;
function Mission_Aborted return Boolean is
(Power_State = On
and then On_State = ABORTED)
with Global => Private_State;
function Mission_Cancelled return Boolean is
(Power_State = On
and then On_State = INIT
and then Init_State = CANCELLED)
with Global => Private_State;
function Initial_Energy_Test_Succeeded return Boolean with Ghost;
function In_Flight_Energy_Test_Failed return Boolean with Ghost;
-----------------------------------
-- High-Level Garantees for F_MM --
-----------------------------------
procedure Run with
Pre => State_Invariant,
Post => State_Invariant
-- 6.6.3.A Viability guarantee: no take-off if energy aboard is
-- incompatible with mission completion.
and then
(if In_Take_Off_State and then not In_Take_Off_State'Old then
Initial_Energy_Test_Succeeded)
-- 6.6.3.B Any mission cancellation is signaled to CP and GS.
and then
(if Mission_Aborted then Mission_Aborted_Signaled)
and then
(if Mission_Cancelled then Mission_Cancelled_Signaled)
-- 6.6.3.2.A Missions cancelled for energy reasons can be proven
-- infeasible.
and then
(if Mission_Aborted and then not Mission_Aborted'Old
and then Aborted_For_Energy_Reasons
then In_Flight_Energy_Test_Failed)
-- 6.9.3.2.C When A mode is set on CP, the navigation options/parameters
-- are that of USB key or initialization is not complete.
and then
(if Power_On
and then Navigation_Mode_From_CP = A
and then Mission_Parameters_Defined
then
USB_Key_Present
and then Operating_Mode_From_Parameters = Operating_Mode_From_USB_Key
and then Navigation_Parameters = Navigation_Parameters_From_USB_Key);
end MMS.F_PT.F_MM.Behavior.Guarantees;

View File

@@ -1,871 +0,0 @@
-- This package provides the behavioural specification of F_MM. It is
-- expressed as a contract on a Run procedure which reprents the modifications
-- performed on the state State of F_MM at each cycle of the functionality.
-- We write the contract using a Contract_Cases and we use SPARK to ensure
-- that:
-- - Information about the current State of the module are only accessed
-- when it makes sense (represented as preconditions over accessors).
-- - A single behaviour is specified for each case in the specification.
-- - There is a behaviour is specified for every case in the specification.
with Types; use Types;
with External;
with MMS.F_PT.F_MM.Data;
private with MMS.F_PT.F_MM.State;
with MMS.F_PT.Data;
package MMS.F_PT.F_MM.Behavior with SPARK_Mode is
pragma Unevaluated_Use_Of_Old (Allow);
------------
-- Inputs --
------------
function Power_On return Boolean;
function Payload_Bay_Closed return Boolean with
Pre => Power_On;
function Payload_Mass_Given return Boolean with
Pre => Power_On;
function Payload_Mass return Payload_Mass_Type with
Pre => Power_On and then Payload_Mass_Given;
function Navigation_Mode_From_CP return Navigation_Mode_Type with
Pre => Power_On;
function Navigation_Mode_From_GS_Received return Boolean with
Pre => Power_On;
function Navigation_Mode_From_GS return Navigation_Mode_Type with
Pre => Power_On and then Navigation_Mode_From_GS_Received;
function Operating_Mode_From_USB_Key return Navigation_Option_Type with
Pre => Power_On and then USB_Key_Present;
function Operating_Mode_From_GS_Received return Boolean with
Pre => Power_On;
function Operating_Mode_From_GS return Navigation_Option_Type with
Pre => Power_On and then Operating_Mode_From_GS_Received;
function Navigation_Parameters_From_GS_Received return Boolean with
Pre => Power_On;
function Navigation_Parameters_From_GS return Navigation_Parameters_Type with
Pre => Power_On and then Navigation_Parameters_From_GS_Received;
function USB_Key_Present return Boolean with
Pre => Power_On;
function Navigation_Parameters_From_USB_Key return Navigation_Parameters_Type
with
Pre => Power_On and then USB_Key_Present;
function Mission_Abort_Received return Boolean with
Pre => Power_On;
function Start_Or_Go_Received return Boolean with
Pre => Power_On;
function Current_Range return Current_Range_Type with
Pre => Power_On;
function Current_Speed return Current_Speed_Type with
Pre => Power_On;
function Current_Altitude return Current_Altitude_Type with
Pre => Power_On;
function Current_Flight_Phase return Flight_Phase_Type with
Pre => Power_On;
function Energy_Level return Energy_Level_Type with
Pre => Power_On;
function Mission_Parameters_Defined return Boolean is
(USB_Key_Present
or else (Navigation_Mode_From_CP = RP
and then Navigation_Parameters_From_GS_Received
and then Operating_Mode_From_GS_Received))
with
Pre => Power_On;
function Init_Completed return Boolean is
(Payload_Bay_Closed
and then Payload_Mass_Given
and then Mission_Parameters_Defined)
with
Pre => Power_On;
-----------------------------------------
-- States of the automaton in Figure 3 --
-----------------------------------------
function Power_State return Power_State_Type;
function On_State return On_State_Type with
Pre => Power_State = ON;
function Running_State return Running_State_Type with
Pre => Power_State = ON
and then On_State = RUNNING;
function Init_State return Init_State_Type with
Pre => Power_State = ON
and then On_State = INIT;
function Aborted_For_Energy_Reasons return Boolean with
Pre => Power_State = ON
and then On_State = ABORTED;
function State_Invariant return Boolean is
(Power_On = (Power_State = On)
and then (if Power_State = On and then On_State = RUNNING then
Init_Completed));
-- Global assumptions, should be maintained by the task main loop.
-----------------------------
-- Properties and Entities --
-----------------------------
function Navigation_Mode return Navigation_Mode_Type with
Pre => Power_On;
function Operating_Mode_From_Parameters return Navigation_Option_Type with
Pre => Power_On
and then Mission_Parameters_Defined;
function Operating_Mode return Navigation_Option_Type with
Pre => Power_On
and then Mission_Parameters_Defined;
function Navigation_Parameters return Navigation_Parameters_Type
with Pre => Power_On
and then Mission_Parameters_Defined;
function Mission_Range_From_Navigation_Parameters
return Current_Range_Type
with Global =>
(Input => Operating_Point_State, Proof_In => Input_State),
Pre => Power_On
and then Mission_Parameters_Defined;
-- Fetch distance from Navigation_Parameters and do the appropriate
-- conversion.
function Operating_Point_From_Navigation_Parameters
return Operating_Point_Type
with Global =>
(Input => Operating_Point_State, Proof_In => Input_State),
Pre => Power_On
and then Mission_Parameters_Defined;
-- Fetch altitude and speed from Navigation_Parameters and do the
-- appropriate conversions.
function Mission_Range return Current_Range_Type with
Pre => Power_On
and then Power_State = On
and then On_State in INIT | RUNNING
and then Mission_Parameters_Defined;
function Operating_Point return Operating_Point_Type with
Pre => Power_On
and then Power_State = On
and then On_State in INIT | RUNNING
and then Mission_Parameters_Defined;
function Initial_Energy_Compatible_With_Mission return Boolean
with
Pre => Power_On
and then Power_State = ON
and then On_State = INIT
and then Init_Completed;
function In_Flight_Energy_Compatible_With_Mission return Boolean
with
Pre => Power_On
and then Power_State = ON
and then On_State = RUNNING
and then Running_State = FLIGHT
and then Current_Flight_Phase = CRUISE;
function Current_Altitude_Close_Enough_To_ref_TakeOff return Boolean with
Global => Input_State;
-- Return True if Current_Altitude is close enough to Altitude_ref_TakeOff
function Current_Speed_Close_Enough_To_ref_TakeOff return Boolean with
Global => Input_State;
-- Return True if Current_Altitude is close enough to Speed_ref_TakeOff
function Take_Off_Over return Boolean is
(if Operating_Mode = ALTITUDE then
Current_Altitude_Close_Enough_To_ref_TakeOff
else Current_Speed_Close_Enough_To_ref_TakeOff)
with
Pre => Power_On
and then Power_State = ON
and then On_State = RUNNING
and then Running_State = TAKE_OFF
and then Mission_Parameters_Defined;
function Descent_Over return Boolean with
Pre => Power_On
and then Power_State = ON
and then On_State = RUNNING
and then Running_State = FLIGHT
and then Current_Flight_Phase = DESCENT;
function Landed return Boolean is
(Current_Speed = 0 and Current_Altitude = 0)
with
Pre => Power_On
and then Power_State = ON
and then On_State = RUNNING
and then Running_State = LANDING;
function Emergency_Landing return Boolean with
Global => Output_State;
function Mission_Aborted_Signaled return Boolean with
Global => Output_State;
function Mission_Cancelled_Signaled return Boolean with
Global => Output_State;
---------------------------------------
-- Behavioural Specification of F_MM --
---------------------------------------
procedure Read_Inputs with
-- Read values of inputs once and for all and update the current state
Global => (In_Out => Input_State,
Input => (External.State, Private_State)),
Post =>
-- Only update inputs when new values are received.
(if USB_Key_Present'Old then USB_Key_Present)
and then (if Navigation_Parameters_From_GS_Received'Old
then Navigation_Parameters_From_GS_Received)
and then (if Operating_Mode_From_GS_Received'Old
then Operating_Mode_From_GS_Received)
-- Information from CP can only be changed before take-off.
and then (if Power_State = On and then On_State = RUNNING
then Navigation_Mode_From_CP = Navigation_Mode_From_CP'Old
and then Payload_Bay_Closed = Payload_Bay_Closed'Old
and then Payload_Mass_Given = Payload_Mass_Given'Old
and then
(if Payload_Mass_Given then Payload_Mass = Payload_Mass'Old)
and then
(if USB_Key_Present then
USB_Key_Present'Old
and then Navigation_Parameters_From_USB_Key =
Navigation_Parameters_From_USB_Key'Old
and then Operating_Mode_From_USB_Key =
Operating_Mode_From_USB_Key'Old));
procedure Write_Outputs with
-- Compute values of outputs from the current state
Global => (Input => Private_State,
Output => Output_State),
Post =>
(if Power_State = ON and then On_State = ABORTED then
Emergency_Landing
and then Mission_Aborted_Signaled)
and then
(if Power_State = ON
and then On_State = INIT
and then Init_State = CANCELLED
then Mission_Cancelled_Signaled);
-------------------
-- Tasks of F_MM --
-------------------
------------------------------------------------------------
-- Management of Navigation Modes / Options / Parameters --
------------------------------------------------------------
procedure Management_Of_Navigation_Modes_Options_Parameters with
-- Compute the value of Navigation_Mode / Options / Parameters (see 6.9.4)
Global => (Input => (Input_State, Private_State),
Output => Navigation_Parameter_State),
Pre => Power_On,
Post => Navigation_Mode =
-- In case of conflict on the navigation mode, CP prevails over GS.
(if Navigation_Mode_From_CP = A
or else not Navigation_Mode_From_GS_Received
then Navigation_Mode_From_CP
-- If CP states the mode to RC then GS can choose the navigation mode.
else Navigation_Mode_From_GS)
and then
(if Mission_Parameters_Defined then
Operating_Mode_From_Parameters =
(if Navigation_Mode_From_CP = A
or else not Operating_Mode_From_GS_Received
then Operating_Mode_From_USB_Key
else Operating_Mode_From_GS)
-- During take-off, the most energy efficient mode is computed once and
-- for all from the viability tables.
and then Operating_Mode =
(if Operating_Mode_From_Parameters = ENERGY
and then Power_State = ON
and then On_State = RUNNING
and then Running_State = TAKE_OFF
then Data.Energy_Mode_ref_TakeOff
else Operating_Mode_From_Parameters)
and then Navigation_Parameters =
(if Navigation_Mode_From_CP = A
or else not Navigation_Parameters_From_GS_Received
then Navigation_Parameters_From_USB_Key
else Navigation_Parameters_From_GS));
---------------------------------------
-- Operating Point Update Management --
---------------------------------------
procedure Operating_Point_Update_Management with
-- Compute the value of Operating_Point and Mission_Range
Global => (Input =>
(Input_State, Private_State, Navigation_Parameter_State),
In_Out => Operating_Point_State),
Pre => Power_On
and then Mission_Parameters_Defined
and then Power_State = ON
and then On_State in INIT | RUNNING,
Post =>
-- F_MM ensures freeze of the operating point once landing is
-- activated.
(if On_State = RUNNING
and then Running_State = LANDING
then Operating_Point = Operating_Point'Old
-- Take-Off preset operating point (Altitude_ref_TakeOff and
-- Speed_ref_TakeOff) (see #28).
elsif On_State = RUNNING
and then Running_State = TAKE_OFF
then Operating_Point =
Operating_Point_Type'(Altitude => Data.Altitude_ref_TakeOff,
Speed => Data.Speed_ref_TakeOff)
-- During flight, RP mode enables modification of the operating
-- point.
else Operating_Point = Operating_Point_From_Navigation_Parameters)
-- RP mode enables modification of range parameter before take-off.
and then
(if Navigation_Mode = RP
and then On_State = INIT
then Mission_Range = Mission_Range_From_Navigation_Parameters
else Mission_Range = Mission_Range'Old);
------------------------------
-- Mission_Viability_Logic --
------------------------------
function Mission_Profile return Mission_Profile_Type with
Global => Viability_Logic_State;
function Appropriate_Tabulating_Function return Viability_Domain_Mesh_Type
with
Global => Viability_Logic_State;
function Distance_With_Neighbour
(Neighbour : Mission_Profile_Type) return Mission_Profile_Distance_Type
with
Global => Viability_Logic_State;
-- Compute the distance between Mission_Profile and its Neighbour.
function Nearest_Neighbours return Neighbour_Mission_Profiles with
Global => Viability_Logic_State;
function Extract_Energy_Level_For_Neighbours return Energy_Levels
with
Global => Viability_Logic_State;
function Interpolated_Energy_Level return Energy_Level_Type with
Global => Viability_Logic_State;
-- Compute the interpolation of the energy levels of the neighbours of
-- Mission_Profile by distance-based averaging.
procedure Mission_Viability_Logic with
Global => (Input =>
(Input_State,
Private_State,
Navigation_Parameter_State,
Operating_Point_State),
In_Out => Viability_Logic_State),
Pre => Power_State = ON,
Post =>
-- 1. Assembling mission profile.
Mission_Profile =
(Mass => Payload_Mass,
Distance => Current_Range,
Altitude => Current_Altitude,
Speed => Current_Speed)
-- 2. Selecting tabulating function that corresponds to navigation mode.
and then Appropriate_Tabulating_Function =
(if On_State = INIT and then Navigation_Mode = A
then Data.Amode_Initial_Domain_Mesh
elsif On_State = INIT and then Navigation_Mode = RP
then Data.RPmode_Initial_Domain_Mesh
elsif Navigation_Mode = A
then Data.Amode_Cruise_Domain_Mesh
else Data.RPmode_Cruise_Domain_Mesh)
-- 3. Computing the nearest neighbours of Mission_Profile in
-- Appropriate_Tabulating_Function, and the distance of Mission_Profile to
-- its nearest neignbours.
and then
(for all Neighbour_Center of Nearest_Neighbours.Neighbours =>
Neighbour_Center.Mission_Profile.M in
MMS.F_PT.Data.Payload_Mass_Grid'Range
and then Neighbour_Center.Mission_Profile.D in
Appropriate_Tabulating_Function'Range (1)
and then Neighbour_Center.Mission_Profile.A in
Appropriate_Tabulating_Function'Range (2)
and then Neighbour_Center.Mission_Profile.S in
Appropriate_Tabulating_Function'Range (3)
and then Neighbour_Center.Distance =
Distance_With_Neighbour
(Mission_Profile_Type'
(Mass =>
MMS.F_PT.Data.Payload_Mass_Grid
(Neighbour_Center.Mission_Profile.M),
Distance =>
Appropriate_Tabulating_Function
(Neighbour_Center.Mission_Profile.D,
Neighbour_Center.Mission_Profile.A,
Neighbour_Center.Mission_Profile.S).Distance,
Altitude =>
Appropriate_Tabulating_Function
(Neighbour_Center.Mission_Profile.D,
Neighbour_Center.Mission_Profile.A,
Neighbour_Center.Mission_Profile.S).Altitude,
Speed =>
Appropriate_Tabulating_Function
(Neighbour_Center.Mission_Profile.D,
Neighbour_Center.Mission_Profile.A,
Neighbour_Center.Mission_Profile.S).Speed)))
-- 4. Extracting energy level for the neighbours.
and then Extract_Energy_Level_For_Neighbours.Size =
Nearest_Neighbours.Size
and then
(for all I in 1 .. Extract_Energy_Level_For_Neighbours.Size =>
Extract_Energy_Level_For_Neighbours.Neighbours (I) =
(if On_State = INIT and then Navigation_Mode = A
then Data.Viability_Amode_Initial
(M => Nearest_Neighbours.Neighbours (I).Mission_Profile.M,
D => Nearest_Neighbours.Neighbours (I).Mission_Profile.D,
A => Nearest_Neighbours.Neighbours (I).Mission_Profile.A,
S => Nearest_Neighbours.Neighbours (I).Mission_Profile.S)
elsif On_State = INIT and then Navigation_Mode = RP
then Data.Viability_RPmode_Initial
(M => Nearest_Neighbours.Neighbours (I).Mission_Profile.M,
D => Nearest_Neighbours.Neighbours (I).Mission_Profile.D,
A => Nearest_Neighbours.Neighbours (I).Mission_Profile.A,
S => Nearest_Neighbours.Neighbours (I).Mission_Profile.S)
elsif Navigation_Mode = A
then Data.Viability_Amode_Cruise
(M => Nearest_Neighbours.Neighbours (I).Mission_Profile.M,
D => Nearest_Neighbours.Neighbours (I).Mission_Profile.D,
A => Nearest_Neighbours.Neighbours (I).Mission_Profile.A,
S => Nearest_Neighbours.Neighbours (I).Mission_Profile.S)
else Data.Viability_RPmode_Cruise
(M => Nearest_Neighbours.Neighbours (I).Mission_Profile.M,
D => Nearest_Neighbours.Neighbours (I).Mission_Profile.D,
A => Nearest_Neighbours.Neighbours (I).Mission_Profile.A,
S => Nearest_Neighbours.Neighbours (I).Mission_Profile.S)))
-- 5. Compute MP's enery level by interpolation of its neighbours
-- Set appropriate value to Interpolated_Energy_Level
;
procedure Initial_Mission_Viability_Logic with
-- Compute the value of Initial_Energy_Compatible_With_Mission. It should
-- be computed when Init_Completed is True.
Global => (Input =>
(Input_State,
Private_State,
Navigation_Parameter_State,
Operating_Point_State),
In_Out => Viability_Logic_State),
Pre => Power_On
and then Power_State = ON
and then On_State = INIT
and then Init_Completed,
Post => Initial_Energy_Compatible_With_Mission =
-- In A mode, use a 30% energy margin.
((if Navigation_Mode = A then Interpolated_Energy_Level * 13 / 10
-- In RP mode, use a 10% energy margin.
else Interpolated_Energy_Level * 11 / 10) >= Energy_Level);
procedure In_Flight_Mission_Viability_Logic with
-- Compute the value of In_Flight_Energy_Compatible_With_Mission. It should
-- be repeated at a periodic rate of F_Viability.
-- Set In_Flight_Energy_Compatible_With_Mission to True if Energy_Level is
-- at least the Interpolated_Energy_Level plus an enery margin. When
-- EstimatedTotalMass increases, and even more so if it increases quickly,
-- F_MM applies greater safety margins (see #17).
Global => (Input =>
(Input_State,
Private_State,
Navigation_Parameter_State,
Operating_Point_State),
In_Out => Viability_Logic_State),
Pre => Power_On
and then Power_State = ON
and then On_State = RUNNING
and then Running_State = FLIGHT
and then Current_Flight_Phase = CRUISE;
---------------------------------
-- Mission Termination Control --
---------------------------------
function Current_Glide_Distance return Current_Range_Type with
Global => Mission_Termination_State;
-- Compute the glide distance associated with Current_Altitude using the
-- Glide_Distance_Domain_Mesh table and the Glide_Distance tabulated
-- function.
procedure Mission_Termination_Control with
-- Monitor Current_Range and activate landing.
Global => (Input =>
(Input_State,
Private_State,
Navigation_Parameter_State,
Operating_Point_State),
In_Out => Mission_Termination_State),
Pre => Power_On
and then Power_State = ON
and then On_State = RUNNING
and then Running_State = FLIGHT
and then Current_Flight_Phase = DESCENT,
Post => Descent_Over =
(Mission_Range - Current_Range < Current_Glide_Distance);
--------------------------------
-- Update the State Automaton --
--------------------------------
procedure Update_States with
Global => (Input =>
(Input_State,
Navigation_Parameter_State,
Operating_Point_State,
Viability_Logic_State,
Mission_Termination_State),
In_Out => Private_State),
Pre =>
(if Power_On and then Power_State = On and then On_State = RUNNING then
Init_Completed),
Contract_Cases =>
(not Power_On
=>
Power_State = OFF,
Power_State = OFF
and then Power_On
=>
Power_State = ON
and then On_State = INIT
and then Init_State = PREPARATION,
Power_State = ON
and then Power_On
and then (On_State in INIT | RUNNING)
and then Mission_Abort_Received
=>
Power_State = ON
and then On_State = ABORTED
and then Aborted_For_Energy_Reasons = False,
Power_State = ON
and then Power_On
and then On_State = INIT
and then not Mission_Abort_Received
and then not Init_Completed
=>
Power_State = ON
and then On_State = INIT
and then Init_State = PREPARATION,
Power_State = ON
and then Power_On
and then On_State = INIT
and then not Mission_Abort_Received
and then Init_Completed
and then not Start_Or_Go_Received
and then Initial_Energy_Compatible_With_Mission
=>
Power_State = ON
and then On_State = INIT
and then Init_State = READY,
Power_State = ON
and then Power_On
and then On_State = INIT
and then not Mission_Abort_Received
and then Init_Completed
and then Start_Or_Go_Received
and then Initial_Energy_Compatible_With_Mission
=>
Power_State = ON
and then On_State = RUNNING
and then Running_State = TAKE_OFF,
Power_State = ON
and then Power_On
and then On_State = INIT
and then not Mission_Abort_Received
and then Init_Completed
and then not Initial_Energy_Compatible_With_Mission
=>
Power_State = ON
and then On_State = INIT
and then Init_State = CANCELLED,
Power_State = ON
and then On_State = RUNNING
and then Running_State = TAKE_OFF
and then Power_On
and then not Mission_Abort_Received
and then Take_Off_Over
=>
Power_State = ON
and then On_State = RUNNING
and then Running_State = FLIGHT,
Power_State = ON
and then On_State = RUNNING
and then Running_State = TAKE_OFF
and then Power_On
and then not Mission_Abort_Received
and then not Take_Off_Over
=>
Power_State = ON
and then On_State = RUNNING
and then Running_State = TAKE_OFF,
Power_State = ON
and then On_State = RUNNING
and then Running_State = FLIGHT
and then Power_On
and then not Mission_Abort_Received
and then Current_Flight_Phase = CRUISE
and then not In_Flight_Energy_Compatible_With_Mission
=>
Power_State = ON
and then On_State = ABORTED
and then Aborted_For_Energy_Reasons = True
and then Mission_Aborted_Signaled
and then Emergency_Landing,
Power_State = ON
and then On_State = RUNNING
and then Running_State = FLIGHT
and then Power_On
and then not Mission_Abort_Received
and then Current_Flight_Phase = DESCENT
and then Descent_Over
=>
Power_State = ON
and then On_State = RUNNING
and then Running_State = LANDING,
Power_State = ON
and then On_State = RUNNING
and then Running_State = FLIGHT
and then Power_On
and then not Mission_Abort_Received
and then
(if Current_Flight_Phase = CRUISE then
In_Flight_Energy_Compatible_With_Mission
elsif Current_Flight_Phase = DESCENT then not Descent_Over)
=>
Power_State = ON
and then On_State = RUNNING
and then Running_State = FLIGHT,
Power_State = ON
and then On_State = RUNNING
and then Running_State = LANDING
and then Power_On
and then not Mission_Abort_Received
and then Landed
=>
Power_State = ON
and then On_State = COMPLETE,
Power_State = ON
and then On_State = RUNNING
and then Running_State = LANDING
and then Power_On
and then not Mission_Abort_Received
and then not Landed
=>
Power_State = ON
and then On_State = RUNNING
and then Running_State = LANDING,
Power_State = ON
and then Power_On
and then (On_State in COMPLETE .. ABORTED)
=>
Power_State = ON
and then On_State = On_State'Old);
private
----------------------------
-- Definitions of Inputs --
----------------------------
function Power_On return Boolean is
(State.Input_On_OFF_Push_Button);
function Payload_Bay_Closed return Boolean is
(State.Input_Bay_Switch = CLOSED);
function Payload_Mass_Given return Boolean is
(State.Input_Payload_Mass /= 99);
function Payload_Mass return Payload_Mass_Type is
(State.Input_Payload_Mass);
function Navigation_Mode_From_CP return Navigation_Mode_Type is
(State.Input_Mode_Switch);
function Navigation_Mode_From_GS_Received return Boolean is
(State.Input_Navigation_Mode.Present);
function Navigation_Mode_From_GS return Navigation_Mode_Type is
(State.Input_Navigation_Mode.Content);
function Operating_Mode_From_USB_Key return Navigation_Option_Type is
(State.Input_USB_Key.Content.Navigation_Option);
function Operating_Mode_From_GS_Received return Boolean is
(State.Input_Navigation_Option.Present);
function Operating_Mode_From_GS return Navigation_Option_Type is
(State.Input_Navigation_Option.Content);
function Navigation_Parameters_From_GS_Received return Boolean is
(State.Input_Navigation_Parameters.Present);
function Navigation_Parameters_From_GS return Navigation_Parameters_Type is
(State.Input_Navigation_Parameters.Content);
function USB_Key_Present return Boolean is
(State.Input_USB_Key.Present);
function Navigation_Parameters_From_USB_Key return Navigation_Parameters_Type is
(State.Input_USB_Key.Content.Navigation_Parameters);
function Mission_Abort_Received return Boolean is
(State.Input_Mission_Abort);
function Start_Or_Go_Received return Boolean is
(State.Input_Go or State.Input_Start_Push_Button);
function Current_Range return Current_Range_Type is
(State.Input_Current_Range);
function Current_Speed return Current_Speed_Type is
(State.Input_Current_Speed);
function Current_Altitude return Current_Altitude_Type is
(State.Input_Current_Altitude);
function Current_Flight_Phase return Flight_Phase_Type is
(State.Input_Current_Flight_Phase);
function Energy_Level return Energy_Level_Type is
(State.Input_Energy_Level);
------------------------------------
-- Definitions of Internal State --
------------------------------------
function Power_State return Power_State_Type is
(State.Power_State);
function On_State return On_State_Type is
(State.On_State);
function Running_State return Running_State_Type is
(State.Running_State);
function Init_State return Init_State_Type is
(State.Init_State);
function Aborted_For_Energy_Reasons return Boolean is
(State.Aborted_For_Energy_Reasons);
function Descent_Over return Boolean is
(State.Descent_Over);
function Navigation_Parameters return Navigation_Parameters_Type is
(State.Navigation_Parameters);
function Navigation_Mode return Navigation_Mode_Type is
(State.Navigation_Mode);
function Operating_Mode_From_Parameters return Navigation_Option_Type is
(State.Operating_Mode_From_Parameters);
function Operating_Mode return Navigation_Option_Type is
(State.Operating_Mode);
function Initial_Energy_Compatible_With_Mission return Boolean is
(State.Initial_Energy_Compatible_With_Mission);
function In_Flight_Energy_Compatible_With_Mission return Boolean is
(State.In_Flight_Energy_Compatible_With_Mission);
function Mission_Range return Current_Range_Type is
(State.Mission_Range);
function Operating_Point return Operating_Point_Type is
(State.Operating_Point);
end MMS.F_PT.F_MM.Behavior;

View File

@@ -1,79 +0,0 @@
with MMS.F_PT.Data;
with Types; use Types;
package MMS.F_PT.F_MM.Data is
--------------------------
-- Parameter Data Items --
--------------------------
-- From 6.6.2.3
Amode_Initial_Domain_Mesh : Viability_Domain_Mesh_Type
(1 .. 100, 1 .. 100, 1 .. 100); -- ??? bounds
function Viability_Amode_Initial
(M : Payload_Mass_Center;
D : Viability_Distance_Center;
A : Viability_Altitude_Center;
S : Viability_Speed_Center) return Energy_Level_Type
with Pre => M in MMS.F_PT.Data.Payload_Mass_Grid'Range
and then D in Amode_Initial_Domain_Mesh'Range (1)
and then A in Amode_Initial_Domain_Mesh'Range (2)
and then S in Amode_Initial_Domain_Mesh'Range (3);
Amode_Cruise_Domain_Mesh : Viability_Domain_Mesh_Type
(1 .. 100, 1 .. 100, 1 .. 100); -- ??? bounds
function Viability_Amode_Cruise
(M : Payload_Mass_Center;
D : Viability_Distance_Center;
A : Viability_Altitude_Center;
S : Viability_Speed_Center) return Energy_Level_Type
with Pre => M in MMS.F_PT.Data.Payload_Mass_Grid'Range
and then D in Amode_Cruise_Domain_Mesh'Range (1)
and then A in Amode_Cruise_Domain_Mesh'Range (2)
and then S in Amode_Cruise_Domain_Mesh'Range (3);
RPmode_Initial_Domain_Mesh : Viability_Domain_Mesh_Type
(1 .. 100, 1 .. 100, 1 .. 100); -- ??? bounds
function Viability_RPmode_Initial
(M : Payload_Mass_Center;
D : Viability_Distance_Center;
A : Viability_Altitude_Center;
S : Viability_Speed_Center) return Energy_Level_Type
with Pre => M in MMS.F_PT.Data.Payload_Mass_Grid'Range
and then D in RPmode_Initial_Domain_Mesh'Range (1)
and then A in RPmode_Initial_Domain_Mesh'Range (2)
and then S in RPmode_Initial_Domain_Mesh'Range (3);
RPmode_Cruise_Domain_Mesh : Viability_Domain_Mesh_Type
(1 .. 100, 1 .. 100, 1 .. 100); -- ??? bounds
function Viability_RPmode_Cruise
(M : Payload_Mass_Center;
D : Viability_Distance_Center;
A : Viability_Altitude_Center;
S : Viability_Speed_Center) return Energy_Level_Type
with Pre => M in MMS.F_PT.Data.Payload_Mass_Grid'Range
and then D in RPmode_Cruise_Domain_Mesh'Range (1)
and then A in RPmode_Cruise_Domain_Mesh'Range (2)
and then S in RPmode_Cruise_Domain_Mesh'Range (3);
-- From 6.6.4 Mission termination control
Glide_Distance_Domain_Mesh : Glide_Domain_Mesh_Type (1 .. 100); -- ??? bounds
function Glide_Distance
(AI : Glide_Altitude_Center) return Current_Range_Type
with Pre => AI in Glide_Distance_Domain_Mesh'Range;
-- Issue #28
Altitude_ref_TakeOff : Current_Altitude_Type;
Speed_ref_TakeOff : Current_Speed_Type;
Energy_Mode_ref_TakeOff : Speed_Or_Altitude;
end MMS.F_PT.F_MM.Data;

View File

@@ -1,77 +0,0 @@
with MMS.F_PT.F_CM.Output;
with MMS.F_PT.F_FC.Output;
with MMS.F_PT.F_EM.Output;
with MMS.F_PT.Input;
with Types; use Types;
package MMS.F_PT.F_MM.Input is
---------------
-- From F_CM --
---------------
function Navigation_Parameters return Navigation_Parameters_Type_Option
renames MMS.F_PT.F_CM.Output.Navigation_Parameters;
function Navigation_Mode return Navigation_Mode_Type_Option
renames MMS.F_PT.F_CM.Output.Navigation_Mode;
function Navigation_Option return Navigation_Option_Type_Option
renames MMS.F_PT.F_CM.Output.Navigation_Option;
function Go return Boolean
renames MMS.F_PT.F_CM.Output.Go;
function On_OFF_Push_Button return Boolean
renames MMS.F_PT.F_CM.Output.On_OFF_Push_Button;
function Start_Push_Button return Boolean
renames MMS.F_PT.F_CM.Output.Start_Push_Button;
function Mode_Switch return Navigation_Mode_Type
renames MMS.F_PT.F_CM.Output.Mode_Switch;
function Bay_Switch return Bay_Switch_Type
renames MMS.F_PT.F_CM.Output.Bay_Switch;
function Payload_Mass return Payload_Mass_Type
renames MMS.F_PT.F_CM.Output.Payload_Mass;
function USB_Key return USB_Key_Type_Option
renames MMS.F_PT.F_CM.Output.USB_Key;
-----------------------
-- From F_FC or F_EL --
-----------------------
function Mission_Abort return Boolean is
(MMS.F_PT.F_FC.Output.Mission_Abort or else MMS.F_PT.Input.Mission_Abort);
---------------
-- From F_FC --
---------------
function Estimated_Total_Mass return Estimated_Total_Mass_Type
renames MMS.F_PT.F_FC.Output.Estimated_Total_Mass;
function Current_Range return Current_Range_Type
renames MMS.F_PT.F_FC.Output.Current_Range;
function Current_Speed return Current_Speed_Type
renames MMS.F_PT.F_FC.Output.Current_Speed;
function Current_Altitude return Current_Altitude_Type
renames MMS.F_PT.F_FC.Output.Current_Altitude;
function Current_Flight_Phase return Flight_Phase_Type
renames MMS.F_PT.F_FC.Output.Current_Flight_Phase;
---------------
-- From F_EM --
---------------
function Energy_Level return Energy_Level_Type
renames MMS.F_PT.F_EM.Output.Energy_Level;
end MMS.F_PT.F_MM.Input;

View File

@@ -1,38 +0,0 @@
with Types; use Types;
package MMS.F_PT.F_MM.Output is
-------------
-- To F_CM --
-------------
function Mission_Cancelled return Boolean with Global => Output_State;
function Mission_Complete return Boolean with Global => Output_State;
function Mission_Aborted return Boolean with Global => Output_State;
function Ready_For_Takeoff return Boolean with Global => Output_State;
----------------------
-- To F_EL and F_CM --
----------------------
function Emergency_Landing return Boolean with Global => Output_State;
-------------
-- To F_FC --
-------------
function Start_Take_Off return Boolean with Global => Output_State;
function Start_Landing return Boolean with Global => Output_State;
function Operating_Point return Operating_Point_Type with Global => Output_State;
function Operating_Mode return Navigation_Option_Type with Global => Output_State;
function Mission_Range return Current_Range_Type with Global => Output_State;
-- ??? which distance type
end MMS.F_PT.F_MM.Output;

View File

@@ -1,124 +0,0 @@
private
package MMS.F_PT.F_MM.State is
-----------------
-- Input_State --
-----------------
Input_Navigation_Parameters : Navigation_Parameters_Type_Option with
Part_Of => Input_State;
Input_Navigation_Mode : Navigation_Mode_Type_Option with
Part_Of => Input_State;
Input_Navigation_Option : Navigation_Option_Type_Option with
Part_Of => Input_State;
Input_Go : Boolean with Part_Of => Input_State;
Input_On_OFF_Push_Button : Boolean with Part_Of => Input_State;
Input_Start_Push_Button : Boolean with Part_Of => Input_State;
Input_Mode_Switch : Navigation_Mode_Type with Part_Of => Input_State;
Input_Bay_Switch : Bay_Switch_Type with Part_Of => Input_State;
Input_Payload_Mass : Payload_Mass_Type with Part_Of => Input_State;
Input_USB_Key : USB_Key_Type_Option with
Part_Of => Input_State;
Input_Mission_Abort : Boolean with Part_Of => Input_State;
Input_Estimated_Total_Mass : Estimated_Total_Mass_Type with
Part_Of => Input_State;
Input_Current_Range : Current_Range_Type with Part_Of => Input_State;
Input_Current_Speed : Current_Speed_Type with Part_Of => Input_State;
Input_Current_Altitude : Current_Altitude_Type with Part_Of => Input_State;
Input_Current_Flight_Phase : Flight_Phase_Type with Part_Of => Input_State;
Input_Energy_Level : Energy_Level_Type with Part_Of => Input_State;
-------------------
-- Private_State --
-------------------
Power_State : Power_State_Type with Part_Of => Private_State;
On_State : On_State_Type with Part_Of => Private_State;
Init_State : Init_State_Type with Part_Of => Private_State;
Running_State : Running_State_Type with Part_Of => Private_State;
Aborted_For_Energy_Reasons : Boolean with Part_Of => Private_State;
--------------------------------
-- Navigation_Parameter_State --
--------------------------------
Navigation_Mode : Navigation_Mode_Type with
Part_Of => Navigation_Parameter_State;
Operating_Mode_From_Parameters : Navigation_Option_Type with
Part_Of => Navigation_Parameter_State;
Operating_Mode : Navigation_Option_Type with
Part_Of => Navigation_Parameter_State;
Navigation_Parameters : Navigation_Parameters_Type with
Part_Of => Navigation_Parameter_State;
---------------------------
-- Operating_Point_State --
---------------------------
Mission_Range : Current_Range_Type with Part_Of => Operating_Point_State;
Operating_Point : Operating_Point_Type with
Part_Of => Operating_Point_State;
---------------------------
-- Viability_Logic_State --
---------------------------
Initial_Energy_Compatible_With_Mission : Boolean with
Part_Of => Viability_Logic_State;
In_Flight_Energy_Compatible_With_Mission : Boolean with
Part_Of => Viability_Logic_State;
-------------------------------
-- Mission_Termination_State --
-------------------------------
Descent_Over : Boolean with Part_Of => Mission_Termination_State;
------------------
-- Output_State --
------------------
Output_Mission_Cancelled : Boolean with Part_Of => Output_State;
Output_Mission_Complete : Boolean with Part_Of => Output_State;
Output_Mission_Aborted : Boolean with Part_Of => Output_State;
Output_Emergency_Landing : Boolean with Part_Of => Output_State;
Output_Start_Take_Off : Boolean with Part_Of => Output_State;
Output_Start_Landing : Boolean with Part_Of => Output_State;
Output_Operating_Point : Operating_Point_Type with Part_Of => Output_State;
Output_Operating_Mode : Navigation_Option_Type with Part_Of => Output_State;
Output_Mission_Range : Current_Range_Type with Part_Of => Output_State;
end MMS.F_PT.F_MM.State;

View File

@@ -1,52 +0,0 @@
with MMS.F_PT.F_MM.State; use MMS.F_PT.F_MM.State;
package body MMS.F_PT.F_MM with
SPARK_Mode,
Refined_State => (Input_State =>
(Input_Navigation_Parameters,
Input_Navigation_Mode,
Input_Navigation_Option,
Input_Go,
Input_On_OFF_Push_Button,
Input_Start_Push_Button,
Input_Mode_Switch,
Input_Bay_Switch,
Input_Payload_Mass,
Input_USB_Key,
Input_Mission_Abort,
Input_Estimated_Total_Mass,
Input_Current_Range,
Input_Current_Speed,
Input_Current_Altitude,
Input_Current_Flight_Phase,
Input_Energy_Level),
Output_State =>
(Output_Mission_Cancelled,
Output_Mission_Complete,
Output_Mission_Aborted,
Output_Emergency_Landing,
Output_Start_Take_Off,
Output_Start_Landing,
Output_Operating_Point,
Output_Operating_Mode,
Output_Mission_Range),
Private_State =>
(Power_State,
On_State,
Init_State,
Running_State,
Aborted_For_Energy_Reasons),
Navigation_Parameter_State =>
(Navigation_Mode,
Operating_Mode_From_Parameters,
Operating_Mode,
Navigation_Parameters),
Operating_Point_State =>
(Mission_Range,
Operating_Point),
Viability_Logic_State =>
(Initial_Energy_Compatible_With_Mission,
In_Flight_Energy_Compatible_With_Mission),
Mission_Termination_State =>
(Descent_Over))
is
end MMS.F_PT.F_MM;

View File

@@ -1,80 +0,0 @@
with Types; use Types;
package MMS.F_PT.F_MM with
SPARK_Mode,
Abstract_State =>
(Navigation_Parameter_State,
Operating_Point_State,
Viability_Logic_State,
Mission_Termination_State,
Private_State,
Output_State,
Input_State)
is
pragma Elaborate_Body (MMS.F_PT.F_MM);
type Power_State_Type is (ON, OFF);
type Init_State_Type is (PREPARATION, READY, CANCELLED);
type Viability_Cell_Center_Type is record
Distance : Current_Range_Type;
Altitude : Current_Altitude_Type;
Speed : Current_Speed_Type;
end record;
type Viability_Distance_Center is new Positive;
type Viability_Altitude_Center is new Positive;
type Viability_Speed_Center is new Positive;
type Viability_Domain_Mesh_Type is array
(Viability_Distance_Center range <>,
Viability_Altitude_Center range <>,
Viability_Speed_Center range <>)
of Viability_Cell_Center_Type;
type Glide_Altitude_Center is new Positive;
type Glide_Domain_Mesh_Type is array
(Glide_Altitude_Center range <>) of Current_Altitude_Type;
type Mission_Profile_Type is record
Mass : Payload_Mass_Type;
Distance : Current_Range_Type;
Altitude : Current_Altitude_Type;
Speed : Current_Speed_Type;
end record;
type Center_Mission_Profile_Type is record
M : Payload_Mass_Center;
D : Viability_Distance_Center;
A : Viability_Altitude_Center;
S : Viability_Speed_Center;
end record;
type Mission_Profile_Distance_Type is new Natural;
type Neighbour_Mission_Profile_Type is record
Mission_Profile : Center_Mission_Profile_Type;
Distance : Mission_Profile_Distance_Type;
end record;
type Num_Of_Neighbours is new Positive range 1 .. 16;
type Neighbour_Mission_Profile_Array_Type is array
(Num_Of_Neighbours range <>)
of Neighbour_Mission_Profile_Type;
type Neighbour_Mission_Profiles (Size : Num_Of_Neighbours) is record
Neighbours : Neighbour_Mission_Profile_Array_Type (1 .. Size);
end record;
type Energy_Level_Array_Type is array
(Num_Of_Neighbours range <>)
of Energy_Level_Type;
type Energy_Levels (Size : Num_Of_Neighbours) is record
Neighbours : Energy_Level_Array_Type (1 .. Size);
end record;
end MMS.F_PT.F_MM;

View File

@@ -1,61 +0,0 @@
with MMS.Input;
with MMS.F_EL.Output;
with Types; use Types;
package MMS.F_PT.Input is
--------------
-- From MMS --
--------------
function Navigation_Parameters return Navigation_Parameters_Type_Option
renames MMS.Input.Navigation_Parameters;
function Navigation_Mode return Navigation_Mode_Type_Option
renames MMS.Input.Navigation_Mode;
function Navigation_Option return Navigation_Option_Type_Option
renames MMS.Input.Navigation_Option;
function Go return Boolean
renames MMS.Input.Go;
function Emergency_Landing return Boolean
renames MMS.Input.Emergency_Landing;
function On_OFF_Push_Button return Boolean
renames MMS.Input.On_OFF_Push_Button;
function Start_Push_Button return Boolean
renames MMS.Input.Start_Push_Button;
function Mode_Switch return Navigation_Mode_Type
renames MMS.Input.Mode_Switch;
function Bay_Switch return Bay_Switch_Type
renames MMS.Input.Bay_Switch;
function Payload_Mass return Payload_Mass_Type
renames MMS.Input.Payload_Mass;
function USB_Key return USB_Key_Type_Option
renames MMS.Input.USB_Key;
function P return Distance_Type
renames MMS.Input.P;
function P_Dot return Speed_Type
renames MMS.Input.P_Dot;
function Q return Angle_Type
renames MMS.Input.Q;
---------------
-- From F_EL --
---------------
function Mission_Abort return Boolean
renames MMS.F_EL.Output.Mission_Abort;
end MMS.F_PT.Input;

View File

@@ -1,49 +0,0 @@
with MMS.F_PT.F_CM.Output;
with MMS.F_PT.F_MM.Output;
with Types; use Types;
package MMS.F_PT.Output is
-----------
--To MMS --
-----------
function CP_Switches return CP_Switches_Type
renames MMS.F_PT.F_CM.Output.CP_Switches;
function CP_Displays return CP_Displays_Type
renames MMS.F_PT.F_CM.Output.CP_Displays;
function Propulsion_Energy return Propulsion_Energy_Type
renames MMS.F_PT.F_CM.Output.Propulsion_Energy;
function Mission_Cancelled return Boolean
renames MMS.F_PT.F_CM.Output.Mission_Cancelled;
function Mission_Complete return Boolean
renames MMS.F_PT.F_CM.Output.Mission_Complete;
function Mission_Aborted return Boolean
renames MMS.F_PT.F_CM.Output.Mission_Aborted;
function Primary_Source return Source_Type
renames MMS.F_PT.F_CM.Output.Primary_Source;
function Secondary_Source return Source_Type
renames MMS.F_PT.F_CM.Output.Secondary_Source;
function Propulsion_Torque return Torque_Type
renames MMS.F_PT.F_CM.Output.Propulsion_Torque;
function Braking_Torque return Torque_Type
renames MMS.F_PT.F_CM.Output.Braking_Torque;
--------------
-- To F_EL --
--------------
function Emergency_Landing return Boolean
renames MMS.F_PT.F_MM.Output.Emergency_Landing;
end MMS.F_PT.Output;

View File

@@ -1,33 +0,0 @@
with Types; use Types;
package MMS.F_PT is
type Current_Range_Type is range 1 .. 1_000_000; -- in meters
type Current_Speed_Type is range 0 .. 500; -- in km/h
type Current_Altitude_Type is range -200 .. 1_000; -- in meters
type Estimated_Total_Mass_Type is delta 0.1 range 5.0 .. 10.0; -- in kg ???
type Energy_Level_Type is range 0 .. 500; -- in kj
subtype Speed_Or_Altitude is Navigation_Option_Type range SPEED .. ALTITUDE;
type Operating_Point_Type is record
Altitude : Current_Altitude_Type; -- ??? which altitude type
Speed : Current_Speed_Type; -- ??? which speed type
end record;
type Payload_Mass_Center is new Positive;
type Payload_Mass_Grid_Type is array (Payload_Mass_Center range <>)
of Payload_Mass_Type;
type On_State_Type is (INIT, RUNNING, COMPLETE, ABORTED);
type Running_State_Type is (TAKE_OFF, FLIGHT, LANDING);
type Flight_Phase_Type is (CLIMB, CRUISE, DESCENT);
end MMS.F_PT;

View File

@@ -1,55 +0,0 @@
with Types; use Types;
with External;
package MMS.Input is
------------------------------------------------------
-- Ground-based Mission Preparation and Supervision --
------------------------------------------------------
function Navigation_Parameters return Navigation_Parameters_Type_Option
renames External.Navigation_Parameters;
function Navigation_Mode return Navigation_Mode_Type_Option
renames External.Navigation_Mode;
function Navigation_Option return Navigation_Option_Type_Option
renames External.Navigation_Option;
function Go return Boolean renames External.Go;
function Emergency_Landing return Boolean renames External.Emergency_Landing;
--------------------------------------------------
-- AV-based Mission Preparation (Control Panel) --
--------------------------------------------------
function On_OFF_Push_Button return Boolean
renames External.On_OFF_Push_Button;
function Start_Push_Button return Boolean
renames External.Start_Push_Button;
function Mode_Switch return Navigation_Mode_Type
renames External.Mode_Switch;
function Bay_Switch return Bay_Switch_Type
renames External.Bay_Switch;
function Payload_Mass return Payload_Mass_Type
renames External.Payload_Mass;
function USB_Key return USB_Key_Type_Option
renames External.USB_Key;
-------------------------
-- Physical Parameters --
-------------------------
function P return Distance_Type renames External.P;
function P_Dot return Speed_Type renames External.P_Dot;
function Q return Angle_Type renames External.Q;
end MMS.Input;

View File

@@ -1,47 +0,0 @@
with MMS.F_PT.Output;
with Types; use Types;
package MMS.Output is
-------------------------------------
-- Ground-based Mission Monitoring --
-------------------------------------
function CP_Switches return CP_Switches_Type
renames MMS.F_PT.Output.CP_Switches;
function CP_Displays return CP_Displays_Type
renames MMS.F_PT.Output.CP_Displays;
function Propulsion_Energy return Propulsion_Energy_Type
renames MMS.F_PT.Output.Propulsion_Energy;
----------------------------
-- Control Panel Displays --
----------------------------
function Mission_Cancelled return Boolean
renames MMS.F_PT.Output.Mission_Cancelled;
function Mission_Complete return Boolean
renames MMS.F_PT.Output.Mission_Complete;
function Mission_Aborted return Boolean
renames MMS.F_PT.Output.Mission_Aborted;
function Primary_Source return Source_Type
renames MMS.F_PT.Output.Primary_Source;
function Secondary_Source return Source_Type
renames MMS.F_PT.Output.Secondary_Source;
-------------------------
-- Physical Parameters --
-------------------------
function Propulsion_Torque return Torque_Type;
function Braking_Torque return Torque_Type;
end MMS.Output;

View File

@@ -1,19 +0,0 @@
-- The structure of the MMS system has been created from the System
-- Requirements document following the pattern below:
-- * Components are packages.
-- * Sub-Components are child packages.
-- * Inputs and outputs are functions stored in child packages Comp.Input and
-- Comp.Output.
-- * Connections between inputs and outputs of various components are done
-- using renamings (or eventually expression functions when necessary).
-- Consistency of the component architecture is ensured by following the
-- rules below:
-- - An input package Comp.Subcomp.Input can only reference outputs of
-- siblings Comp.*.Output or inputs of parent Comp.Input.
-- - An output package Comp.Output can only reference its own inputs
-- Comp.Input or outputs of its children Comp.Subcomp.Output.
-- - In subcomponents, inputs and outputs are grouped within sections
-- with a header specifying to which component(s) they are linked.
package MMS is
end MMS;

View File

@@ -1,150 +0,0 @@
package Types with SPARK_Mode is
----------------------------------
-- Types for inputs and outputs --
----------------------------------
type Distance_Input_Type is range 1 .. 100; -- in n.m
type Speed_Input_Type is range 1 .. 250; -- in k.t
type Altitude_Input_Type is range -500 .. 3000; -- in ft
type Navigation_Parameters_Type is record
Distance : Distance_Input_Type;
Speed : Speed_Input_Type;
Altitude : Altitude_Input_Type;
end record;
type Navigation_Parameters_Type_Option (Present : Boolean := False) is record
case Present is
when True =>
Content : Navigation_Parameters_Type;
when False =>
null;
end case;
end record;
type Navigation_Mode_Type is (RP, A);
type Navigation_Mode_Type_Option (Present : Boolean := False) is record
case Present is
when True =>
Content : Navigation_Mode_Type;
when False =>
null;
end case;
end record;
type Navigation_Option_Type is (SPEED, ALTITUDE, ENERGY);
type Navigation_Option_Type_Option (Present : Boolean := False) is record
case Present is
when True =>
Content : Navigation_Option_Type;
when False =>
null;
end case;
end record;
type USB_Key_Type is record
Navigation_Parameters : Navigation_Parameters_Type;
Navigation_Option : Navigation_Option_Type;
end record;
type USB_Key_Type_Option (Present : Boolean := False) is record
case Present is
when True =>
Content : USB_Key_Type;
when False =>
null;
end case;
end record;
type Bay_Switch_Type is (OPEN, CLOSED);
type Payload_Mass_Type is new Integer range 0 .. 98; -- in kg
package Mks is
type Mks_Type is new Long_Float
with
Dimension_System => (
(Unit_Name => Meter, Unit_Symbol => 'm', Dim_Symbol => 'L'),
(Unit_Name => Kilogram, Unit_Symbol => "kg", Dim_Symbol => 'M'),
(Unit_Name => Second, Unit_Symbol => 's', Dim_Symbol => 'T'),
(Unit_Name => Ampere, Unit_Symbol => 'A', Dim_Symbol => 'I'),
(Unit_Name => Kelvin, Unit_Symbol => 'K', Dim_Symbol => '@'),
(Unit_Name => Mole, Unit_Symbol => "mol", Dim_Symbol => 'N'),
(Unit_Name => Candela, Unit_Symbol => "cd", Dim_Symbol => 'J'));
-- SI Base dimensioned subtypes
subtype Length is Mks_Type
with
Dimension => (Symbol => 'm',
Meter => 1,
others => 0);
subtype Time is Mks_Type
with
Dimension => (Symbol => 's',
Second => 1,
others => 0);
subtype Speed is Mks_Type
with
Dimension => (Meter => 1,
Second => -1,
others => 0);
subtype Angle is Mks_Type
with
Dimension => (Symbol => "rad",
others => 0);
pragma Warnings (Off, "*assumed to be*");
m : constant Length := 1.0;
s : constant Time := 1.0;
pragma Warnings (On, "*assumed to be*");
end Mks;
use Mks;
subtype Distance_Type is Length; -- type of P, unit and bounds ???
subtype Speed_Type is Mks.Speed; -- type of P_Dot and Q_Dot, in angle.s-1, bounds ???
Zero_Speed : constant Speed_Type := 0.0*m*s**(-1);
subtype Angle_Type is Angle; -- type of Q, unit and bounds ???
type Rotactor_Type is range 0 .. 9;
type CP_Switches_Type is record
Power : Boolean;
Mode : Navigation_Mode_Type;
Bay : Bay_Switch_Type;
Start : Boolean;
Rotactor_1 : Rotactor_Type;
Rotactor_2 : Rotactor_Type;
end record;
type Source_Type is range 1 .. 100;
type CP_Displays_Type is record
Ready : Boolean;
Cancelled : Boolean;
Complete : Boolean;
Aborted : Boolean; -- ???
Primary_Source : Source_Type;
Secondary_Source : Source_Type;
end record;
type Propulsion_Energy_Type is record
Primary_Source_Capacity : Source_Type;
Secondary_Source_Capacity : Source_Type;
end record;
type Torque_Type is delta 0.0001 range -10.0E6 .. 10.0E6; -- ???
end Types;

View File

@@ -1,81 +0,0 @@
*** Post-namespace Error (ERR_516): Undefined variable
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 377, character 0
at path f_mm::manage_mission/LL_missionCancelled/
The local variable LL_missionCancelled has no definition
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 291, character 0
at path f_mm::manage_mission/go/
The input variable go is never used
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 295, character 0
at path f_mm::manage_mission/mission_abort/
The input variable mission_abort is never used
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 299, character 0
at path f_mm::manage_mission/pushbutton_on/
The input variable pushbutton_on is never used
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 323, character 0
at path f_mm::manage_mission/estimated_total_mass/
The input variable estimated_total_mass is never used
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 327, character 0
at path f_mm::manage_mission/current_range/
The input variable current_range is never used
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 331, character 0
at path f_mm::manage_mission/current_speed/
The input variable current_speed is never used
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 335, character 0
at path f_mm::manage_mission/current_altitude/
The input variable current_altitude is never used
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 339, character 0
at path f_mm::manage_mission/flight_mode/
The input variable flight_mode is never used
*** Post-namespace Error (ERR_516): Undefined variable
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 352, character 0
at path f_mm::manage_mission/mission_complete/
The output variable mission_complete has no definition
*** Post-namespace Error (ERR_516): Undefined variable
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 356, character 0
at path f_mm::manage_mission/mission_aborted/
The output variable mission_aborted has no definition
*** Post-namespace Error (ERR_516): Undefined variable
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 360, character 0
at path f_mm::manage_mission/emergency_landing/
The output variable emergency_landing has no definition
*** Post-namespace Error (ERR_516): Undefined variable
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 368, character 0
at path f_mm::manage_mission/start_landing/
The output variable start_landing has no definition
*** Post-namespace Error (ERR_516): Undefined variable
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\manage_mission.scade, line 372, character 0
at path f_mm::manage_mission/operating_point/
The output variable operating_point has no definition
*** Completion Error (SE_EXILPA): Illegal Empty Parameter
at path _L1, _L2 = (viab_mm::na<<_null, _null, _null, _null>>)(_null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null)
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\compute_flight_viability.scade, line 113, character 0
at path flight_mm::compute_flight_viability/LL_viability_array/
The local variable LL_viability_array is never used
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\compute_flight_viability.scade, line 95, character 0
at path flight_mm::compute_flight_viability/nav_parameters/
The input variable nav_parameters is never used
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\compute_flight_viability.scade, line 103, character 0
at path flight_mm::compute_flight_viability/payload_mass/
The input variable payload_mass is never used
*** Post-namespace Warning (WAR_508): Unused flow
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\compute_flight_viability.scade, line 107, character 0
at path flight_mm::compute_flight_viability/energy_level/
The input variable energy_level is never used
*** Type Error (ERR_100): Type mismatch
at file C:\Users\ANNEPE~1.POR\AppData\Local\Temp\ScadeChecker\8528\compute_flight_viability.scade, line 132, character 12
at path flight_mm::compute_flight_viability/navigation_mode:then:LL_viability_array=
This expression has type {altitudes:float32^4, distances:float32^4,
masses:float32^4, speeds:float32^4, energies:float32^4^4^4^4}
but should have type bool
(output flow mismatch)

View File

@@ -1,765 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Project id="1" oid_count="538" defaultConfiguration="24">
<props>
<Prop id="10" name="@STUDIO:PRODUCT">
<value>SC</value>
</Prop>
<Prop id="11" name="@SCADE:SAVEVERSION">
<value>SCADE65</value>
</Prop>
<Prop id="15" name="@GENERATOR:TARGET_DIR">
<value>$(Configuration)</value>
<configuration>14</configuration>
</Prop>
<Prop id="16" name="@VC6.0:ADD_COMP_OPTIONS">
<value>/nologo /ML /O2</value>
<configuration>14</configuration>
</Prop>
<Prop id="17" name="@GENERATOR:GENERATOR">
<value>C QUAL65</value>
<configuration>14</configuration>
</Prop>
<Prop id="18" name="@GENERATOR:USE_TYPES">
<value>char</value>
<value>float32</value>
<value>float64</value>
<value>int8</value>
<value>int16</value>
<value>int32</value>
<value>int64</value>
<value>uint8</value>
<value>uint16</value>
<value>uint32</value>
<value>uint64</value>
<value>size</value>
<configuration>14</configuration>
</Prop>
<Prop id="19" name="@GENERATOR:OPTLEVEL">
<value>1</value>
<configuration>14</configuration>
</Prop>
<Prop id="20" name="@GENERATOR:USER_CONFIG">
<value>$(TargetDir)\user_macros.h</value>
<configuration>14</configuration>
</Prop>
<Prop id="21" name="@GENERATOR:ENABLE_EXTENSIONS">
<value>false</value>
<configuration>14</configuration>
</Prop>
<Prop id="22" name="@SIMULATOR:CPU_TYPE">
<value>win64</value>
<configuration>14</configuration>
</Prop>
<Prop id="23" name="@STUDIO:TOOLCONF">
<value>Code Generator</value>
<value>14</value>
<value>24</value>
<value>46</value>
<value>59</value>
</Prop>
<Prop id="25" name="@GENERATOR:TARGET_DIR">
<value>$(Configuration)</value>
<configuration>24</configuration>
</Prop>
<Prop id="26" name="@VC6.0:ADD_COMP_OPTIONS">
<value>/nologo /ML /O2</value>
<configuration>24</configuration>
</Prop>
<Prop id="27" name="@GENERATOR:GENERATOR">
<value>C QUAL65</value>
<configuration>24</configuration>
</Prop>
<Prop id="28" name="@GENERATOR:USE_TYPES">
<value>char</value>
<value>float32</value>
<value>float64</value>
<value>int8</value>
<value>int16</value>
<value>int32</value>
<value>int64</value>
<value>uint8</value>
<value>uint16</value>
<value>uint32</value>
<value>uint64</value>
<value>size</value>
<configuration>24</configuration>
</Prop>
<Prop id="29" name="@GENERATOR:OPTLEVEL">
<value>0</value>
<configuration>24</configuration>
</Prop>
<Prop id="30" name="@GENERATOR:DEBUG">
<value>true</value>
<configuration>24</configuration>
</Prop>
<Prop id="31" name="@GENERATOR:PROBES">
<value>true</value>
<configuration>24</configuration>
</Prop>
<Prop id="32" name="@GENERATOR:SKIP_UNUSED">
<value>true</value>
<configuration>24</configuration>
</Prop>
<Prop id="33" name="@GENERATOR:TARGET_ADAPTOR">
<value>Simulator</value>
<configuration>24</configuration>
</Prop>
<Prop id="34" name="@GENERATOR:USER_CONFIG">
<value>$(TargetDir)\user_macros.h</value>
<configuration>24</configuration>
</Prop>
<Prop id="35" name="@SIMULATOR:CPU_TYPE">
<value>win64</value>
<configuration>24</configuration>
</Prop>
<Prop id="37" name="@REPORTER:SCRIPT">
<value>Reporter/ScadeReport.tcl</value>
<configuration>36</configuration>
</Prop>
<Prop id="38" name="@REPORTER:RotateLandscape">
<value>true</value>
<configuration>36</configuration>
</Prop>
<Prop id="39" name="@REPORTER:cstDisplayType">
<value>Flat</value>
<configuration>36</configuration>
</Prop>
<Prop id="40" name="@STUDIO:TOOLCONF">
<value>Reporter</value>
<value>36</value>
<value>41</value>
<value>46</value>
<value>71</value>
</Prop>
<Prop id="42" name="@REPORTER:FORMAT">
<value>rtf</value>
<configuration>41</configuration>
</Prop>
<Prop id="43" name="@REPORTER:SCRIPT">
<value>Reporter/ScadeReport.tcl</value>
<configuration>41</configuration>
</Prop>
<Prop id="44" name="@REPORTER:RotateLandscape">
<value>true</value>
<configuration>41</configuration>
</Prop>
<Prop id="45" name="@REPORTER:cstDisplayType">
<value>Flat</value>
<configuration>41</configuration>
</Prop>
<Prop id="47" name="@STUDIO:TOOLCONF">
<value>Instrumenter</value>
<value>46</value>
</Prop>
<Prop id="48" name="@GENERATOR:TARGET_DIR">
<value>$(Configuration)</value>
<configuration>46</configuration>
</Prop>
<Prop id="49" name="@VC6.0:ADD_COMP_OPTIONS">
<value>/nologo /ML /O2</value>
<configuration>46</configuration>
</Prop>
<Prop id="50" name="@GENERATOR:GENERATOR">
<value>C QUAL65</value>
<configuration>46</configuration>
</Prop>
<Prop id="51" name="@GENERATOR:USE_TYPES">
<value>char</value>
<value>float32</value>
<value>float64</value>
<value>int8</value>
<value>int16</value>
<value>int32</value>
<value>int64</value>
<value>uint8</value>
<value>uint16</value>
<value>uint32</value>
<value>uint64</value>
<value>size</value>
<configuration>46</configuration>
</Prop>
<Prop id="52" name="@GENERATOR:OPTLEVEL">
<value>1</value>
<configuration>46</configuration>
</Prop>
<Prop id="53" name="@GENERATOR:USER_CONFIG">
<value>$(TargetDir)\user_macros.h</value>
<configuration>46</configuration>
</Prop>
<Prop id="54" name="@GENERATOR:PROBES">
<value>true</value>
<configuration>46</configuration>
</Prop>
<Prop id="55" name="@SIMULATOR:ADD_COMP_OPTIONS">
<value></value>
<configuration>46</configuration>
</Prop>
<Prop id="56" name="@REPORTER:SCRIPT">
<value>Reporter/MtcReport.tcl</value>
<configuration>46</configuration>
</Prop>
<Prop id="57" name="@GENERATOR:TARGET_ADAPTOR">
<value>Simulator</value>
<configuration>46</configuration>
</Prop>
<Prop id="58" name="@SIMULATOR:CPU_TYPE">
<value>win64</value>
<configuration>46</configuration>
</Prop>
<Prop id="60" name="@GENERATOR:TARGET_DIR">
<value>$(Configuration)</value>
<configuration>59</configuration>
</Prop>
<Prop id="61" name="@VC6.0:ADD_COMP_OPTIONS">
<value>/nologo /ML /O2</value>
<configuration>59</configuration>
</Prop>
<Prop id="62" name="@GENERATOR:GENERATOR">
<value>C QUAL65</value>
<configuration>59</configuration>
</Prop>
<Prop id="63" name="@GENERATOR:USE_TYPES">
<value>char</value>
<value>float32</value>
<value>float64</value>
<value>int8</value>
<value>int16</value>
<value>int32</value>
<value>int64</value>
<value>uint8</value>
<value>uint16</value>
<value>uint32</value>
<value>uint64</value>
<value>size</value>
<configuration>59</configuration>
</Prop>
<Prop id="64" name="@GENERATOR:OPTLEVEL">
<value>1</value>
<configuration>59</configuration>
</Prop>
<Prop id="65" name="@GENERATOR:USER_CONFIG">
<value>$(TargetDir)\user_macros.h</value>
<configuration>59</configuration>
</Prop>
<Prop id="66" name="@GENERATOR:TARGET_ADAPTOR">
<value>T&amp;S Verifier</value>
<configuration>59</configuration>
</Prop>
<Prop id="67" name="@STUDIO:TOOLCONF">
<value>Timing and Stack Verifiers</value>
<value>59</value>
</Prop>
<Prop id="69" name="@DASHBOARD:SCRIPT">
<value>DashBoard/DashBoardReport.tcl</value>
<configuration>68</configuration>
</Prop>
<Prop id="70" name="@STUDIO:TOOLCONF">
<value>Dashboard</value>
<value>68</value>
</Prop>
<Prop id="72" name="@REPORTER:FORMAT">
<value>rtf</value>
<configuration>71</configuration>
</Prop>
<Prop id="73" name="@REPORTER:SCRIPT">
<value>Reporter/ScadeQualifiedReport.tcl</value>
<configuration>71</configuration>
</Prop>
<Prop id="74" name="@REPORTER:RotateLandscape">
<value>true</value>
<configuration>71</configuration>
</Prop>
<Prop id="75" name="@REPORTER:cstDisplayType">
<value>Flat</value>
<configuration>71</configuration>
</Prop>
<Prop id="76" name="@REPORTER:AllowRowToBreak">
<value>true</value>
<configuration>71</configuration>
</Prop>
<Prop id="77" name="@REPORTER:DisplayCalledAndCalling">
<value>true</value>
<configuration>71</configuration>
</Prop>
<Prop id="78" name="@REPORTER:DisplayKCGPragma">
<value>true</value>
<configuration>71</configuration>
</Prop>
<Prop id="80" name="@GENERATOR:TARGET_DIR">
<value>$(Configuration)</value>
<configuration>79</configuration>
</Prop>
<Prop id="81" name="@VC6.0:ADD_COMP_OPTIONS">
<value>/nologo /ML /O2</value>
<configuration>79</configuration>
</Prop>
<Prop id="82" name="@GENERATOR:GENERATOR">
<value>C QUAL65</value>
<configuration>79</configuration>
</Prop>
<Prop id="83" name="@GENERATOR:USE_TYPES">
<value>char</value>
<value>float32</value>
<value>float64</value>
<value>int8</value>
<value>int16</value>
<value>int32</value>
<value>int64</value>
<value>uint8</value>
<value>uint16</value>
<value>uint32</value>
<value>uint64</value>
<value>size</value>
<configuration>79</configuration>
</Prop>
<Prop id="84" name="@GENERATOR:OPTLEVEL">
<value>0</value>
<configuration>79</configuration>
</Prop>
<Prop id="85" name="@GENERATOR:DEBUG">
<value>true</value>
<configuration>79</configuration>
</Prop>
<Prop id="86" name="@GENERATOR:PROBES">
<value>true</value>
<configuration>79</configuration>
</Prop>
<Prop id="87" name="@GENERATOR:SKIP_UNUSED">
<value>true</value>
<configuration>79</configuration>
</Prop>
<Prop id="88" name="@GENERATOR:TARGET_ADAPTOR">
<value>Simulator</value>
<configuration>79</configuration>
</Prop>
<Prop id="89" name="@GENERATOR:USER_CONFIG">
<value>$(TargetDir)\user_macros.h</value>
<configuration>79</configuration>
</Prop>
<Prop id="90" name="@SIMULATOR:CPU_TYPE">
<value>win64</value>
<configuration>79</configuration>
</Prop>
<Prop id="91" name="@STUDIO:TOOLCONF">
<value>Synchronization</value>
<value>79</value>
</Prop>
<Prop id="95" name="@SCADE:NEWVARIABLESYMBOLS">
<value>true</value>
</Prop>
<Prop id="96" name="@STUDIO:TITLE">
<value>Model for RESSAC's µXAV's functions</value>
</Prop>
<Prop id="97" name="@STUDIO:SUBTITLE">
<value>sub-functions F_MM and F_CM</value>
</Prop>
<Prop id="98" name="@STUDIO:DESCRIPTION">
<value>Model of implementation of functions Mission Management and Communication Management of system Mission Management Systems's function F_PT (= Payload Transport)</value>
</Prop>
<Prop id="99" name="@STUDIO:AUTHORS">
<value>AP. Porte</value>
</Prop>
<Prop id="100" name="@STUDIO:COMPAGNY">
<value>Zodiac Aerotechnics</value>
</Prop>
<Prop id="101" name="@STUDIO:DATE">
<value>19 june 2017</value>
</Prop>
<Prop id="102" name="@STUDIO:INDEX">
<value>1.1_draft</value>
</Prop>
<Prop id="103" name="@STUDIO:REFERENCE">
<value>ressac_mms_f_mm</value>
</Prop>
<Prop id="104" name="@STUDIO:TOOLCONF">
<value>Timing and Stack Analysis Tools</value>
<value>14</value>
<value>24</value>
<value>36</value>
<value>41</value>
<value>46</value>
<value>59</value>
<value>68</value>
<value>71</value>
<value>79</value>
</Prop>
<Prop id="105" name="@STUDIO:TOOLCONF">
<value>DiffAnalyzer</value>
<value>14</value>
<value>24</value>
<value>36</value>
<value>41</value>
<value>46</value>
<value>59</value>
<value>68</value>
<value>71</value>
<value>79</value>
</Prop>
<Prop id="110" name="@STUDIO:TOOLCONF">
<value>Design Verifier</value>
<value>14</value>
<value>24</value>
<value>36</value>
<value>41</value>
<value>46</value>
<value>59</value>
<value>68</value>
<value>71</value>
<value>79</value>
</Prop>
<Prop id="114" name="@SCADE:CHECKED">
<value>false</value>
</Prop>
<Prop id="117" name="@SCADE:NOTEFILE">
<value>templateann.aty</value>
</Prop>
<Prop id="329" name="@STUDIO:TOOLCONF">
<value>Architect Checker</value>
<value>14</value>
<value>24</value>
<value>36</value>
<value>41</value>
<value>46</value>
<value>59</value>
<value>68</value>
<value>71</value>
<value>79</value>
</Prop>
<Prop id="330" name="@STUDIO:TOOLCONF">
<value>Architect Configurator</value>
<value>14</value>
<value>24</value>
<value>36</value>
<value>41</value>
<value>46</value>
<value>59</value>
<value>68</value>
<value>71</value>
<value>79</value>
</Prop>
<Prop id="369" name="@SCADE:ASSTRING_TRIM">
<value></value>
</Prop>
<Prop id="522" name="@SCADE:DEFAULTFILE">
<value>F_MM.xscade</value>
</Prop>
<Prop id="523" name="@SCADE:SEMFILE">
<value>F_MM.err</value>
</Prop>
</props>
<roots>
<Folder id="3" extensions="vsp;etp" name="SCADE Libraries"/>
<Folder id="12" extensions="xscade;scade" name="Model Files">
<elements>
<Folder id="13" extensions="xscade;scade" name="Separate Files">
<elements>
<FileRef id="415" persistAs="transform_index_structure.xscade">
<props>
<Prop id="414" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="417" persistAs="Square.xscade">
<props>
<Prop id="416" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="419" persistAs="SqrtR1.xscade">
<props>
<Prop id="418" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="421" persistAs="SqrtR32.xscade">
<props>
<Prop id="420" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="423" persistAs="compute_sum_inverse_val.xscade">
<props>
<Prop id="422" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="425" persistAs="PowerR.xscade">
<props>
<Prop id="424" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="427" persistAs="PowerRR.xscade">
<props>
<Prop id="426" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="429" persistAs="compute_inverse_exp.xscade">
<props>
<Prop id="428" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="431" persistAs="PowerRR32.xscade">
<props>
<Prop id="430" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="433" persistAs="TruthTableIdx.xscade">
<props>
<Prop id="432" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="435" persistAs="TruthTableLineIdx.xscade">
<props>
<Prop id="434" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="437" persistAs="TruthTableElt.xscade">
<props>
<Prop id="436" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="439" persistAs="RisingEdge.xscade">
<props>
<Prop id="438" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="441" persistAs="FallingEdge.xscade">
<props>
<Prop id="440" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="447" persistAs="map_compute_distances.xscade">
<props>
<Prop id="446" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="449" persistAs="map_combine_values.xscade">
<props>
<Prop id="448" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="451" persistAs="fold_compute_interpolation.xscade">
<props>
<Prop id="450" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="453" persistAs="determine_viability.xscade">
<props>
<Prop id="452" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="455" persistAs="determine_closest_neighbours.xscade">
<props>
<Prop id="454" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="457" persistAs="create_poles_combinations.xscade">
<props>
<Prop id="456" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="459" persistAs="create_combinations.xscade">
<props>
<Prop id="458" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="461" persistAs="compute_necessary_energy.xscade">
<props>
<Prop id="460" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="463" persistAs="compute_distances.xscade">
<props>
<Prop id="462" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="475" persistAs="manage_mission.xscade">
<props>
<Prop id="474" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="478" persistAs="combine_poles.xscade">
<props>
<Prop id="477" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="483" persistAs="set_up_mission.xscade">
<props>
<Prop id="482" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="468" persistAs="manage_payload_boarding.xscade">
<props>
<Prop id="467" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="488" persistAs="Operator4.xscade">
<props>
<Prop id="487" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="490" persistAs="Operator5.xscade">
<props>
<Prop id="489" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="496" persistAs="mapwi_index_array_true.xscade">
<props>
<Prop id="495" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="511" persistAs="compute_flight_viability.xscade">
<props>
<Prop id="510" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="513" persistAs="manage_flight.xscade">
<props>
<Prop id="512" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="516" persistAs="select_navigation_data.xscade">
<props>
<Prop id="515" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="526" persistAs="fold_closest_l_h.xscade">
<props>
<Prop id="525" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="527" persistAs="closest_lower_higher.xscade">
<props>
<Prop id="524" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="531" persistAs="division_by_zero_safe.xscade">
<props>
<Prop id="530" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="533" persistAs="verify_epsilon.xscade">
<props>
<Prop id="532" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
<FileRef id="536" persistAs="abs.xscade">
<props>
<Prop id="535" name="@SCADE:NONROOT">
<value>true</value>
</Prop>
</props>
</FileRef>
</elements>
</Folder>
<FileRef id="476" persistAs="f_mm.xscade"/>
<FileRef id="509" persistAs="flight_mm.xscade"/>
<FileRef id="514" persistAs="mgt_mm.xscade"/>
<FileRef id="517" persistAs="stp_mm.xscade"/>
<FileRef id="518" persistAs="types_mm.xscade"/>
<FileRef id="519" persistAs="utl_mm.xscade"/>
<FileRef id="520" persistAs="conf_mm.xscade"/>
<FileRef id="521" persistAs="viab_mm.xscade"/>
</elements>
</Folder>
<Folder id="174" name="Include Files">
<elements>
<FileRef id="269" persistAs="import\macro_libmathext64.h">
<props>
<Prop id="272" name="@SIMULATOR:FILEKIND">
<value>Macro</value>
</Prop>
</props>
</FileRef>
<FileRef id="270" persistAs="import\macro_libmathext32.h">
<props>
<Prop id="271" name="@SIMULATOR:FILEKIND">
<value>Macro</value>
</Prop>
</props>
</FileRef>
</elements>
</Folder>
<FileRef id="479" persistAs="designXAV.tot"/>
</roots>
<configurations>
<Configuration id="14" name="KCG"/>
<Configuration id="24" name="Simulation"/>
<Configuration id="36" name="HTML"/>
<Configuration id="41" name="RTF"/>
<Configuration id="46" name="Coverage"/>
<Configuration id="59" name="Timing and Stack"/>
<Configuration id="68" name="DashBoard"/>
<Configuration id="71" name="Cert. Reporter"/>
<Configuration id="79" name="Synchronization"/>
</configurations>
</Project>

View File

@@ -1,351 +0,0 @@
<HTML>
<HEAD>
<TITLE>F_MM</TITLE>
<STYLE type="text/css">
.Normal {
font-family: Verdana;
font-size: 11pt;}
.BodyText {
font-family: Verdana;
font-size: 11pt;}
.Title {
text-align: center;
font-family: Verdana;
font-size: 20pt;
font-weight: bold;
padding-bottom: 16pt;}
.Subtitle {
text-align: center;
font-family: Verdana;
font-size: 16pt;
font-style: italic;
padding-bottom: 16pt;}
.DocumentInfo {
text-align: center;
font-family: Verdana;
font-size: 11pt;
padding-top: 12pt;
padding-bottom: 12pt;}
.ListNumber2 {
font-family: Verdana;
font-size: 11pt;}
.Heading1 {
margin-top: 12pt;
border-top-style: dotted;page-break-before: always;
font-family: Verdana;
font-size: 16pt;
font-weight: bold;
padding-top: 12pt;
padding-bottom: 12pt;}
.Heading2 {
font-family: Verdana;
font-size: 14pt;
padding-top: 6pt;
padding-bottom: 6pt;}
.Heading3 {
font-family: Verdana;
font-size: 12pt;
padding-top: 6pt;
padding-bottom: 6pt;}
.Heading4 {
font-family: Verdana;
font-size: 11pt;
padding-top: 6pt;
padding-bottom: 6pt;}
.TableCell {
text-align: left;
vertical-align:middle;
font-family: Verdana;
font-size: 9pt;
padding-left: 0.1cm;
padding-right: 0.1cm;}
.TableHeadingCell {
text-align: center;
vertical-align:middle;
color: rgb(255,255,255);
background-color: rgb(0,0,128);
font-family: Verdana;
font-size: 9pt;
font-weight: bold;
padding-left: 0.1cm;}
.TOC1 {
font-family: Verdana;
font-size: 12pt;
font-weight: bold;
padding-top: 12pt;}
.TOC2 {
font-family: Verdana;
font-size: 12pt;
padding-left: 0.35cm;
padding-top: 12pt;}
.TOC3 {
font-family: Verdana;
font-size: 11pt;
font-style: italic;
padding-left: 0.7cm;
padding-top: 6pt;}
.TOC4 {
font-family: Verdana;
font-size: 9pt;
padding-left: 1cm;}
.Header {
text-align: right;
font-family: Tahoma;
font-size: 9pt;
font-weight: bold;
padding-bottom: 12pt;}
.Footer {
font-family: Tahoma;
font-size: 9pt;
font-weight: bold;}
.Caption {
text-align: center;
font-family: Verdana;
font-size: 8pt;
font-weight: bold;
padding-top: 6pt;
padding-bottom: 12pt;}
.TableCaption {
text-align: left;
font-family: Verdana;
font-size: 8pt;
font-weight: bold;
padding-bottom: 6pt;}
.ListOfFigures {
font-family: Verdana;
font-size: 11pt;
font-weight: bold;}
.Hyperlink {
color: rgb(0,0,255);
font-family: Verdana;
font-size: 11pt;
text-decoration: underline;}
.DocumentClass {
text-align: center;
font-family: Verdana;
font-size: 11pt;}
.TableCellAnnot {
text-align: left;
vertical-align:middle;
font-family: Verdana;
font-size: 9pt;
padding-left: 0.1cm;
padding-right: 0.1cm;}
.TableHeadingCellAnnot {
text-align: left;
vertical-align:middle;
color: rgb(255,255,255);
background-color: rgb(0,0,128);
font-family: Verdana;
font-size: 9pt;
font-weight: bold;
padding-left: 0.1cm;}
.TextualCode {
font-family: Courier;
font-size: 9pt;
margin-bottom: 12pt;
border-style: solid;
border-width: 1pt;
padding-left: 3pt;
padding-top: 3pt;
padding-bottom: 3pt;
padding-right: 3pt;
min-width: 160mm;
width: 80%;
white-space: nowrap;}
.EndOfDocument {
text-align: center;
color: rgb(192,192,192);
font-family: Verdana;
font-size: 7pt;}
.ListTitle {
font-family: Verdana;
font-size: 8pt;
font-weight: bold;}
.ListOfTables {
font-family: Verdana;
font-size: 11pt;
font-weight: bold;}
.Heading5 {
font-family: Verdana;
font-size: 10pt;
padding-top: 6pt;
padding-bottom: 6pt;}
.Heading6 {
font-family: Verdana;
font-size: 10pt;
padding-top: 6pt;
padding-bottom: 6pt;}
.Heading7 {
font-family: Verdana;
font-size: 10pt;
padding-top: 6pt;
padding-bottom: 6pt;}
.TOC5 {
font-family: Verdana;
font-size: 9pt;
padding-left: 1.3cm;}
.TOC6 {
font-family: Verdana;
font-size: 9pt;
padding-left: 1.6cm;}
.TOC7 {
font-family: Verdana;
font-size: 9pt;
padding-left: 2cm;}
table{
border:1px solid rgb(0, 0, 0);
border-spacing: 0px;
border-collapse: collapse;
}
td{
border:1px solid rgb(0, 0, 0);
border-collapse: collapse;
min-height: 0.5cm;
height: 0.5cm;
}
th{
border:1px solid rgb(0, 0, 0);
border-collapse: collapse;
min-height: 0.5cm;
height: 0.5cm;
}
</STYLE>
</HEAD>
<BODY>
<DIV class="Header">Monday October 16 2017 15:17:13</DIV><DIV class="Title">Result of check for model F_MM</DIV>
<HR style="width: 14cm; text-align: center;">
<DIV class="DocumentInfo">
<SPAN class="DocumentInfo" style="color: rgb(255,0,0);">8 error(s) detected</SPAN> - <SPAN class="DocumentInfo" style="color: rgb(255,128,0);">12 warning(s) detected</SPAN></DIV>
<DIV class="BodyText" style="padding-bottom: 12pt;"><table style="width: 100%;" ><TBODY>
<TR><TH class="TableHeadingCell">Category</TH>
<TH class="TableHeadingCell">Code</TH>
<TH class="TableHeadingCell">Message</TH>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Error</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,0,0);">ERR_516</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Undefined variable</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/LL_missionCancelled/">f_mm::manage_mission/LL_missionCancelled/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The local variable LL_missionCancelled has no definition</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/go/">f_mm::manage_mission/go/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The input variable go is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/mission_abort/">f_mm::manage_mission/mission_abort/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The input variable mission_abort is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/pushbutton_on/">f_mm::manage_mission/pushbutton_on/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The input variable pushbutton_on is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/estimated_total_mass/">f_mm::manage_mission/estimated_total_mass/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The input variable estimated_total_mass is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/current_range/">f_mm::manage_mission/current_range/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The input variable current_range is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/current_speed/">f_mm::manage_mission/current_speed/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The input variable current_speed is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/current_altitude/">f_mm::manage_mission/current_altitude/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The input variable current_altitude is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/flight_mode/">f_mm::manage_mission/flight_mode/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The input variable flight_mode is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Error</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,0,0);">ERR_516</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Undefined variable</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/mission_complete/">f_mm::manage_mission/mission_complete/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The output variable mission_complete has no definition</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Error</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,0,0);">ERR_516</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Undefined variable</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/mission_aborted/">f_mm::manage_mission/mission_aborted/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The output variable mission_aborted has no definition</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Error</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,0,0);">ERR_516</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Undefined variable</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/emergency_landing/">f_mm::manage_mission/emergency_landing/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The output variable emergency_landing has no definition</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Error</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,0,0);">ERR_516</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Undefined variable</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/start_landing/">f_mm::manage_mission/start_landing/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The output variable start_landing has no definition</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Error</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,0,0);">ERR_516</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Undefined variable</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#f_mm::manage_mission/operating_point/">f_mm::manage_mission/operating_point/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The output variable operating_point has no definition</DIV>
</TD>
</TR><TR><TD class="TableCell">Completion Error</TD>
<TD class="TableCell" style=""><SPAN class="TableCell" style="color: rgb(255,0,0);">SE_EXILPA</SPAN></TD>
<TD class="TableCell" style=""><B>Illegal Empty Parameter</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#flight_mm::manage_flight/_L1=">_L1, _L2 = (viab_mm::na&lt;&lt;_null, _null, _null, _null&gt;&gt;)(_null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null)</A></TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#flight_mm::compute_flight_viability/LL_viability_array/">flight_mm::compute_flight_viability/LL_viability_array/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The local variable LL_viability_array is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#flight_mm::compute_flight_viability/nav_parameters/">flight_mm::compute_flight_viability/nav_parameters/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The input variable nav_parameters is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#flight_mm::compute_flight_viability/payload_mass/">flight_mm::compute_flight_viability/payload_mass/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The input variable payload_mass is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Post-namespace Warning</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,128,0);">WAR_508</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Unused flow</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#flight_mm::compute_flight_viability/energy_level/">flight_mm::compute_flight_viability/energy_level/</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
The input variable energy_level is never used</DIV>
</TD>
</TR><TR><TD class="TableCell" style="" rowspan="2">Type Error</TD>
<TD class="TableCell" style="" rowspan="2"><SPAN class="TableCell" style="color: rgb(255,0,0);">ERR_100</SPAN></TD>
<TD class="TableCell" style="border-bottom: 0px hidden;"><B>Type mismatch</B><B> at </B><A class="Hyperlink" style="text-align: left; vertical-align:middle; font-size: 9pt; font-weight: bold; padding-left: 0.1cm; padding-right: 0.1cm;" HREF="studio:SC:LOCATE_PATH#F_MM.etp#flight_mm::compute_flight_viability/navigation_mode:then:LL_viability_array=">flight_mm::compute_flight_viability/navigation_mode:then:LL_viability_array=</A></TD>
</TR><TR><TD class="TableCell" style="border-top: 0px hidden;"><DIV class="TableCell" style="padding-left: 0.5cm;">
This expression has type {altitudes:float32^4, distances:float32^4,<BR>
masses:float32^4, speeds:float32^4, energies:float32^4^4^4^4}<BR>
but should have type bool<BR>
(output flow mismatch)</DIV>
</TD>
</TR></TBODY></TABLE></DIV>
<HR style="width: 14cm; text-align: center;">
<DIV class="EndOfDocument">End of document.</DIV>
</BODY>
</HTML>

View File

@@ -1,341 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="node" name="FallingEdge">
<inputs>
<Variable name="FE_Input">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29e4/6F08/E3C/59477512719f"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="FE_Output">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29e3/6F08/E3C/594775121ed0"/>
</pragmas>
</Variable>
</outputs>
<locals>
<Variable name="_L1">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29de/6F08/E3C/5947751256c9"/>
</pragmas>
</Variable>
<Variable name="_L3">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29df/6F08/E3C/594775126ea2"/>
</pragmas>
</Variable>
<Variable name="_L4">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29e0/6F08/E3C/5947751292c"/>
</pragmas>
</Variable>
<Variable name="_L5">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29e1/6F08/E3C/59477512417b"/>
</pragmas>
</Variable>
<Variable name="_L6">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29e2/6F08/E3C/594775123633"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L1 = FE_Input; -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="FE_Input"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/29d7/6F08/E3C/594775123f0a"/>
</pragmas>
</Equation>
<!-- FE_Output = _L6; -->
<Equation>
<lefts>
<VariableRef name="FE_Output"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L6"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/29d8/6F08/E3C/5947751264d1"/>
</pragmas>
</Equation>
<!-- _L3 = _L4 and _L5; -->
<Equation>
<lefts>
<VariableRef name="_L3"/>
</lefts>
<right>
<!-- _L4 and _L5 -->
<NAryOp name="1" operator="and">
<operands>
<IdExpression>
<path>
<ConstVarRef name="_L4"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L5"/>
</path>
</IdExpression>
</operands>
</NAryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/29d9/6F08/E3C/594775122d7d"/>
</pragmas>
</Equation>
<!-- _L4 = fby(_L1; 1; false); -->
<Equation>
<lefts>
<VariableRef name="_L4"/>
</lefts>
<right>
<!-- fby(_L1; 1; false) -->
<FbyOp name="1">
<flows>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</flows>
<delay>
<ConstValue value="1"/>
</delay>
<values>
<ConstValue value="false"/>
</values>
</FbyOp>
</right>
<pragmas>
<ed:Equation oid="!ed/29da/6F08/E3C/5947751244e5"/>
</pragmas>
</Equation>
<!-- _L5 = not _L1; -->
<Equation>
<lefts>
<VariableRef name="_L5"/>
</lefts>
<right>
<!-- not _L1 -->
<UnaryOp name="1" operator="not">
<operand>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</operand>
</UnaryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/29db/6F08/E3C/59477512c17"/>
</pragmas>
</Equation>
<!-- _L6 = (false) -> (_L3); -->
<Equation>
<lefts>
<VariableRef name="_L6"/>
</lefts>
<right>
<!-- (false) -> (_L3) -->
<InitOp name="1">
<value>
<ListExpression>
<items>
<ConstValue value="false"/>
</items>
</ListExpression>
</value>
<flow>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L3"/>
</path>
</IdExpression>
</items>
</ListExpression>
</flow>
</InitOp>
</right>
<pragmas>
<ed:Equation oid="!ed/29dc/6F08/E3C/594775122933"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/29d6/6F08/E3C/594775124763" symbolFile="FallingEdge" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<comment>Detects a falling edge (true to false transition).</comment>
<comment>The output is true during the transition clock cycle. The output is initialized to false. </comment>
<diagrams>
<NetDiagram name="diagram_FallingEdge" landscape="false" format="A4 (210 297)" oid="!ed/29dd/6F08/E3C/5947751268f9">
<presentationElements>
<EquationGE presentable="!ed/29d7/6F08/E3C/594775123f0a">
<position>
<Point x="1891" y="2196"/>
</position>
<size>
<Size width="251" height="503"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/29d8/6F08/E3C/5947751264d1">
<position>
<Point x="14182" y="3874"/>
</position>
<size>
<Size width="326" height="503"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/29d9/6F08/E3C/594775122d7d">
<position>
<Point x="8935" y="3776"/>
</position>
<size>
<Size width="1021" height="677"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/29da/6F08/E3C/5947751244e5" dstEquation="!ed/29d9/6F08/E3C/594775122d7d">
<positions>
<Point x="6011" y="2455"/>
<Point x="7726" y="2455"/>
<Point x="7726" y="4001"/>
<Point x="8932" y="4001"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/29db/6F08/E3C/59477512c17" dstEquation="!ed/29d9/6F08/E3C/594775122d7d">
<positions>
<Point x="6244" y="4233"/>
<Point x="7853" y="4233"/>
<Point x="7853" y="4233"/>
<Point x="8932" y="4233"/>
</positions>
</Edge>
<EquationGE presentable="!ed/29da/6F08/E3C/5947751244e5">
<position>
<Point x="4995" y="1947"/>
</position>
<size>
<Size width="1016" height="1016"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/29d7/6F08/E3C/594775123f0a" dstEquation="!ed/29da/6F08/E3C/5947751244e5">
<positions>
<Point x="2138" y="2455"/>
<Point x="2942" y="2455"/>
<Point x="2942" y="2455"/>
<Point x="4995" y="2455"/>
</positions>
</Edge>
<EquationGE presentable="!ed/29db/6F08/E3C/59477512c17">
<position>
<Point x="5228" y="3895"/>
</position>
<size>
<Size width="1016" height="660"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/29d7/6F08/E3C/594775123f0a" dstEquation="!ed/29db/6F08/E3C/59477512c17">
<positions>
<Point x="2138" y="2455"/>
<Point x="3450" y="2455"/>
<Point x="3450" y="4233"/>
<Point x="5228" y="4233"/>
</positions>
</Edge>
<EquationGE presentable="!ed/29dc/6F08/E3C/594775122933">
<position>
<Point x="11705" y="3598"/>
</position>
<size>
<Size width="1016" height="1016"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/29d9/6F08/E3C/594775122d7d" dstEquation="!ed/29dc/6F08/E3C/594775122933">
<positions>
<Point x="9948" y="4106"/>
<Point x="10816" y="4106"/>
<Point x="10816" y="4106"/>
<Point x="11705" y="4106"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/29dc/6F08/E3C/594775122933" dstEquation="!ed/29d8/6F08/E3C/5947751264d1">
<positions>
<Point x="12721" y="4106"/>
<Point x="13462" y="4106"/>
<Point x="13462" y="4106"/>
<Point x="14224" y="4106"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
</pragmas>
</Operator>

View File

@@ -1,55 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" external="imported" name="PowerR">
<inputs>
<Variable name="P_Input">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1117/745C/15C0/58f859ff5712"/>
</pragmas>
</Variable>
<Variable name="Power">
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1118/745C/15C0/58f859ff3116"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="P_Output">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1116/745C/15C0/58f859ff3bab"/>
</pragmas>
</Variable>
</outputs>
<numericTypes>
<FloatType>
<typeVar>
<TypeRef name="'T"/>
</typeVar>
</FloatType>
</numericTypes>
<pragmas>
<ed:Operator oid="!ed/1115/745C/15C0/58f859ff4cd5" symbolFile="PowerR.ssl" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<comment>P_Ouput equals P_Input powered to Power</comment>
</ed:Operator>
</pragmas>
</Operator>

View File

@@ -1,56 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" external="imported" name="PowerRR">
<inputs>
<Variable name="P_Input">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1135/745C/15C0/58f85a243eeb"/>
</pragmas>
</Variable>
<Variable name="Power">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1136/745C/15C0/58f85a243763"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="P_Output">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1134/745C/15C0/58f85a2463dd"/>
</pragmas>
</Variable>
</outputs>
<numericTypes>
<FloatType>
<typeVar>
<TypeRef name="'T"/>
</typeVar>
</FloatType>
</numericTypes>
<pragmas>
<ed:Operator oid="!ed/1133/745C/15C0/58f85a245720" symbolFile="PowerRR.ssl" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<comment>P_Ouput equals P_Input powered to Power, Power being a 'T.</comment>
<comment>It is assumed that: &quot;P_Input &gt; 0&quot; or &quot;(P_Input == 0 &amp;&amp; Power &gt; 0)&quot;</comment>
</ed:Operator>
</pragmas>
</Operator>

View File

@@ -1,52 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" external="imported" name="PowerRR32">
<inputs>
<Variable name="i">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/125a/745C/15C0/58f85d881de5"/>
</pragmas>
</Variable>
<Variable name="p">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/125b/745C/15C0/58f85d884278"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="o">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1259/745C/15C0/58f85d883792"/>
</pragmas>
</Variable>
</outputs>
<specializedOperator>
<OperatorRef name="PowerRR"/>
</specializedOperator>
<pragmas>
<ed:Operator oid="!ed/1258/745C/15C0/58f85d883b0d"/>
<kcg:Pragma>
C:name PowerRR32_mathext_mathextimpl
</kcg:Pragma>
</pragmas>
</Operator>

View File

@@ -1,341 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="node" name="RisingEdge">
<inputs>
<Variable name="RE_Input">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/298b/6F08/E3C/594774562cae"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="RE_Output">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/298a/6F08/E3C/594774567ee5"/>
</pragmas>
</Variable>
</outputs>
<locals>
<Variable name="_L1">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2985/6F08/E3C/594774565656"/>
</pragmas>
</Variable>
<Variable name="_L6">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2986/6F08/E3C/594774562eaf"/>
</pragmas>
</Variable>
<Variable name="_L3">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2987/6F08/E3C/5947745613c8"/>
</pragmas>
</Variable>
<Variable name="_L8">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2988/6F08/E3C/594774562cc0"/>
</pragmas>
</Variable>
<Variable name="_L9">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2989/6F08/E3C/594774561103"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L1 = RE_Input; -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="RE_Input"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/297e/6F08/E3C/594774567ed2"/>
</pragmas>
</Equation>
<!-- RE_Output = _L9; -->
<Equation>
<lefts>
<VariableRef name="RE_Output"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L9"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/297f/6F08/E3C/5947745653eb"/>
</pragmas>
</Equation>
<!-- _L3 = fby(_L1; 1; false); -->
<Equation>
<lefts>
<VariableRef name="_L3"/>
</lefts>
<right>
<!-- fby(_L1; 1; false) -->
<FbyOp name="1">
<flows>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</flows>
<delay>
<ConstValue value="1"/>
</delay>
<values>
<ConstValue value="false"/>
</values>
</FbyOp>
</right>
<pragmas>
<ed:Equation oid="!ed/2980/6F08/E3C/594774564430"/>
</pragmas>
</Equation>
<!-- _L6 = _L8 and _L1; -->
<Equation>
<lefts>
<VariableRef name="_L6"/>
</lefts>
<right>
<!-- _L8 and _L1 -->
<NAryOp name="1" operator="and">
<operands>
<IdExpression>
<path>
<ConstVarRef name="_L8"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</operands>
</NAryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/2981/6F08/E3C/594774566a1"/>
</pragmas>
</Equation>
<!-- _L8 = not _L3; -->
<Equation>
<lefts>
<VariableRef name="_L8"/>
</lefts>
<right>
<!-- not _L3 -->
<UnaryOp name="1" operator="not">
<operand>
<IdExpression>
<path>
<ConstVarRef name="_L3"/>
</path>
</IdExpression>
</operand>
</UnaryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/2982/6F08/E3C/594774561fbd"/>
</pragmas>
</Equation>
<!-- _L9 = (false) -> (_L6); -->
<Equation>
<lefts>
<VariableRef name="_L9"/>
</lefts>
<right>
<!-- (false) -> (_L6) -->
<InitOp name="1">
<value>
<ListExpression>
<items>
<ConstValue value="false"/>
</items>
</ListExpression>
</value>
<flow>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L6"/>
</path>
</IdExpression>
</items>
</ListExpression>
</flow>
</InitOp>
</right>
<pragmas>
<ed:Equation oid="!ed/2983/6F08/E3C/594774562491"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/297d/6F08/E3C/594774561a9e" symbolFile="RisingEdge" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<comment>Detects a rising edge (false to true transition).</comment>
<comment>The output is true during the transition clock cycle. The output is initialized to false.</comment>
<diagrams>
<NetDiagram name="diagram_RisingEdge" landscape="false" format="A4 (210 297)" oid="!ed/2984/6F08/E3C/59477456114f">
<presentationElements>
<EquationGE presentable="!ed/297e/6F08/E3C/594774567ed2">
<position>
<Point x="1969" y="3133"/>
</position>
<size>
<Size width="251" height="502"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/297f/6F08/E3C/5947745653eb">
<position>
<Point x="14288" y="4360"/>
</position>
<size>
<Size width="317" height="503"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/2980/6F08/E3C/594774564430">
<position>
<Point x="4699" y="2879"/>
</position>
<size>
<Size width="1021" height="1021"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/297e/6F08/E3C/594774567ed2" dstEquation="!ed/2980/6F08/E3C/594774564430">
<positions>
<Point x="2223" y="3387"/>
<Point x="3471" y="3387"/>
<Point x="3471" y="3387"/>
<Point x="4699" y="3387"/>
</positions>
</Edge>
<EquationGE presentable="!ed/2981/6F08/E3C/594774566a1">
<position>
<Point x="9144" y="4276"/>
</position>
<size>
<Size width="1021" height="677"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/2982/6F08/E3C/594774561fbd" dstEquation="!ed/2981/6F08/E3C/594774566a1">
<positions>
<Point x="8022" y="3408"/>
<Point x="8573" y="3408"/>
<Point x="8573" y="4509"/>
<Point x="9144" y="4509"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/297e/6F08/E3C/594774567ed2" dstEquation="!ed/2981/6F08/E3C/594774566a1">
<positions>
<Point x="2223" y="3387"/>
<Point x="3704" y="3387"/>
<Point x="3704" y="4720"/>
<Point x="9144" y="4720"/>
</positions>
</Edge>
<EquationGE presentable="!ed/2982/6F08/E3C/594774561fbd">
<position>
<Point x="7010" y="3073"/>
</position>
<size>
<Size width="1016" height="660"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/2980/6F08/E3C/594774564430" dstEquation="!ed/2982/6F08/E3C/594774561fbd">
<positions>
<Point x="5715" y="3387"/>
<Point x="6350" y="3387"/>
<Point x="6350" y="3387"/>
<Point x="7006" y="3387"/>
</positions>
</Edge>
<EquationGE presentable="!ed/2983/6F08/E3C/594774562491">
<position>
<Point x="11303" y="4106"/>
</position>
<size>
<Size width="1016" height="1016"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/2981/6F08/E3C/594774566a1" dstEquation="!ed/2983/6F08/E3C/594774562491">
<positions>
<Point x="10160" y="4614"/>
<Point x="10732" y="4614"/>
<Point x="10732" y="4614"/>
<Point x="11303" y="4614"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/2983/6F08/E3C/594774562491" dstEquation="!ed/297f/6F08/E3C/5947745653eb">
<positions>
<Point x="12319" y="4614"/>
<Point x="13314" y="4614"/>
<Point x="13314" y="4614"/>
<Point x="14330" y="4614"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
</pragmas>
</Operator>

View File

@@ -1,43 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" external="imported" name="SqrtR">
<inputs>
<Variable name="Input1">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/19ed/654E/1838/58f70bd055d6"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="Output1">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/19ec/654E/1838/58f70bd05d89"/>
</pragmas>
</Variable>
</outputs>
<numericTypes>
<FloatType>
<typeVar>
<TypeRef name="'T"/>
</typeVar>
</FloatType>
</numericTypes>
<pragmas>
<ed:Operator oid="!ed/19eb/654E/1838/58f70bd04cce" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<comment>sqrt(Input1)</comment>
</ed:Operator>
</pragmas>
</Operator>

View File

@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" external="imported" name="SqrtR32">
<inputs>
<Variable name="i">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/4fd4/654E/1838/58f70e5d4acd"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="o">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/4fd3/654E/1838/58f70e5d1296"/>
</pragmas>
</Variable>
</outputs>
<specializedOperator>
<OperatorRef name="SqrtR"/>
</specializedOperator>
<pragmas>
<ed:Operator oid="!ed/4fd2/654E/1838/58f70e5d6f68"/>
<kcg:Pragma>
C:name SqrtR32_mathext_mathextimpl
</kcg:Pragma>
</pragmas>
</Operator>

View File

@@ -1,183 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" name="Square">
<inputs>
<Variable name="Square_In">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1a08/654E/1838/58f70bd177ff"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="Square_Out">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1a07/654E/1838/58f70bd1769c"/>
</pragmas>
</Variable>
</outputs>
<numericTypes>
<NumericType>
<typeVar>
<TypeRef name="'T"/>
</typeVar>
</NumericType>
</numericTypes>
<locals>
<Variable name="_L1">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1a05/654E/1838/58f70bd15577"/>
</pragmas>
</Variable>
<Variable name="_L2">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1a06/654E/1838/58f70bd152f0"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L1 = Square_In; -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="Square_In"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1a01/654E/1838/58f70bd1ebd"/>
</pragmas>
</Equation>
<!-- _L2 = _L1 * _L1; -->
<Equation>
<lefts>
<VariableRef name="_L2"/>
</lefts>
<right>
<!-- _L1 * _L1 -->
<NAryOp name="1" operator="*">
<operands>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</operands>
</NAryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/1a02/654E/1838/58f70bd13031"/>
</pragmas>
</Equation>
<!-- Square_Out = _L2; -->
<Equation>
<lefts>
<VariableRef name="Square_Out"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L2"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1a03/654E/1838/58f70bd1455a"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/1a00/654E/1838/58f70bd164ca" symbolFile="Square.ssl" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<comment>SR_Output = (SR_Input)^2</comment>
<diagrams>
<NetDiagram name="diagram_Square" landscape="false" format="A4 (210 297)" oid="!ed/1a04/654E/1838/58f70bd15307">
<presentationElements>
<EquationGE presentable="!ed/1a01/654E/1838/58f70bd1ebd">
<position>
<Point x="1653" y="661"/>
</position>
<size>
<Size width="251" height="503"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1a02/654E/1838/58f70bd13031">
<position>
<Point x="4172" y="574"/>
</position>
<size>
<Size width="1022" height="678"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1a01/654E/1838/58f70bd1ebd" dstEquation="!ed/1a02/654E/1838/58f70bd13031">
<positions>
<Point x="1905" y="910"/>
<Point x="3598" y="910"/>
<Point x="3598" y="804"/>
<Point x="4170" y="804"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/1a01/654E/1838/58f70bd1ebd" dstEquation="!ed/1a02/654E/1838/58f70bd13031">
<positions>
<Point x="1905" y="910"/>
<Point x="3598" y="910"/>
<Point x="3598" y="1016"/>
<Point x="4170" y="1016"/>
</positions>
</Edge>
<EquationGE presentable="!ed/1a03/654E/1838/58f70bd1455a">
<position>
<Point x="6552" y="661"/>
</position>
<size>
<Size width="326" height="503"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1a02/654E/1838/58f70bd13031" dstEquation="!ed/1a03/654E/1838/58f70bd1455a">
<positions>
<Point x="5186" y="910"/>
<Point x="5503" y="910"/>
<Point x="5503" y="910"/>
<Point x="6604" y="910"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
</pragmas>
</Operator>

View File

@@ -1,454 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" name="TruthTableElt">
<inputs>
<Variable name="AccIn">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2a2f/5C75/1654/58f8aef633e5"/>
</pragmas>
</Variable>
<Variable name="Cond">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2a30/5C75/1654/58f8aef63e27"/>
</pragmas>
</Variable>
<Variable name="TTelt">
<type>
<NamedType>
<type>
<TypeRef name="truthTablesValues_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2a31/5C75/1654/58f8aef63e5f"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="AccOut">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2a2e/5C75/1654/58f8aef625e7"/>
</pragmas>
</Variable>
</outputs>
<locals>
<Variable name="_L1">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2a27/5C75/1654/58f8aef63ee0"/>
</pragmas>
</Variable>
<Variable name="_L2">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2a28/5C75/1654/58f8aef646e5"/>
</pragmas>
</Variable>
<Variable name="_L13">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2a29/5C75/1654/58f8aef6189a"/>
</pragmas>
</Variable>
<Variable name="_L15">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2a2a/5C75/1654/58f8aef62d1c"/>
</pragmas>
</Variable>
<Variable name="_L14">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2a2b/5C75/1654/58f8aef63de3"/>
</pragmas>
</Variable>
<Variable name="_L16">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2a2c/5C75/1654/58f8aef61f18"/>
</pragmas>
</Variable>
<Variable name="_L17">
<type>
<NamedType>
<type>
<TypeRef name="truthTablesValues_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2a2d/5C75/1654/58f8aef658b"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L1 = _L2 and _L13; -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<!-- _L2 and _L13 -->
<NAryOp name="1" operator="and">
<operands>
<IdExpression>
<path>
<ConstVarRef name="_L2"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L13"/>
</path>
</IdExpression>
</operands>
</NAryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/2a1e/5C75/1654/58f8aef6512a"/>
</pragmas>
</Equation>
<!-- _L2 = AccIn; -->
<Equation>
<lefts>
<VariableRef name="_L2"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="AccIn"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/2a1f/5C75/1654/58f8aef6699e"/>
</pragmas>
</Equation>
<!-- AccOut = _L1; -->
<Equation>
<lefts>
<VariableRef name="AccOut"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/2a20/5C75/1654/58f8aef6257e"/>
</pragmas>
</Equation>
<!-- _L13 = ( case _L17 of | T : _L14 | F : _L15 | _ : _L16); -->
<Equation>
<lefts>
<VariableRef name="_L13"/>
</lefts>
<right>
<!-- ( case _L17 of | T : _L14 | F : _L15 | _ : _L16) -->
<CaseOp name="1">
<switch>
<IdExpression>
<path>
<ConstVarRef name="_L17"/>
</path>
</IdExpression>
</switch>
<cases>
<Case pattern="T">
<flow>
<IdExpression>
<path>
<ConstVarRef name="_L14"/>
</path>
</IdExpression>
</flow>
</Case>
<Case pattern="F">
<flow>
<IdExpression>
<path>
<ConstVarRef name="_L15"/>
</path>
</IdExpression>
</flow>
</Case>
<Case>
<flow>
<IdExpression>
<path>
<ConstVarRef name="_L16"/>
</path>
</IdExpression>
</flow>
</Case>
</cases>
</CaseOp>
</right>
<pragmas>
<ed:Equation oid="!ed/2a21/5C75/1654/58f8aef661d8"/>
</pragmas>
</Equation>
<!-- _L14 = Cond; -->
<Equation>
<lefts>
<VariableRef name="_L14"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="Cond"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/2a22/5C75/1654/58f8aef61dc7"/>
</pragmas>
</Equation>
<!-- _L15 = not _L14; -->
<Equation>
<lefts>
<VariableRef name="_L15"/>
</lefts>
<right>
<!-- not _L14 -->
<UnaryOp name="1" operator="not">
<operand>
<IdExpression>
<path>
<ConstVarRef name="_L14"/>
</path>
</IdExpression>
</operand>
</UnaryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/2a23/5C75/1654/58f8aef61431"/>
</pragmas>
</Equation>
<!-- _L16 = true; -->
<Equation>
<lefts>
<VariableRef name="_L16"/>
</lefts>
<right>
<ConstValue value="true"/>
</right>
<pragmas>
<ed:Equation oid="!ed/2a24/5C75/1654/58f8aef67abd"/>
</pragmas>
</Equation>
<!-- _L17 = TTelt; -->
<Equation>
<lefts>
<VariableRef name="_L17"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="TTelt"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/2a25/5C75/1654/58f8aef6506d"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/2a1d/5C75/1654/58f8aef622e" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<comment>Private; used from TruthTable and TruthTableIdx.</comment>
<diagrams>
<NetDiagram name="diagram_TruthTableElt" landscape="true" format="A4 (210 297)" oid="!ed/2a26/5C75/1654/58f8aef63f56">
<presentationElements>
<EquationGE presentable="!ed/2a1e/5C75/1654/58f8aef6512a">
<position>
<Point x="8829" y="971"/>
</position>
<size>
<Size width="1048" height="677"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/2a1f/5C75/1654/58f8aef6699e">
<position>
<Point x="1706" y="953"/>
</position>
<size>
<Size width="251" height="502"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/2a1f/5C75/1654/58f8aef6699e" dstEquation="!ed/2a1e/5C75/1654/58f8aef6512a">
<positions>
<Point x="1947" y="1207"/>
<Point x="6964" y="1207"/>
<Point x="6964" y="1207"/>
<Point x="8827" y="1207"/>
</positions>
</Edge>
<EquationGE presentable="!ed/2a20/5C75/1654/58f8aef6257e">
<position>
<Point x="11738" y="1085"/>
</position>
<size>
<Size width="326" height="503"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/2a1e/5C75/1654/58f8aef6512a" dstEquation="!ed/2a20/5C75/1654/58f8aef6257e">
<positions>
<Point x="9885" y="1312"/>
<Point x="10456" y="1312"/>
<Point x="10456" y="1312"/>
<Point x="11790" y="1312"/>
</positions>
</Edge>
<EquationGE presentable="!ed/2a21/5C75/1654/58f8aef661d8">
<position>
<Point x="5760" y="4172"/>
</position>
<size>
<Size width="1233" height="2398"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/2a22/5C75/1654/58f8aef61dc7">
<position>
<Point x="1706" y="3863"/>
</position>
<size>
<Size width="251" height="503"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/2a23/5C75/1654/58f8aef61431">
<position>
<Point x="3855" y="5019"/>
</position>
<size>
<Size width="1048" height="678"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/2a22/5C75/1654/58f8aef61dc7" dstEquation="!ed/2a23/5C75/1654/58f8aef61431">
<positions>
<Point x="1947" y="4128"/>
<Point x="3302" y="4128"/>
<Point x="3302" y="5355"/>
<Point x="3852" y="5355"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/2a22/5C75/1654/58f8aef61dc7" dstEquation="!ed/2a21/5C75/1654/58f8aef661d8">
<positions>
<Point x="1947" y="4128"/>
<Point x="5271" y="4128"/>
<Point x="5271" y="4763"/>
<Point x="5757" y="4763"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="3" srcEquation="!ed/2a23/5C75/1654/58f8aef61431" dstEquation="!ed/2a21/5C75/1654/58f8aef661d8">
<positions>
<Point x="4911" y="5355"/>
<Point x="5144" y="5355"/>
<Point x="5144" y="5355"/>
<Point x="5757" y="5355"/>
</positions>
</Edge>
<EquationGE kind="OBJ_LIT" presentable="!ed/2a24/5C75/1654/58f8aef67abd">
<position>
<Point x="2672" y="5821"/>
</position>
<size>
<Size width="53" height="264"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="4" srcEquation="!ed/2a24/5C75/1654/58f8aef67abd" dstEquation="!ed/2a21/5C75/1654/58f8aef661d8">
<positions>
<Point x="2731" y="5969"/>
<Point x="5207" y="5969"/>
<Point x="5207" y="5969"/>
<Point x="5757" y="5969"/>
</positions>
</Edge>
<EquationGE presentable="!ed/2a25/5C75/1654/58f8aef6506d">
<position>
<Point x="1706" y="2434"/>
</position>
<size>
<Size width="251" height="503"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/2a25/5C75/1654/58f8aef6506d" dstEquation="!ed/2a21/5C75/1654/58f8aef661d8">
<positions>
<Point x="1947" y="2688"/>
<Point x="6371" y="2688"/>
<Point x="6371" y="4170"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/2a21/5C75/1654/58f8aef661d8" dstEquation="!ed/2a1e/5C75/1654/58f8aef6512a">
<positions>
<Point x="6985" y="5376"/>
<Point x="8488" y="5376"/>
<Point x="8488" y="1418"/>
<Point x="8827" y="1418"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
</pragmas>
</Operator>

View File

@@ -1,670 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" name="TruthTableIdx">
<sizeParameters>
<SizeParameter name="Ncond">
<pragmas>
<ed:SizeParameter oid="!ed/299d/5C75/1654/58f8aeb571af"/>
</pragmas>
</SizeParameter>
<SizeParameter name="Nlines">
<pragmas>
<ed:SizeParameter oid="!ed/299e/5C75/1654/58f8aeb56192"/>
</pragmas>
</SizeParameter>
</sizeParameters>
<inputs>
<Variable name="Conditions">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</size>
<pragmas>
<ed:Table oid="!ed/29a4/5C75/1654/58f8aeb5383d"/>
</pragmas>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/29a3/5C75/1654/58f8aeb53988"/>
</pragmas>
</Variable>
<Variable name="Ttable">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="truthTablesValues_t"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</size>
<pragmas>
<ed:Table oid="!ed/29a1/5C75/1654/58f8aeb51835"/>
</pragmas>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Nlines"/>
</path>
</IdExpression>
</size>
<pragmas>
<ed:Table oid="!ed/29a0/5C75/1654/58f8aeb53c16"/>
</pragmas>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/299f/5C75/1654/58f8aeb543d0" hidden="true"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="LineIdx">
<type>
<NamedType>
<type>
<TypeRef name="int16"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29a2/5C75/1654/58f8aeb5f36"/>
</pragmas>
</Variable>
</outputs>
<locals>
<Variable name="_L1">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/2995/5C75/1654/58f8aeb52deb"/>
</pragmas>
</Variable>
<Variable name="_L2">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="truthTablesValues_t"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Nlines"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/2996/5C75/1654/58f8aeb5568e"/>
</pragmas>
</Variable>
<Variable name="_L6">
<type>
<NamedType>
<type>
<TypeRef name="int16"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/2997/5C75/1654/58f8aeb53f4c"/>
</pragmas>
</Variable>
<Variable name="_L8">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Nlines"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/2998/5C75/1654/58f8aeb533d1"/>
</pragmas>
</Variable>
<Variable name="_L9">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="truthTablesValues_t"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Nlines"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/2999/5C75/1654/58f8aeb55f7"/>
</pragmas>
</Variable>
<Variable name="_L10">
<type>
<NamedType>
<type>
<TypeRef name="int16"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/299a/5C75/1654/58f8aeb5c94"/>
</pragmas>
</Variable>
<Variable name="_L11">
<type>
<NamedType>
<type>
<TypeRef name="int16"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/299b/5C75/1654/58f8aeb51cfd"/>
</pragmas>
</Variable>
<Variable name="_L12">
<type>
<NamedType>
<type>
<TypeRef name="int16"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/299c/5C75/1654/58f8aeb56cb3"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L1 = Conditions; -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="Conditions"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/298b/5C75/1654/58f8aeb5387d"/>
</pragmas>
</Equation>
<!-- _L2 = Ttable; -->
<Equation>
<lefts>
<VariableRef name="_L2"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="Ttable"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/298c/5C75/1654/58f8aeb51518"/>
</pragmas>
</Equation>
<!-- LineIdx = _L10; -->
<Equation>
<lefts>
<VariableRef name="LineIdx"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L10"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/298d/5C75/1654/58f8aeb54ecd"/>
</pragmas>
</Equation>
<!-- _L6 = - (1 : int16); -->
<Equation>
<lefts>
<VariableRef name="_L6"/>
</lefts>
<right>
<!-- - (1 : int16) -->
<UnaryOp name="1" operator="-">
<operand>
<!-- (1 : int16) -->
<NumericCastOp name="1">
<type>
<TypeRef name="int16"/>
</type>
<flow>
<ConstValue value="1"/>
</flow>
</NumericCastOp>
</operand>
</UnaryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/298e/5C75/1654/58f8aeb5724d"/>
</pragmas>
</Equation>
<!-- _L8 = _L1 ^ Nlines; -->
<Equation>
<lefts>
<VariableRef name="_L8"/>
</lefts>
<right>
<!-- _L1 ^ Nlines -->
<ScalarToVectorOp name="1">
<flow>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</items>
</ListExpression>
</flow>
<size>
<IdExpression>
<path>
<ConstVarRef name="Nlines"/>
</path>
</IdExpression>
</size>
</ScalarToVectorOp>
</right>
<pragmas>
<ed:Equation oid="!ed/298f/5C75/1654/58f8aeb51862"/>
</pragmas>
</Equation>
<!-- _L9 = reverse _L2; -->
<Equation>
<lefts>
<VariableRef name="_L9"/>
</lefts>
<right>
<!-- reverse _L2 -->
<UnaryOp name="1" operator="reverse">
<operand>
<IdExpression>
<path>
<ConstVarRef name="_L2"/>
</path>
</IdExpression>
</operand>
</UnaryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/2990/5C75/1654/58f8aeb52d10"/>
</pragmas>
</Equation>
<!-- _L10 = _L11 - _L12; -->
<Equation>
<lefts>
<VariableRef name="_L10"/>
</lefts>
<right>
<!-- _L11 - _L12 -->
<BinaryOp name="1" operator="-">
<operands>
<IdExpression>
<path>
<ConstVarRef name="_L11"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L12"/>
</path>
</IdExpression>
</operands>
</BinaryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/2991/5C75/1654/58f8aeb57031"/>
</pragmas>
</Equation>
<!-- _L11 = (Nlines : int16) - (1 : int16); -->
<Equation>
<lefts>
<VariableRef name="_L11"/>
</lefts>
<right>
<!-- (Nlines : int16) - (1 : int16) -->
<BinaryOp name="2" operator="-">
<operands>
<!-- (Nlines : int16) -->
<NumericCastOp name="2">
<type>
<TypeRef name="int16"/>
</type>
<flow>
<IdExpression>
<path>
<ConstVarRef name="Nlines"/>
</path>
</IdExpression>
</flow>
</NumericCastOp>
<!-- (1 : int16) -->
<NumericCastOp name="3">
<type>
<TypeRef name="int16"/>
</type>
<flow>
<ConstValue value="1"/>
</flow>
</NumericCastOp>
</operands>
</BinaryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/2992/5C75/1654/58f8aeb52182"/>
</pragmas>
</Equation>
<!-- _L12 = (foldi (TruthTableLineIdx<<Ncond>>) <<Nlines>>)(_L6, _L8, _L9); -->
<Equation>
<lefts>
<VariableRef name="_L12"/>
</lefts>
<right>
<!-- (foldi (TruthTableLineIdx<<Ncond>>) <<Nlines>>)(_L6, _L8, _L9) -->
<CallExpression>
<operator>
<IteratorOp name="2" iterator="foldi">
<operator>
<OpCall name="1">
<operator>
<OperatorRef name="TruthTableLineIdx"/>
</operator>
<instanceParameters>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</instanceParameters>
</OpCall>
</operator>
<size>
<IdExpression>
<path>
<ConstVarRef name="Nlines"/>
</path>
</IdExpression>
</size>
</IteratorOp>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L6"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L8"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L9"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/2993/5C75/1654/58f8aeb562e6"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/298a/5C75/1654/58f8aeb5617" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<comment>Implements a truth table. Outputs the index</comment>
<comment>of the first line of Ttable of Nlines lines that matches Conditions.</comment>
<comment>Index Nlines is produced when no line matches.</comment>
<comment>Element 'T' from Ttable matches true, 'F' matches false, 'X' matches both.</comment>
<diagrams>
<NetDiagram name="diagram_TruthTableIdx" landscape="true" format="A4 (210 297)" oid="!ed/2994/5C75/1654/58f8aeb5e61">
<presentationElements>
<EquationGE presentable="!ed/298b/5C75/1654/58f8aeb5387d">
<position>
<Point x="2420" y="4022"/>
</position>
<size>
<Size width="251" height="502"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/298c/5C75/1654/58f8aeb51518">
<position>
<Point x="2473" y="5106"/>
</position>
<size>
<Size width="251" height="503"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/298d/5C75/1654/58f8aeb54ecd">
<position>
<Point x="18203" y="3366"/>
</position>
<size>
<Size width="326" height="503"/>
</size>
</EquationGE>
<EquationGE kind="OBJ_LIT" presentable="!ed/298e/5C75/1654/58f8aeb5724d">
<position>
<Point x="5292" y="3043"/>
</position>
<size>
<Size width="53" height="264"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/298f/5C75/1654/58f8aeb51862">
<position>
<Point x="4305" y="3881"/>
</position>
<size>
<Size width="1259" height="810"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/298b/5C75/1654/58f8aeb5387d" dstEquation="!ed/298f/5C75/1654/58f8aeb51862">
<positions>
<Point x="2667" y="4276"/>
<Point x="4318" y="4276"/>
<Point x="4297" y="4276"/>
<Point x="4297" y="4276"/>
</positions>
</Edge>
<EquationGE presentable="!ed/2990/5C75/1654/58f8aeb52d10">
<position>
<Point x="4331" y="4913"/>
</position>
<size>
<Size width="1233" height="889"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/298c/5C75/1654/58f8aeb51518" dstEquation="!ed/2990/5C75/1654/58f8aeb52d10">
<positions>
<Point x="2731" y="5355"/>
<Point x="4339" y="5355"/>
<Point x="4339" y="5376"/>
<Point x="4339" y="5355"/>
</positions>
</Edge>
<EquationGE presentable="!ed/2991/5C75/1654/58f8aeb57031">
<position>
<Point x="15896" y="3281"/>
</position>
<size>
<Size width="1022" height="677"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/2991/5C75/1654/58f8aeb57031" dstEquation="!ed/298d/5C75/1654/58f8aeb54ecd">
<positions>
<Point x="16912" y="3620"/>
<Point x="17209" y="3620"/>
<Point x="17209" y="3620"/>
<Point x="18246" y="3620"/>
</positions>
</Edge>
<EquationGE kind="OBJ_LIT" presentable="!ed/2992/5C75/1654/58f8aeb52182">
<position>
<Point x="15050" y="2752"/>
</position>
<size>
<Size width="170" height="317"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/2992/5C75/1654/58f8aeb52182" dstEquation="!ed/2991/5C75/1654/58f8aeb57031">
<positions>
<Point x="15219" y="2921"/>
<Point x="15558" y="2921"/>
<Point x="15558" y="3514"/>
<Point x="15896" y="3514"/>
</positions>
</Edge>
<EquationGE presentable="!ed/2993/5C75/1654/58f8aeb562e6">
<position>
<Point x="6580" y="1024"/>
</position>
<size>
<Size width="5070" height="5440"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="3" srcEquation="!ed/2990/5C75/1654/58f8aeb52d10" dstEquation="!ed/2993/5C75/1654/58f8aeb562e6">
<positions>
<Point x="5567" y="5355"/>
<Point x="6244" y="5355"/>
<Point x="6244" y="5355"/>
<Point x="6583" y="5355"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/298f/5C75/1654/58f8aeb51862" dstEquation="!ed/2993/5C75/1654/58f8aeb562e6">
<positions>
<Point x="5567" y="4297"/>
<Point x="6244" y="4297"/>
<Point x="6244" y="4297"/>
<Point x="6583" y="4297"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/298e/5C75/1654/58f8aeb5724d" dstEquation="!ed/2993/5C75/1654/58f8aeb562e6">
<positions>
<Point x="5355" y="3196"/>
<Point x="6244" y="3196"/>
<Point x="6244" y="3196"/>
<Point x="6583" y="3196"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/2993/5C75/1654/58f8aeb562e6" dstEquation="!ed/2991/5C75/1654/58f8aeb57031">
<positions>
<Point x="11642" y="3747"/>
<Point x="12996" y="3747"/>
<Point x="12996" y="3747"/>
<Point x="15896" y="3747"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
</pragmas>
</Operator>

View File

@@ -1,526 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" name="TruthTableLineIdx">
<sizeParameters>
<SizeParameter name="Ncond">
<pragmas>
<ed:SizeParameter oid="!ed/29e2/5C75/1654/58f8aeed5eb"/>
</pragmas>
</SizeParameter>
</sizeParameters>
<inputs>
<Variable name="Idx">
<type>
<NamedType>
<type>
<TypeRef name="int16"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29e4/5C75/1654/58f8aeed4b13"/>
</pragmas>
</Variable>
<Variable name="AccIn">
<type>
<NamedType>
<type>
<TypeRef name="int16"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29e5/5C75/1654/58f8aeed4c9a"/>
</pragmas>
</Variable>
<Variable name="Conditions">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</size>
<pragmas>
<ed:Table oid="!ed/29e7/5C75/1654/58f8aeed167d"/>
</pragmas>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/29e6/5C75/1654/58f8aeed339e"/>
</pragmas>
</Variable>
<Variable name="TTline">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="truthTablesValues_t"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</size>
<pragmas>
<ed:Table oid="!ed/29e9/5C75/1654/58f8aeedefe"/>
</pragmas>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/29e8/5C75/1654/58f8aeed560f"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="AccOut">
<type>
<NamedType>
<type>
<TypeRef name="int16"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29e3/5C75/1654/58f8aeed1628"/>
</pragmas>
</Variable>
</outputs>
<locals>
<Variable name="_L2">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29db/5C75/1654/58f8aeed688f"/>
</pragmas>
</Variable>
<Variable name="_L3">
<type>
<NamedType>
<type>
<TypeRef name="int16"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29dc/5C75/1654/58f8aeed73f0"/>
</pragmas>
</Variable>
<Variable name="_L4">
<type>
<NamedType>
<type>
<TypeRef name="int16"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29dd/5C75/1654/58f8aeed2f51"/>
</pragmas>
</Variable>
<Variable name="_L8">
<type>
<NamedType>
<type>
<TypeRef name="int16"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29de/5C75/1654/58f8aeed3b14"/>
</pragmas>
</Variable>
<Variable name="_L10">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/29df/5C75/1654/58f8aeed1ac6"/>
</pragmas>
</Variable>
<Variable name="_L11">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/29e0/5C75/1654/58f8aeed7cb3"/>
</pragmas>
</Variable>
<Variable name="_L12">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="truthTablesValues_t"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/29e1/5C75/1654/58f8aeed7613"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L2 = (fold TruthTableElt <<Ncond>>)(_L11, _L10, _L12); -->
<Equation>
<lefts>
<VariableRef name="_L2"/>
</lefts>
<right>
<!-- (fold TruthTableElt <<Ncond>>)(_L11, _L10, _L12) -->
<CallExpression>
<operator>
<IteratorOp name="2" iterator="fold">
<operator>
<OpCall name="1">
<operator>
<OperatorRef name="TruthTableElt"/>
</operator>
</OpCall>
</operator>
<size>
<IdExpression>
<path>
<ConstVarRef name="Ncond"/>
</path>
</IdExpression>
</size>
</IteratorOp>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L11"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L10"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L12"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/29d2/5C75/1654/58f8aeed385"/>
</pragmas>
</Equation>
<!-- _L3 = if _L2 then (_L8) else (_L4); -->
<Equation>
<lefts>
<VariableRef name="_L3"/>
</lefts>
<right>
<!-- if _L2 then (_L8) else (_L4) -->
<IfThenElseOp name="1">
<if>
<IdExpression>
<path>
<ConstVarRef name="_L2"/>
</path>
</IdExpression>
</if>
<then>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L8"/>
</path>
</IdExpression>
</items>
</ListExpression>
</then>
<else>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L4"/>
</path>
</IdExpression>
</items>
</ListExpression>
</else>
</IfThenElseOp>
</right>
<pragmas>
<ed:Equation oid="!ed/29d3/5C75/1654/58f8aeed6238"/>
</pragmas>
</Equation>
<!-- AccOut = _L3; -->
<Equation>
<lefts>
<VariableRef name="AccOut"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L3"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/29d4/5C75/1654/58f8aeed3f4c"/>
</pragmas>
</Equation>
<!-- _L4 = AccIn; -->
<Equation>
<lefts>
<VariableRef name="_L4"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="AccIn"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/29d5/5C75/1654/58f8aeed71bc"/>
</pragmas>
</Equation>
<!-- _L8 = Idx; -->
<Equation>
<lefts>
<VariableRef name="_L8"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="Idx"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/29d6/5C75/1654/58f8aeed1dd4"/>
</pragmas>
</Equation>
<!-- _L10 = Conditions; -->
<Equation>
<lefts>
<VariableRef name="_L10"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="Conditions"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/29d7/5C75/1654/58f8aeed2e04"/>
</pragmas>
</Equation>
<!-- _L11 = true; -->
<Equation>
<lefts>
<VariableRef name="_L11"/>
</lefts>
<right>
<ConstValue value="true"/>
</right>
<pragmas>
<ed:Equation oid="!ed/29d8/5C75/1654/58f8aeed63fa"/>
</pragmas>
</Equation>
<!-- _L12 = TTline; -->
<Equation>
<lefts>
<VariableRef name="_L12"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="TTline"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/29d9/5C75/1654/58f8aeed62b3"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/29d1/5C75/1654/58f8aeed7c00" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<comment>Private; used from TruthTableIdx</comment>
<diagrams>
<NetDiagram name="diagram_TruthTableLineIdx" landscape="true" format="A4 (210 297)" oid="!ed/29da/5C75/1654/58f8aeed482a">
<presentationElements>
<EquationGE presentable="!ed/29d2/5C75/1654/58f8aeed385">
<position>
<Point x="5337" y="1130"/>
</position>
<size>
<Size width="3535" height="3614"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/29d3/5C75/1654/58f8aeed6238">
<position>
<Point x="10840" y="6395"/>
</position>
<size>
<Size width="1048" height="942"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/29d4/5C75/1654/58f8aeed3f4c">
<position>
<Point x="14278" y="6615"/>
</position>
<size>
<Size width="326" height="502"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/29d3/5C75/1654/58f8aeed6238" dstEquation="!ed/29d4/5C75/1654/58f8aeed3f4c">
<positions>
<Point x="11896" y="6879"/>
<Point x="12764" y="6879"/>
<Point x="12764" y="6879"/>
<Point x="14330" y="6879"/>
</positions>
</Edge>
<EquationGE presentable="!ed/29d5/5C75/1654/58f8aeed71bc">
<position>
<Point x="3029" y="6773"/>
</position>
<size>
<Size width="251" height="503"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/29d6/5C75/1654/58f8aeed1dd4">
<position>
<Point x="3029" y="5636"/>
</position>
<size>
<Size width="251" height="502"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/29d6/5C75/1654/58f8aeed1dd4" dstEquation="!ed/29d3/5C75/1654/58f8aeed6238">
<positions>
<Point x="3281" y="5884"/>
<Point x="10266" y="5884"/>
<Point x="10266" y="6710"/>
<Point x="10837" y="6710"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="3" srcEquation="!ed/29d5/5C75/1654/58f8aeed71bc" dstEquation="!ed/29d3/5C75/1654/58f8aeed6238">
<positions>
<Point x="3281" y="7027"/>
<Point x="4170" y="7027"/>
<Point x="4170" y="7027"/>
<Point x="10837" y="7027"/>
</positions>
</Edge>
<EquationGE presentable="!ed/29d7/5C75/1654/58f8aeed2e04">
<position>
<Point x="3029" y="2672"/>
</position>
<size>
<Size width="251" height="503"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/29d7/5C75/1654/58f8aeed2e04" dstEquation="!ed/29d2/5C75/1654/58f8aeed385">
<positions>
<Point x="3281" y="2921"/>
<Point x="4170" y="2921"/>
<Point x="4170" y="2942"/>
<Point x="5334" y="2942"/>
</positions>
</Edge>
<EquationGE kind="OBJ_LIT" presentable="!ed/29d8/5C75/1654/58f8aeed63fa">
<position>
<Point x="3995" y="1905"/>
</position>
<size>
<Size width="53" height="265"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/29d8/5C75/1654/58f8aeed63fa" dstEquation="!ed/29d2/5C75/1654/58f8aeed385">
<positions>
<Point x="4043" y="2053"/>
<Point x="4911" y="2053"/>
<Point x="4911" y="2032"/>
<Point x="5334" y="2032"/>
</positions>
</Edge>
<EquationGE presentable="!ed/29d9/5C75/1654/58f8aeed62b3">
<position>
<Point x="3029" y="3598"/>
</position>
<size>
<Size width="251" height="503"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="3" srcEquation="!ed/29d9/5C75/1654/58f8aeed62b3" dstEquation="!ed/29d2/5C75/1654/58f8aeed385">
<positions>
<Point x="3281" y="3852"/>
<Point x="4170" y="3852"/>
<Point x="4170" y="3831"/>
<Point x="5334" y="3831"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/29d2/5C75/1654/58f8aeed385" dstEquation="!ed/29d3/5C75/1654/58f8aeed6238">
<positions>
<Point x="8869" y="2942"/>
<Point x="11367" y="2942"/>
<Point x="11367" y="6392"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
</pragmas>
</Operator>

View File

@@ -1,361 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Change ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 60 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 60 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Change TEXT
{
NT_DEFAULT_VALUE " PR: First issue - No change." ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Description ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 350 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 400 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 120 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Description TEXT
{
NT_DEFAULT_VALUE " Description: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
CopyRight ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 40 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 21 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
CopyRight TEXT
{
NT_DEFAULT_VALUE " (C) ZSSM. All rights reserved." ,
NT_INCRUSTABLE T ,
NT_EDITABLE F },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Date ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 250 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 100 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Date DATE
{
NT_DEFAULT_VALUE "dd/mm/yyyy" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Author ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 250 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Author TEXT
{
NT_DEFAULT_VALUE " Modified by: AP. PORTE" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Title ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Title TEXT
{
NT_DEFAULT_VALUE "Title : " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
OperatorKind ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
OperatorKind ENUM
{
NT_ENUM_VALUES {"Architecture", "Functional", "Refinement", "Library", "Derived", "Robustness", "TBD"},
NT_DEFAULT_VALUE "TBD" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Change ::= {
{"!ed/9754/197F/2150/59e4aef3444b", "Change_6",T , T , "RELATIVE" , 0.000000 , 60.000000 , T , T , 350 , 60 , 1 , " CR: First issue - No change. " , T }}
Description ::= {
{"!ed/9754/197F/2150/59e4aef3444b", "Description_5",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description: This operator returns the absolute value of an input." , T }}
CopyRight ::= {
{"!ed/9754/197F/2150/59e4aef3444b", "CopyRight_4",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T }}
Date ::= {
{"!ed/9754/197F/2150/59e4aef3444b", "Date_3",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , " 30/03/2009" , T }}
Author ::= {
{"!ed/9754/197F/2150/59e4aef3444b", "Author_2",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Created by: T.CHRETIEN" , T }}
Title ::= {
{"!ed/9754/197F/2150/59e4aef3444b", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , " Title: diagram_real_abs_1" , T }}
OperatorKind ::= {
{"!ed/974d/197F/2150/59e4aef315f4", "OperatorKind_1","Library" , T }}
Range ::= {
{"!ed/975a/197F/2150/59e4aef368b6", "Range_3","NA" , T },
{"!ed/975b/197F/2150/59e4aef342e1", "Range_3","NA" , T }}
Comment ::= {
{"!ed/975a/197F/2150/59e4aef368b6", "Comment_1","absolute value." , T },
{"!ed/975b/197F/2150/59e4aef342e1", "Comment_1","input value" , T }}
Unit ::= {
{"!ed/975a/197F/2150/59e4aef368b6", "Unit_2","NA" , T },
{"!ed/975b/197F/2150/59e4aef342e1", "Unit_2","NA" , T }}
END

View File

@@ -1,396 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" name="abs">
<inputs>
<Variable name="value">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/975b/197F/2150/59e4aef342e1"/>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;NA&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;NA&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;input value&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="abs">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/975a/197F/2150/59e4aef368b6"/>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;NA&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;NA&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;absolute value.&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</outputs>
<numericTypes>
<NumericType>
<typeVar>
<TypeRef name="'T"/>
</typeVar>
</NumericType>
</numericTypes>
<locals>
<Variable name="_L1">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/9755/197F/2150/59e4aef35902"/>
</pragmas>
</Variable>
<Variable name="_L2">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/9756/197F/2150/59e4aef360f7"/>
</pragmas>
</Variable>
<Variable name="_L3">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/9757/197F/2150/59e4aef36680"/>
</pragmas>
</Variable>
<Variable name="_L4">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/9758/197F/2150/59e4aef36e9e"/>
</pragmas>
</Variable>
<Variable name="_L5">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/9759/197F/2150/59e4aef37945"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L1 = value; -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="value"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/974e/197F/2150/59e4aef3375"/>
</pragmas>
</Equation>
<!-- abs = _L4; -->
<Equation>
<lefts>
<VariableRef name="abs"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L4"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/974f/197F/2150/59e4aef3481"/>
</pragmas>
</Equation>
<!-- _L2 = _L1 < _L3; -->
<Equation>
<lefts>
<VariableRef name="_L2"/>
</lefts>
<right>
<!-- _L1 < _L3 -->
<BinaryOp name="1" operator="&lt;">
<operands>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L3"/>
</path>
</IdExpression>
</operands>
</BinaryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/9750/197F/2150/59e4aef34fa3"/>
</pragmas>
</Equation>
<!-- _L3 = (0 : 'T); -->
<Equation>
<lefts>
<VariableRef name="_L3"/>
</lefts>
<right>
<!-- (0 : 'T) -->
<NumericCastOp name="1">
<type>
<TypeRef name="'T"/>
</type>
<flow>
<ConstValue value="0"/>
</flow>
</NumericCastOp>
</right>
<pragmas>
<ed:Equation oid="!ed/9751/197F/2150/59e4aef3429a"/>
</pragmas>
</Equation>
<!-- _L4 = if _L2 then (_L5) else (_L1); -->
<Equation>
<lefts>
<VariableRef name="_L4"/>
</lefts>
<right>
<!-- if _L2 then (_L5) else (_L1) -->
<IfThenElseOp name="1">
<if>
<IdExpression>
<path>
<ConstVarRef name="_L2"/>
</path>
</IdExpression>
</if>
<then>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L5"/>
</path>
</IdExpression>
</items>
</ListExpression>
</then>
<else>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</items>
</ListExpression>
</else>
</IfThenElseOp>
</right>
<pragmas>
<ed:Equation oid="!ed/9752/197F/2150/59e4aef36f0c"/>
</pragmas>
</Equation>
<!-- _L5 = - _L1; -->
<Equation>
<lefts>
<VariableRef name="_L5"/>
</lefts>
<right>
<!-- - _L1 -->
<UnaryOp name="1" operator="-">
<operand>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</operand>
</UnaryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/9753/197F/2150/59e4aef31262"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/974d/197F/2150/59e4aef315f4" symbolFile="..\symbols\real_abs.ssl" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<diagrams>
<NetDiagram name="diagram_abs_1" landscape="true" format="A4 (210 297)" oid="!ed/9754/197F/2150/59e4aef3444b">
<presentationElements>
<EquationGE presentable="!ed/974e/197F/2150/59e4aef3375">
<position>
<Point x="2672" y="4524"/>
</position>
<size>
<Size width="265" height="503"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/974f/197F/2150/59e4aef3481">
<position>
<Point x="9499" y="6059"/>
</position>
<size>
<Size width="344" height="503"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/9750/197F/2150/59e4aef34fa3">
<position>
<Point x="6085" y="4577"/>
</position>
<size>
<Size width="1006" height="662"/>
</size>
</EquationGE>
<EquationGE kind="OBJ_LIT" presentable="!ed/9751/197F/2150/59e4aef3429a">
<position>
<Point x="5054" y="5133"/>
</position>
<size>
<Size width="211" height="317"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/974e/197F/2150/59e4aef3375" dstEquation="!ed/9750/197F/2150/59e4aef34fa3">
<positions>
<Point x="2937" y="4789"/>
<Point x="4498" y="4789"/>
<Point x="4498" y="4789"/>
<Point x="6085" y="4789"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/9751/197F/2150/59e4aef3429a" dstEquation="!ed/9750/197F/2150/59e4aef34fa3">
<positions>
<Point x="5265" y="5292"/>
<Point x="5874" y="5292"/>
<Point x="5874" y="5027"/>
<Point x="6085" y="5027"/>
</positions>
</Edge>
<EquationGE presentable="!ed/9752/197F/2150/59e4aef36f0c">
<position>
<Point x="7382" y="5636"/>
</position>
<size>
<Size width="1022" height="1365"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/9750/197F/2150/59e4aef34fa3" dstEquation="!ed/9752/197F/2150/59e4aef36f0c">
<positions>
<Point x="7091" y="4921"/>
<Point x="7911" y="4921"/>
<Point x="7911" y="5636"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/9752/197F/2150/59e4aef36f0c" dstEquation="!ed/974f/197F/2150/59e4aef3481">
<positions>
<Point x="8414" y="6324"/>
<Point x="8969" y="6324"/>
<Point x="8969" y="6324"/>
<Point x="9551" y="6324"/>
</positions>
</Edge>
<EquationGE presentable="!ed/9753/197F/2150/59e4aef31262">
<position>
<Point x="5371" y="5741"/>
</position>
<size>
<Size width="1005" height="661"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/9753/197F/2150/59e4aef31262" dstEquation="!ed/9752/197F/2150/59e4aef36f0c">
<positions>
<Point x="6376" y="6085"/>
<Point x="6879" y="6085"/>
<Point x="6879" y="6085"/>
<Point x="7382" y="6085"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/974e/197F/2150/59e4aef3375" dstEquation="!ed/9753/197F/2150/59e4aef31262">
<positions>
<Point x="2937" y="4789"/>
<Point x="4154" y="4789"/>
<Point x="4154" y="6085"/>
<Point x="5371" y="6085"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="3" srcEquation="!ed/974e/197F/2150/59e4aef3375" dstEquation="!ed/9752/197F/2150/59e4aef36f0c">
<positions>
<Point x="2937" y="4789"/>
<Point x="4154" y="4789"/>
<Point x="4154" y="6562"/>
<Point x="7382" y="6562"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
<kcg:Pragma>
doc &quot;OperatorKind_1&quot; {OperatorKind = &quot;Library&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Change_6&quot; {Change = &quot; CR: First issue - No change. &quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Description_5&quot; {Description = &quot; Description: This operator returns the absolute value of an input.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;CopyRight_4&quot; {CopyRight = &quot; (C) ZSSM. All rights reserved.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Date_3&quot; {Date = &quot; 30/03/2009&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Author_2&quot; {Author = &quot; Created by: T.CHRETIEN&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Title_1&quot; {Title = &quot; Title: diagram_real_abs_1&quot;}
</kcg:Pragma>
</pragmas>
</Operator>

View File

@@ -1,366 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Change ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 60 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 60 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Change TEXT
{
NT_DEFAULT_VALUE " PR: First issue - No change." ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Description ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 350 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 400 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 120 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Description TEXT
{
NT_DEFAULT_VALUE " Description: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
CopyRight ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 40 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 21 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
CopyRight TEXT
{
NT_DEFAULT_VALUE " (C) ZSSM. All rights reserved." ,
NT_INCRUSTABLE T ,
NT_EDITABLE F },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Date ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 250 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 100 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Date DATE
{
NT_DEFAULT_VALUE "dd/mm/yyyy" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Author ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 250 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Author TEXT
{
NT_DEFAULT_VALUE " Modified by: AP. PORTE" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Title ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Title TEXT
{
NT_DEFAULT_VALUE "Title : " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
OperatorKind ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
OperatorKind ENUM
{
NT_ENUM_VALUES {"Architecture", "Functional", "Refinement", "Library", "Derived", "Robustness", "TBD"},
NT_DEFAULT_VALUE "TBD" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Change ::= {
{"!ed/8d70/197F/2150/59e4ad2062cc", "Change_6",T , T , "RELATIVE" , 0.000000 , 61.456692 , T , T , 350 , 58 , 1 , " CR scade#47 : shorten IO names to ease readability" , T }}
Description ::= {
{"!ed/8d70/197F/2150/59e4ad2062cc", "Description_5",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description: Return the indexes and values of the closest lower and
higher value in an array of an input." , T }}
CopyRight ::= {
{"!ed/8d70/197F/2150/59e4ad2062cc", "CopyRight_4",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T }}
Date ::= {
{"!ed/8d70/197F/2150/59e4ad2062cc", "Date_3",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , "14/10/2016" , T }}
Author ::= {
{"!ed/8d70/197F/2150/59e4ad2062cc", "Author_2",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Modified by: J. Kirsch" , T }}
Title ::= {
{"!ed/8d70/197F/2150/59e4ad2062cc", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , " Title: diagram_closest_lower_higher_1" , T }}
OperatorKind ::= {
{"!ed/8d57/197F/2150/59e4ad2053a3", "OperatorKind_1","Library" , T }}
Range ::= {
{"!ed/8d8d/197F/2150/59e4ad2067bf", "Range_3","NA" , T },
{"!ed/8d8e/197F/2150/59e4ad2052c9", "Range_3","NA" , T },
{"!ed/8d8f/197F/2150/59e4ad20202b", "Range_3","NA" , T }}
Comment ::= {
{"!ed/8d8d/197F/2150/59e4ad2067bf", "Comment_1","index and value of the closest lower
index and value of the closest higher" , T },
{"!ed/8d8e/197F/2150/59e4ad2052c9", "Comment_1","input corresponding to Hp or r or p" , T },
{"!ed/8d8f/197F/2150/59e4ad20202b", "Comment_1","value of the array of Hp or p or r" , T }}
Unit ::= {
{"!ed/8d8d/197F/2150/59e4ad2067bf", "Unit_2","NA" , T },
{"!ed/8d8e/197F/2150/59e4ad2052c9", "Unit_2","NA" , T },
{"!ed/8d8f/197F/2150/59e4ad20202b", "Unit_2","NA" , T }}
END

View File

@@ -1,314 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Change ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 60 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 60 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Change TEXT
{
NT_DEFAULT_VALUE " PR: First issue - No change." ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Description ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 350 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 400 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 120 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Description TEXT
{
NT_DEFAULT_VALUE " Description: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
CopyRight ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 40 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 21 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
CopyRight TEXT
{
NT_DEFAULT_VALUE " (C) ZSSM. All rights reserved." ,
NT_INCRUSTABLE T ,
NT_EDITABLE F },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Date ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 250 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 100 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Date DATE
{
NT_DEFAULT_VALUE "dd/mm/yyyy" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Author ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 250 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Author TEXT
{
NT_DEFAULT_VALUE " Modified by: AP. PORTE" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Title ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Title TEXT
{
NT_DEFAULT_VALUE "Title : " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
OperatorKind ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
OperatorKind ENUM
{
NT_ENUM_VALUES {"Architecture", "Functional", "Refinement", "Library", "Derived", "Robustness", "TBD"},
NT_DEFAULT_VALUE "TBD" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Change ::= {
{"!ed/354a/1DFB/1050/58f0d525da6", "Change_1",T , T , "RELATIVE" , 0.000000 , 60.000000 , T , T , 350 , 60 , 1 , " PR: First issue - No change." , T },
{"!ed/354b/1DFB/1050/58f0d5254bf4", "Change_1",T , T , "RELATIVE" , 0.000000 , 60.000000 , T , T , 350 , 60 , 1 , " PR: First issue - No change." , T }}
Description ::= {
{"!ed/354a/1DFB/1050/58f0d525da6", "Description_1",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description: " , T },
{"!ed/354b/1DFB/1050/58f0d5254bf4", "Description_1",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description: create combination of indexes for each closest pole
" , T }}
CopyRight ::= {
{"!ed/354a/1DFB/1050/58f0d525da6", "CopyRight_1",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T },
{"!ed/354b/1DFB/1050/58f0d5254bf4", "CopyRight_1",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T }}
Date ::= {
{"!ed/354a/1DFB/1050/58f0d525da6", "Date_1",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , "dd/mm/yyyy" , T },
{"!ed/354b/1DFB/1050/58f0d5254bf4", "Date_1",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , "23/05/2017" , T }}
Author ::= {
{"!ed/354a/1DFB/1050/58f0d525da6", "Author_1",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Modified by: AP. PORTE" , T },
{"!ed/354b/1DFB/1050/58f0d5254bf4", "Author_1",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Modified by: AP. PORTE" , T }}
Title ::= {
{"!ed/354a/1DFB/1050/58f0d525da6", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , "Title : " , T },
{"!ed/354b/1DFB/1050/58f0d5254bf4", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , "Title : combine_poles_1" , T }}
OperatorKind ::= {
{"!ed/354a/1DFB/1050/58f0d525da6", "OperatorKind_1","TBD" , T }}
END

View File

@@ -1,914 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" visibility="private" name="combine_poles">
<inputs>
<Variable name="mass_param">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/354c/1DFB/1050/58f0d52d2859"/>
</pragmas>
</Variable>
<Variable name="distance_param">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/354d/1DFB/1050/58f0d52e7ec"/>
</pragmas>
</Variable>
<Variable name="speed_param">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/354e/1DFB/1050/58f0d52e1ada"/>
</pragmas>
</Variable>
<Variable name="altitude_param">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/354f/1DFB/1050/58f0d52e5d4d"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="combination">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="4"/>
</size>
</Table>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/fa7/4B98/1E78/58f5eda85be2"/>
</pragmas>
</Variable>
</outputs>
<locals>
<Variable name="_L9">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<!-- 2 + 1 -->
<NAryOp operator="+">
<operands>
<ConstValue value="2"/>
<ConstValue value="1"/>
</operands>
</NAryOp>
</size>
</Table>
</type>
<size>
<!-- 4 * 2 -->
<NAryOp operator="*">
<operands>
<ConstValue value="4"/>
<ConstValue value="2"/>
</operands>
</NAryOp>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/fbd/4B98/1E78/58f5eda850aa"/>
</pragmas>
</Variable>
<Variable name="_L5">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<!-- 3 + 1 -->
<NAryOp operator="+">
<operands>
<ConstValue value="3"/>
<ConstValue value="1"/>
</operands>
</NAryOp>
</size>
</Table>
</type>
<size>
<!-- 8 * 2 -->
<NAryOp operator="*">
<operands>
<ConstValue value="8"/>
<ConstValue value="2"/>
</operands>
</NAryOp>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/fb5/4B98/1E78/58f5eda8a8a"/>
</pragmas>
</Variable>
<Variable name="_L20">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/fd6/4B98/1E78/58f5ee0468af"/>
</pragmas>
</Variable>
<Variable name="_L21">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/fdc/4B98/1E78/58f5ee0c7cc6"/>
</pragmas>
</Variable>
<Variable name="_L22">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/fe2/4B98/1E78/58f5ee125975"/>
</pragmas>
</Variable>
<Variable name="_L24">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<!-- 1 + 1 -->
<NAryOp operator="+">
<operands>
<ConstValue value="1"/>
<ConstValue value="1"/>
</operands>
</NAryOp>
</size>
</Table>
</type>
<size>
<!-- 2 * 2 -->
<NAryOp operator="*">
<operands>
<ConstValue value="2"/>
<ConstValue value="2"/>
</operands>
</NAryOp>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/505a/654E/1838/58f713352d19"/>
</pragmas>
</Variable>
<Variable name="_L41">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/17d1/71E6/226C/58f7552d4fa5"/>
</pragmas>
</Variable>
<Variable name="_L42">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/17fa/71E6/226C/58f7553983e"/>
</pragmas>
</Variable>
<Variable name="_L43">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="1"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/180c/71E6/226C/58f7553f6714"/>
</pragmas>
</Variable>
<Variable name="_L44">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="1"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1823/71E6/226C/58f75542772a"/>
</pragmas>
</Variable>
<Variable name="_L45">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="1"/>
</size>
</Table>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/182d/71E6/226C/58f7554d4cea"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L5 = (create_combinations<<3, 8>>)(_L20, _L9); -->
<Equation>
<lefts>
<VariableRef name="_L5"/>
</lefts>
<right>
<!-- (create_combinations<<3, 8>>)(_L20, _L9) -->
<CallExpression>
<operator>
<OpCall name="1">
<operator>
<OperatorRef name="create_combinations"/>
</operator>
<instanceParameters>
<ConstValue value="3"/>
<ConstValue value="8"/>
</instanceParameters>
</OpCall>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L20"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L9"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/fb4/4B98/1E78/58f5eda87886"/>
</pragmas>
</Equation>
<!-- _L9 = (create_combinations<<2, 4>>)(_L21, _L24); -->
<Equation>
<lefts>
<VariableRef name="_L9"/>
</lefts>
<right>
<!-- (create_combinations<<2, 4>>)(_L21, _L24) -->
<CallExpression>
<operator>
<OpCall name="2">
<operator>
<OperatorRef name="create_combinations"/>
</operator>
<instanceParameters>
<ConstValue value="2"/>
<ConstValue value="4"/>
</instanceParameters>
</OpCall>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L21"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L24"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/fbc/4B98/1E78/58f5eda81bbb"/>
</pragmas>
</Equation>
<!-- _L20 = mass_param; -->
<Equation>
<lefts>
<VariableRef name="_L20"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="mass_param"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/fd5/4B98/1E78/58f5ee0412c6"/>
</pragmas>
</Equation>
<!-- _L21 = distance_param; -->
<Equation>
<lefts>
<VariableRef name="_L21"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="distance_param"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/fdb/4B98/1E78/58f5ee0c554e"/>
</pragmas>
</Equation>
<!-- _L22 = speed_param; -->
<Equation>
<lefts>
<VariableRef name="_L22"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="speed_param"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/fe1/4B98/1E78/58f5ee122448"/>
</pragmas>
</Equation>
<!-- _L24 = (create_combinations<<1, 2>>)(_L22, _L45); -->
<Equation>
<lefts>
<VariableRef name="_L24"/>
</lefts>
<right>
<!-- (create_combinations<<1, 2>>)(_L22, _L45) -->
<CallExpression>
<operator>
<OpCall name="3">
<operator>
<OperatorRef name="create_combinations"/>
</operator>
<instanceParameters>
<ConstValue value="1"/>
<ConstValue value="2"/>
</instanceParameters>
</OpCall>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L22"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L45"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/5059/654E/1838/58f71335bb8"/>
</pragmas>
</Equation>
<!-- combination = _L5; -->
<Equation>
<lefts>
<VariableRef name="combination"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L5"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/169b/71E6/226C/58f74ef81a69"/>
</pragmas>
</Equation>
<!-- _L41 = altitude_param[0]; -->
<Equation>
<lefts>
<VariableRef name="_L41"/>
</lefts>
<right>
<!-- altitude_param[0] -->
<PrjOp name="1">
<flow>
<IdExpression>
<path>
<ConstVarRef name="altitude_param"/>
</path>
</IdExpression>
</flow>
<with>
<ConstValue value="0"/>
</with>
</PrjOp>
</right>
<pragmas>
<ed:Equation oid="!ed/17d0/71E6/226C/58f7552d5108"/>
</pragmas>
</Equation>
<!-- _L42 = altitude_param[1]; -->
<Equation>
<lefts>
<VariableRef name="_L42"/>
</lefts>
<right>
<!-- altitude_param[1] -->
<PrjOp name="2">
<flow>
<IdExpression>
<path>
<ConstVarRef name="altitude_param"/>
</path>
</IdExpression>
</flow>
<with>
<ConstValue value="1"/>
</with>
</PrjOp>
</right>
<pragmas>
<ed:Equation oid="!ed/17f9/71E6/226C/58f755392373"/>
</pragmas>
</Equation>
<!-- _L43 = _L41 ^ 1; -->
<Equation>
<lefts>
<VariableRef name="_L43"/>
</lefts>
<right>
<!-- _L41 ^ 1 -->
<ScalarToVectorOp name="1">
<flow>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L41"/>
</path>
</IdExpression>
</items>
</ListExpression>
</flow>
<size>
<ConstValue value="1"/>
</size>
</ScalarToVectorOp>
</right>
<pragmas>
<ed:Equation oid="!ed/180b/71E6/226C/58f7553f7a67"/>
</pragmas>
</Equation>
<!-- _L44 = _L42 ^ 1; -->
<Equation>
<lefts>
<VariableRef name="_L44"/>
</lefts>
<right>
<!-- _L42 ^ 1 -->
<ScalarToVectorOp name="2">
<flow>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L42"/>
</path>
</IdExpression>
</items>
</ListExpression>
</flow>
<size>
<ConstValue value="1"/>
</size>
</ScalarToVectorOp>
</right>
<pragmas>
<ed:Equation oid="!ed/1822/71E6/226C/58f755426322"/>
</pragmas>
</Equation>
<!-- _L45 = [_L43, _L44]; -->
<Equation>
<lefts>
<VariableRef name="_L45"/>
</lefts>
<right>
<!-- [_L43, _L44] -->
<DataArrayOp name="1">
<data>
<IdExpression>
<path>
<ConstVarRef name="_L43"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L44"/>
</path>
</IdExpression>
</data>
</DataArrayOp>
</right>
<pragmas>
<ed:Equation oid="!ed/182c/71E6/226C/58f7554d48d5"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/354a/1DFB/1050/58f0d525da6" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<diagrams>
<NetDiagram name="combine_poles_1" landscape="true" format="A4 (210 297)" oid="!ed/354b/1DFB/1050/58f0d5254bf4">
<presentationElements>
<EquationGE presentable="!ed/fb4/4B98/1E78/58f5eda87886">
<position>
<Point x="7197" y="9017"/>
</position>
<size>
<Size width="4504" height="2471"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/fbc/4B98/1E78/58f5eda81bbb">
<position>
<Point x="7176" y="6308"/>
</position>
<size>
<Size width="4482" height="2450"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/fd5/4B98/1E78/58f5ee0412c6">
<position>
<Point x="2371" y="9589"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/fdb/4B98/1E78/58f5ee0c554e">
<position>
<Point x="2371" y="6858"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/fe1/4B98/1E78/58f5ee122448">
<position>
<Point x="2371" y="4191"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/5059/654E/1838/58f71335bb8">
<position>
<Point x="7154" y="3620"/>
</position>
<size>
<Size width="4482" height="2450"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/169b/71E6/226C/58f74ef81a69">
<position>
<Point x="12869" y="10012"/>
</position>
<size>
<Size width="339" height="508"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/fe1/4B98/1E78/58f5ee122448" dstEquation="!ed/5059/654E/1838/58f71335bb8">
<positions>
<Point x="2625" y="4445"/>
<Point x="4890" y="4445"/>
<Point x="4890" y="4445"/>
<Point x="7154" y="4445"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/fdb/4B98/1E78/58f5ee0c554e" dstEquation="!ed/fbc/4B98/1E78/58f5eda81bbb">
<positions>
<Point x="2625" y="7112"/>
<Point x="4890" y="7112"/>
<Point x="4890" y="7112"/>
<Point x="7176" y="7112"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/5059/654E/1838/58f71335bb8" dstEquation="!ed/fbc/4B98/1E78/58f5eda81bbb">
<positions>
<Point x="11642" y="4847"/>
<Point x="12700" y="4847"/>
<Point x="12700" y="6392"/>
<Point x="6117" y="6392"/>
<Point x="6117" y="7938"/>
<Point x="7176" y="7938"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/fb4/4B98/1E78/58f5eda87886" dstEquation="!ed/169b/71E6/226C/58f74ef81a69">
<positions>
<Point x="11705" y="10266"/>
<Point x="12298" y="10266"/>
<Point x="12298" y="10266"/>
<Point x="12912" y="10266"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/fbc/4B98/1E78/58f5eda81bbb" dstEquation="!ed/fb4/4B98/1E78/58f5eda87886">
<positions>
<Point x="11663" y="7535"/>
<Point x="12721" y="7535"/>
<Point x="12721" y="9102"/>
<Point x="6138" y="9102"/>
<Point x="6138" y="10668"/>
<Point x="7197" y="10668"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/fd5/4B98/1E78/58f5ee0412c6" dstEquation="!ed/fb4/4B98/1E78/58f5eda87886">
<positions>
<Point x="2625" y="9843"/>
<Point x="4911" y="9843"/>
<Point x="4911" y="9843"/>
<Point x="7197" y="9843"/>
</positions>
</Edge>
<EquationGE kind="OBJ_LIT" presentable="!ed/17d0/71E6/226C/58f7552d5108">
<position>
<Point x="2455" y="4805"/>
</position>
<size>
<Size width="170" height="317"/>
</size>
</EquationGE>
<EquationGE kind="OBJ_LIT" presentable="!ed/17f9/71E6/226C/58f755392373">
<position>
<Point x="2455" y="5334"/>
</position>
<size>
<Size width="169" height="318"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/180b/71E6/226C/58f7553f7a67">
<position>
<Point x="3387" y="4763"/>
</position>
<size>
<Size width="989" height="397"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1822/71E6/226C/58f755426322">
<position>
<Point x="3387" y="5313"/>
</position>
<size>
<Size width="989" height="397"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/182c/71E6/226C/58f7554d48d5">
<position>
<Point x="4784" y="4466"/>
</position>
<size>
<Size width="989" height="1583"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/17f9/71E6/226C/58f755392373" dstEquation="!ed/1822/71E6/226C/58f755426322">
<positions>
<Point x="2625" y="5503"/>
<Point x="3006" y="5503"/>
<Point x="3006" y="5503"/>
<Point x="3387" y="5503"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/17d0/71E6/226C/58f7552d5108" dstEquation="!ed/180b/71E6/226C/58f7553f7a67">
<positions>
<Point x="2625" y="4974"/>
<Point x="3006" y="4974"/>
<Point x="3006" y="4974"/>
<Point x="3387" y="4974"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/182c/71E6/226C/58f7554d48d5" dstEquation="!ed/5059/654E/1838/58f71335bb8">
<positions>
<Point x="5779" y="5271"/>
<Point x="6456" y="5271"/>
<Point x="6456" y="5271"/>
<Point x="7154" y="5271"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/1822/71E6/226C/58f755426322" dstEquation="!ed/182c/71E6/226C/58f7554d48d5">
<positions>
<Point x="4382" y="5525"/>
<Point x="4572" y="5525"/>
<Point x="4572" y="5525"/>
<Point x="4784" y="5525"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/180b/71E6/226C/58f7553f7a67" dstEquation="!ed/182c/71E6/226C/58f7554d48d5">
<positions>
<Point x="4382" y="4974"/>
<Point x="4572" y="4974"/>
<Point x="4572" y="4974"/>
<Point x="4784" y="4974"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
<kcg:Pragma>
doc &quot;OperatorKind_1&quot; {OperatorKind = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Title_1&quot; {Title = &quot;Title : &quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Author_1&quot; {Author = &quot; Modified by: AP. PORTE&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Date_1&quot; {Date = &quot;dd/mm/yyyy&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;CopyRight_1&quot; {CopyRight = &quot; (C) ZSSM. All rights reserved.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Description_1&quot; {Description = &quot; Description: &quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Change_1&quot; {Change = &quot; PR: First issue - No change.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Title_1&quot; {Title = &quot;Title : combine_poles_1&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Author_1&quot; {Author = &quot; Modified by: AP. PORTE&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Date_1&quot; {Date = &quot;23/05/2017&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;CopyRight_1&quot; {CopyRight = &quot; (C) ZSSM. All rights reserved.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Change_1&quot; {Change = &quot; PR: First issue - No change.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Description_1&quot; {Description = &quot; Description: create combination of indexes for each closest pole &quot;}
</kcg:Pragma>
</pragmas>
</Operator>

View File

@@ -1,388 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Resolution ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Resolution TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
OperatorKind ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
OperatorKind ENUM
{
NT_ENUM_VALUES {"Architecture", "Functional", "Refinement", "Library", "Derived", "Robustness", "TBD"},
NT_DEFAULT_VALUE "TBD" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Title ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Title TEXT
{
NT_DEFAULT_VALUE "Title : " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Author ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 250 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Author TEXT
{
NT_DEFAULT_VALUE " Modified by: AP. PORTE" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Date ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 250 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 100 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Date DATE
{
NT_DEFAULT_VALUE "dd/mm/yyyy" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
CopyRight ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 40 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 21 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
CopyRight TEXT
{
NT_DEFAULT_VALUE " (C) ZSSM. All rights reserved." ,
NT_INCRUSTABLE T ,
NT_EDITABLE F },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Description ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 350 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 400 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 120 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Description TEXT
{
NT_DEFAULT_VALUE " Description: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Change ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 60 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 60 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Change TEXT
{
NT_DEFAULT_VALUE " PR: First issue - No change." ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Comment ::= {
{"!ed/ffb/1252/1D14/58f7866e23a", "Comment_1","" , T },
{"!ed/ffa/1252/1D14/58f7866e5fd9", "Comment_1","" , T },
{"!ed/138d/5C75/1654/58f8ab4a162f", "Comment_1","" , T },
{"!ed/1022/1252/1D14/58f7867d597c", "Comment_1","" , T }}
Unit ::= {
{"!ed/ffb/1252/1D14/58f7866e23a", "Unit_2","TBD" , T },
{"!ed/ffa/1252/1D14/58f7866e5fd9", "Unit_2","TBD" , T },
{"!ed/138d/5C75/1654/58f8ab4a162f", "Unit_2","TBD" , T },
{"!ed/1022/1252/1D14/58f7867d597c", "Unit_2","TBD" , T }}
Range ::= {
{"!ed/ffb/1252/1D14/58f7866e23a", "Range_3","TBD" , T },
{"!ed/ffa/1252/1D14/58f7866e5fd9", "Range_3","TBD" , T },
{"!ed/138d/5C75/1654/58f8ab4a162f", "Range_3","TBD" , T },
{"!ed/1022/1252/1D14/58f7867d597c", "Range_3","TBD" , T }}
Resolution ::= {
{"!ed/ffb/1252/1D14/58f7866e23a", "Resolution_4","TBD" , T },
{"!ed/ffa/1252/1D14/58f7866e5fd9", "Resolution_4","TBD" , T },
{"!ed/138d/5C75/1654/58f8ab4a162f", "Resolution_4","TBD" , T },
{"!ed/1022/1252/1D14/58f7867d597c", "Resolution_4","TBD" , T }}
OperatorKind ::= {
{"!ed/fc0/1252/1D14/58f7863b74a4", "OperatorKind_1","TBD" , T }}
Title ::= {
{"!ed/fc1/1252/1D14/58f7863b387a", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , "Title : compute_distances_1" , T }}
Author ::= {
{"!ed/fc1/1252/1D14/58f7863b387a", "Author_2",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Modified by: AP. PORTE" , T }}
Date ::= {
{"!ed/fc1/1252/1D14/58f7863b387a", "Date_3",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , "19/04/2017" , T }}
CopyRight ::= {
{"!ed/fc1/1252/1D14/58f7863b387a", "CopyRight_4",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T }}
Description ::= {
{"!ed/fc1/1252/1D14/58f7863b387a", "Description_5",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description:
compute all distances" , T }}
Change ::= {
{"!ed/fc1/1252/1D14/58f7863b387a", "Change_6",T , T , "RELATIVE" , 0.000000 , 60.000000 , T , T , 350 , 60 , 1 , " PR: First issue - No change." , T }}
END

View File

@@ -1,882 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" visibility="private" name="compute_distances">
<inputs>
<Variable name="altitude">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/ff9/1252/1D14/58f7866e110d"/>
</pragmas>
</Variable>
<Variable name="speed">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/ff8/1252/1D14/58f7866e7fbe"/>
</pragmas>
</Variable>
<Variable name="distance">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/ff7/1252/1D14/58f7866e59a1"/>
</pragmas>
</Variable>
<Variable name="payload_mass">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/ff6/1252/1D14/58f7866e6022"/>
</pragmas>
</Variable>
<Variable name="values_combinations">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="4"/>
</size>
</Table>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1022/1252/1D14/58f7867d597c"/>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="dist_null">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/ffb/1252/1D14/58f7866e23a"/>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
<Variable name="distances">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/ffa/1252/1D14/58f7866e5fd9"/>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
<Variable name="is_one_dist_null">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/138d/5C75/1654/58f8ab4a162f"/>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</outputs>
<locals>
<Variable name="_L8">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/100c/1252/1D14/58f7866e2311"/>
</pragmas>
</Variable>
<Variable name="_L7">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="4"/>
</size>
</Table>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/100a/1252/1D14/58f7866e715d"/>
</pragmas>
</Variable>
<Variable name="_L6">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1008/1252/1D14/58f7866e5e0a"/>
</pragmas>
</Variable>
<Variable name="_L4">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1005/1252/1D14/58f7866e2413"/>
</pragmas>
</Variable>
<Variable name="_L5">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1006/1252/1D14/58f7866e55e9"/>
</pragmas>
</Variable>
<Variable name="_L3">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1002/1252/1D14/58f7866e1c2f"/>
</pragmas>
</Variable>
<Variable name="_L2">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1000/1252/1D14/58f7866e56f7"/>
</pragmas>
</Variable>
<Variable name="_L1">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="4"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/ffd/1252/1D14/58f7866e148d"/>
</pragmas>
</Variable>
<Variable name="_L9">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="4"/>
</size>
</Table>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1025/1252/1D14/58f7868676f8"/>
</pragmas>
</Variable>
<Variable name="_L10">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1369/5C75/1654/58f8a565188d"/>
</pragmas>
</Variable>
<Variable name="_L11">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1371/5C75/1654/58f8a56e2377"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L1 = [_L2, _L3, _L6, _L8]; -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<!-- [_L2, _L3, _L6, _L8] -->
<DataArrayOp name="1">
<data>
<IdExpression>
<path>
<ConstVarRef name="_L2"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L3"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L6"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L8"/>
</path>
</IdExpression>
</data>
</DataArrayOp>
</right>
<pragmas>
<ed:Equation oid="!ed/ffc/1252/1D14/58f7866e69f8"/>
</pragmas>
</Equation>
<!-- dist_null = _L5; -->
<Equation>
<lefts>
<VariableRef name="dist_null"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L5"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/ffe/1252/1D14/58f7866e4415"/>
</pragmas>
</Equation>
<!-- _L2 = payload_mass; -->
<Equation>
<lefts>
<VariableRef name="_L2"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="payload_mass"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/fff/1252/1D14/58f7866e6996"/>
</pragmas>
</Equation>
<!-- _L3 = distance; -->
<Equation>
<lefts>
<VariableRef name="_L3"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="distance"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1001/1252/1D14/58f7866e4694"/>
</pragmas>
</Equation>
<!-- distances = _L4; -->
<Equation>
<lefts>
<VariableRef name="distances"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L4"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1003/1252/1D14/58f7866eaf7"/>
</pragmas>
</Equation>
<!-- _L4, _L5 = (map map_compute_distances <<16>>)(_L7, _L9); -->
<Equation>
<lefts>
<VariableRef name="_L4"/>
<VariableRef name="_L5"/>
</lefts>
<right>
<!-- (map map_compute_distances <<16>>)(_L7, _L9) -->
<CallExpression>
<operator>
<IteratorOp name="2" iterator="map">
<operator>
<OpCall name="1">
<operator>
<OperatorRef name="map_compute_distances"/>
</operator>
</OpCall>
</operator>
<size>
<ConstValue value="16"/>
</size>
</IteratorOp>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L7"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L9"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1004/1252/1D14/58f7866e1907"/>
</pragmas>
</Equation>
<!-- _L6 = speed; -->
<Equation>
<lefts>
<VariableRef name="_L6"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="speed"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1007/1252/1D14/58f7866e2f6a"/>
</pragmas>
</Equation>
<!-- _L7 = _L1 ^ 16; -->
<Equation>
<lefts>
<VariableRef name="_L7"/>
</lefts>
<right>
<!-- _L1 ^ 16 -->
<ScalarToVectorOp name="1">
<flow>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</items>
</ListExpression>
</flow>
<size>
<ConstValue value="16"/>
</size>
</ScalarToVectorOp>
</right>
<pragmas>
<ed:Equation oid="!ed/1009/1252/1D14/58f7866e482f"/>
</pragmas>
</Equation>
<!-- _L8 = altitude; -->
<Equation>
<lefts>
<VariableRef name="_L8"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="altitude"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/100b/1252/1D14/58f7866e21f1"/>
</pragmas>
</Equation>
<!-- _L9 = values_combinations; -->
<Equation>
<lefts>
<VariableRef name="_L9"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="values_combinations"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1024/1252/1D14/58f7868637b1"/>
</pragmas>
</Equation>
<!-- _L10 = (fold $or$ <<16>>)(_L11, _L5); -->
<Equation>
<lefts>
<VariableRef name="_L10"/>
</lefts>
<right>
<!-- (fold $or$ <<16>>)(_L11, _L5) -->
<CallExpression>
<operator>
<IteratorOp name="4" iterator="fold">
<operator>
<OpCall name="1">
<operator>
<OperatorRef name="$or$"/>
</operator>
</OpCall>
</operator>
<size>
<ConstValue value="16"/>
</size>
</IteratorOp>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L11"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L5"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1368/5C75/1654/58f8a565366f"/>
</pragmas>
</Equation>
<!-- _L11 = false; -->
<Equation>
<lefts>
<VariableRef name="_L11"/>
</lefts>
<right>
<ConstValue value="false"/>
</right>
<pragmas>
<ed:Equation oid="!ed/1370/5C75/1654/58f8a56e7de1"/>
</pragmas>
</Equation>
<!-- is_one_dist_null = _L10; -->
<Equation>
<lefts>
<VariableRef name="is_one_dist_null"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L10"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/138e/5C75/1654/58f8ab5233be"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/fc0/1252/1D14/58f7863b74a4" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<comment>compute distances of all poles to the input parameters</comment>
<comment>provides one output to identify if one distance is null (if input parameters are on one item of the array)</comment>
<diagrams>
<NetDiagram name="compute_distances_1" landscape="true" format="A4 (210 297)" oid="!ed/fc1/1252/1D14/58f7863b387a">
<presentationElements>
<EquationGE presentable="!ed/ffc/1252/1D14/58f7866e69f8">
<position>
<Point x="4890" y="6964"/>
</position>
<size>
<Size width="973" height="973"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/ffe/1252/1D14/58f7866e4415">
<position>
<Point x="15304" y="10372"/>
</position>
<size>
<Size width="339" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/fff/1252/1D14/58f7866e6996">
<position>
<Point x="3747" y="3344"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1001/1252/1D14/58f7866e4694">
<position>
<Point x="3747" y="4276"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1003/1252/1D14/58f7866eaf7">
<position>
<Point x="13166" y="7197"/>
</position>
<size>
<Size width="339" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1004/1252/1D14/58f7866e1907">
<position>
<Point x="8043" y="6244"/>
</position>
<size>
<Size width="4275" height="3641"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1007/1252/1D14/58f7866e2f6a">
<position>
<Point x="3747" y="5207"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1009/1252/1D14/58f7866e482f">
<position>
<Point x="6541" y="6964"/>
</position>
<size>
<Size width="973" height="973"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/100b/1252/1D14/58f7866e21f1">
<position>
<Point x="3747" y="6138"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="4" srcEquation="!ed/100b/1252/1D14/58f7866e21f1" dstEquation="!ed/ffc/1252/1D14/58f7866e69f8">
<positions>
<Point x="4001" y="6392"/>
<Point x="4191" y="6392"/>
<Point x="4191" y="7747"/>
<Point x="4890" y="7747"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1004/1252/1D14/58f7866e1907" dstEquation="!ed/1003/1252/1D14/58f7866eaf7">
<positions>
<Point x="12319" y="7451"/>
<Point x="12764" y="7451"/>
<Point x="12764" y="7451"/>
<Point x="13208" y="7451"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="3" srcEquation="!ed/1007/1252/1D14/58f7866e2f6a" dstEquation="!ed/ffc/1252/1D14/58f7866e69f8">
<positions>
<Point x="4001" y="5461"/>
<Point x="4360" y="5461"/>
<Point x="4360" y="7557"/>
<Point x="4890" y="7557"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1009/1252/1D14/58f7866e482f" dstEquation="!ed/1004/1252/1D14/58f7866e1907">
<positions>
<Point x="7514" y="7451"/>
<Point x="7768" y="7451"/>
<Point x="7768" y="7451"/>
<Point x="8043" y="7451"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/1001/1252/1D14/58f7866e4694" dstEquation="!ed/ffc/1252/1D14/58f7866e69f8">
<positions>
<Point x="4001" y="4530"/>
<Point x="4530" y="4530"/>
<Point x="4530" y="7345"/>
<Point x="4890" y="7345"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/ffc/1252/1D14/58f7866e69f8" dstEquation="!ed/1009/1252/1D14/58f7866e482f">
<positions>
<Point x="5863" y="7451"/>
<Point x="6202" y="7451"/>
<Point x="6202" y="7451"/>
<Point x="6541" y="7451"/>
</positions>
</Edge>
<Edge leftVarIndex="2" rightExprIndex="1" srcEquation="!ed/1004/1252/1D14/58f7866e1907" dstEquation="!ed/ffe/1252/1D14/58f7866e4415">
<positions>
<Point x="12319" y="8678"/>
<Point x="12764" y="8678"/>
<Point x="12764" y="10626"/>
<Point x="15346" y="10626"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/fff/1252/1D14/58f7866e6996" dstEquation="!ed/ffc/1252/1D14/58f7866e69f8">
<positions>
<Point x="4001" y="3598"/>
<Point x="4699" y="3598"/>
<Point x="4699" y="7154"/>
<Point x="4890" y="7154"/>
</positions>
</Edge>
<EquationGE presentable="!ed/1024/1252/1D14/58f7868637b1">
<position>
<Point x="3747" y="8424"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/1024/1252/1D14/58f7868637b1" dstEquation="!ed/1004/1252/1D14/58f7866e1907">
<positions>
<Point x="4001" y="8678"/>
<Point x="6011" y="8678"/>
<Point x="6011" y="8678"/>
<Point x="8043" y="8678"/>
</positions>
</Edge>
<EquationGE presentable="!ed/1368/5C75/1654/58f8a565366f">
<position>
<Point x="16947" y="8438"/>
</position>
<size>
<Size width="2069" height="1243"/>
</size>
</EquationGE>
<EquationGE kind="OBJ_LIT" presentable="!ed/1370/5C75/1654/58f8a56e7de1">
<position>
<Point x="15833" y="8551"/>
</position>
<size>
<Size width="169" height="318"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/138e/5C75/1654/58f8ab5233be">
<position>
<Point x="19706" y="8805"/>
</position>
<size>
<Size width="338" height="508"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1368/5C75/1654/58f8a565366f" dstEquation="!ed/138e/5C75/1654/58f8ab5233be">
<positions>
<Point x="19008" y="9059"/>
<Point x="19368" y="9059"/>
<Point x="19368" y="9059"/>
<Point x="19749" y="9059"/>
</positions>
</Edge>
<Edge leftVarIndex="2" rightExprIndex="2" srcEquation="!ed/1004/1252/1D14/58f7866e1907" dstEquation="!ed/1368/5C75/1654/58f8a565366f">
<positions>
<Point x="12319" y="8678"/>
<Point x="14626" y="8678"/>
<Point x="14626" y="9271"/>
<Point x="16955" y="9271"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1370/5C75/1654/58f8a56e7de1" dstEquation="!ed/1368/5C75/1654/58f8a565366f">
<positions>
<Point x="16002" y="8721"/>
<Point x="16468" y="8721"/>
<Point x="16468" y="8848"/>
<Point x="16955" y="8848"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
<kcg:Pragma>
doc &quot;OperatorKind_1&quot; {OperatorKind = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Title_1&quot; {Title = &quot;Title : compute_distances_1&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Author_2&quot; {Author = &quot; Modified by: AP. PORTE&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Date_3&quot; {Date = &quot;19/04/2017&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;CopyRight_4&quot; {CopyRight = &quot; (C) ZSSM. All rights reserved.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Description_5&quot; {Description = &quot; Description: compute all distances&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Change_6&quot; {Change = &quot; PR: First issue - No change.&quot;}
</kcg:Pragma>
</pragmas>
</Operator>

View File

@@ -1,406 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Change ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 60 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 60 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Change TEXT
{
NT_DEFAULT_VALUE " PR: First issue - No change." ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Description ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 350 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 400 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 120 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Description TEXT
{
NT_DEFAULT_VALUE " Description: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
CopyRight ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 40 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 21 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
CopyRight TEXT
{
NT_DEFAULT_VALUE " (C) ZSSM. All rights reserved." ,
NT_INCRUSTABLE T ,
NT_EDITABLE F },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Date ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 250 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 100 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Date DATE
{
NT_DEFAULT_VALUE "dd/mm/yyyy" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Author ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 250 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Author TEXT
{
NT_DEFAULT_VALUE " Modified by: AP. PORTE" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Title ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Title TEXT
{
NT_DEFAULT_VALUE "Title : " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
OperatorKind ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
OperatorKind ENUM
{
NT_ENUM_VALUES {"Architecture", "Functional", "Refinement", "Library", "Derived", "Robustness", "TBD"},
NT_DEFAULT_VALUE "TBD" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Resolution ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Resolution TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Comment_Default ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Description TEXT
{
NT_DEFAULT_VALUE "-" ,
NT_FIELD_HEIGHT 10 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE F ,
NT_PRINTABLE F }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Change ::= {
{"!ed/520f/285/D14/594d31224386", "Change_6",T , T , "RELATIVE" , 0.000000 , 60.000000 , T , T , 350 , 60 , 1 , " PR: First issue - No change." , T }}
Description ::= {
{"!ed/520f/285/D14/594d31224386", "Description_5",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description: compute flight viability
---! ToBeCompleted !--" , T }}
CopyRight ::= {
{"!ed/520f/285/D14/594d31224386", "CopyRight_4",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T }}
Date ::= {
{"!ed/520f/285/D14/594d31224386", "Date_3",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , "23/06/2017" , T }}
Author ::= {
{"!ed/520f/285/D14/594d31224386", "Author_2",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Modified by: AP. PORTE" , T }}
Title ::= {
{"!ed/520f/285/D14/594d31224386", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , "Title : compute_flight_viability_1" , T }}
OperatorKind ::= {
{"!ed/520e/285/D14/594d31221e38", "OperatorKind_1","TBD" , T }}
Resolution ::= {
{"!ed/5253/285/D14/594d319629ab", "Resolution_4","TBD" , T },
{"!ed/5256/285/D14/594d319d1234", "Resolution_4","TBD" , T },
{"!ed/525e/285/D14/594d31bd4369", "Resolution_4","0.1" , T },
{"!ed/5266/285/D14/594d321662a9", "Resolution_4","1" , T }}
Range ::= {
{"!ed/5253/285/D14/594d319629ab", "Range_3","TBD" , T },
{"!ed/5256/285/D14/594d319d1234", "Range_3","TBD" , T },
{"!ed/525e/285/D14/594d31bd4369", "Range_3","[1;5]" , T },
{"!ed/5266/285/D14/594d321662a9", "Range_3","[0;500]" , T }}
Comment ::= {
{"!ed/5253/285/D14/594d319629ab", "Comment_1","" , T },
{"!ed/5256/285/D14/594d319d1234", "Comment_1","" , T },
{"!ed/525e/285/D14/594d31bd4369", "Comment_1","payload mass from ground station" , T },
{"!ed/5266/285/D14/594d321662a9", "Comment_1","current energy storage" , T }}
Unit ::= {
{"!ed/5253/285/D14/594d319629ab", "Unit_2","TBD" , T },
{"!ed/5256/285/D14/594d319d1234", "Unit_2","TBD" , T },
{"!ed/525e/285/D14/594d31bd4369", "Unit_2","kg" , T },
{"!ed/5266/285/D14/594d321662a9", "Unit_2","kJ" , T }}
Comment_Default ::= {
{"!ed/5288/285/D14/594d328d5c6b", "Comment_Default_1","-" , F }}
END

View File

@@ -1,354 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="node" name="compute_flight_viability">
<inputs>
<Variable name="nav_parameters">
<type>
<NamedType>
<type>
<TypeRef name="types_mm::nav_param_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/5253/285/D14/594d319629ab"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
<Variable name="nav_mode_rp">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/5256/285/D14/594d319d1234"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
<Variable name="payload_mass">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/525e/285/D14/594d31bd4369"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;kg&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;payload mass from ground station&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;[1;5]&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;0.1&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
<Variable name="energy_level">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/5266/285/D14/594d321662a9"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;kJ&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;current energy storage&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;[0;500]&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;1&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</inputs>
<locals>
<Variable name="LL_viability_array">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/5288/285/D14/594d328d5c6b"/>
</pragmas>
</Variable>
</locals>
<data>
<IfBlock name="navigation_mode">
<block>
<IfNode>
<if>
<IdExpression>
<path>
<ConstVarRef name="nav_mode_rp"/>
</path>
</IdExpression>
</if>
<then>
<Action>
<locals>
<Variable name="_L1">
<type>
<NamedType>
<type>
<TypeRef name="conf_mm::viablility_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/5298/285/D14/594d32b44f89"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- LL_viability_array = _L1; -->
<Equation>
<lefts>
<VariableRef name="LL_viability_array"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/528b/285/D14/594d329a1a64"/>
</pragmas>
</Equation>
<!-- _L1 = conf_mm::Viability_RPmode_cruise; -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="conf_mm::Viability_RPmode_cruise"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/5297/285/D14/594d32b41d74"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Action oid="!ed/527e/285/D14/594d32601ee6"/>
</pragmas>
</Action>
</then>
<else>
<Action>
<locals>
<Variable name="_L1">
<type>
<NamedType>
<type>
<TypeRef name="conf_mm::viablility_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/529e/285/D14/594d32c77444"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- LL_viability_array = _L1; -->
<Equation>
<lefts>
<VariableRef name="LL_viability_array"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/5296/285/D14/594d329d152f"/>
</pragmas>
</Equation>
<!-- _L1 = conf_mm::Viability_Amode_cruise; -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="conf_mm::Viability_Amode_cruise"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/529d/285/D14/594d32c775a8"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Action oid="!ed/527f/285/D14/594d3260672d"/>
</pragmas>
</Action>
</else>
<pragmas>
<ed:IfNode oid="!ed/527d/285/D14/594d32601ed3"/>
</pragmas>
</IfNode>
</block>
<pragmas>
<ed:IfBlock oid="!ed/5278/285/D14/594d325e1a8e"/>
</pragmas>
</IfBlock>
</data>
<pragmas>
<ed:Operator oid="!ed/520e/285/D14/594d31221e38" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<diagrams>
<NetDiagram name="compute_flight_viability_1" landscape="true" format="A4 (210 297)" oid="!ed/520f/285/D14/594d31224386">
<presentationElements>
<IfBlockGE presentable="!ed/5278/285/D14/594d325e1a8e">
<position>
<Point x="783" y="3789"/>
</position>
<size>
<Size width="9377" height="2455"/>
</size>
</IfBlockGE>
<ActionGE presentable="!ed/527e/285/D14/594d32601ee6">
<position>
<Point x="2244" y="4191"/>
</position>
<size>
<Size width="7704" height="741"/>
</size>
</ActionGE>
<ActionGE presentable="!ed/527f/285/D14/594d3260672d">
<position>
<Point x="2244" y="5144"/>
</position>
<size>
<Size width="7704" height="740"/>
</size>
</ActionGE>
<IfNodeGE labelWidth="1609" presentable="!ed/527d/285/D14/594d32601ed3">
<position>
<Point x="1143" y="4255"/>
</position>
</IfNodeGE>
<EquationGE presentable="!ed/528b/285/D14/594d329a1a64">
<position>
<Point x="7112" y="4297"/>
</position>
<size>
<Size width="360" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/5296/285/D14/594d329d152f">
<position>
<Point x="7112" y="5271"/>
</position>
<size>
<Size width="360" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/5297/285/D14/594d32b41d74">
<position>
<Point x="6033" y="4297"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/5297/285/D14/594d32b41d74" dstEquation="!ed/528b/285/D14/594d329a1a64">
<positions>
<Point x="6287" y="4551"/>
<Point x="6689" y="4551"/>
<Point x="6689" y="4551"/>
<Point x="7112" y="4551"/>
</positions>
</Edge>
<EquationGE presentable="!ed/529d/285/D14/594d32c775a8">
<position>
<Point x="6033" y="5271"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/529d/285/D14/594d32c775a8" dstEquation="!ed/5296/285/D14/594d329d152f">
<positions>
<Point x="6287" y="5525"/>
<Point x="6689" y="5525"/>
<Point x="6689" y="5525"/>
<Point x="7112" y="5525"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
<kcg:Pragma>
doc &quot;OperatorKind_1&quot; {OperatorKind = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Title_1&quot; {Title = &quot;Title : compute_flight_viability_1&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Author_2&quot; {Author = &quot; Modified by: AP. PORTE&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Date_3&quot; {Date = &quot;23/06/2017&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;CopyRight_4&quot; {CopyRight = &quot; (C) ZSSM. All rights reserved.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Change_6&quot; {Change = &quot; PR: First issue - No change.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Description_5&quot; {Description = &quot; Description: compute flight viability ---! ToBeCompleted !--&quot;}
</kcg:Pragma>
</pragmas>
</Operator>

View File

@@ -1,384 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Resolution ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Resolution TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
OperatorKind ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
OperatorKind ENUM
{
NT_ENUM_VALUES {"Architecture", "Functional", "Refinement", "Library", "Derived", "Robustness", "TBD"},
NT_DEFAULT_VALUE "TBD" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Title ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Title TEXT
{
NT_DEFAULT_VALUE "Title : " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Author ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 250 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Author TEXT
{
NT_DEFAULT_VALUE " Modified by: AP. PORTE" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Date ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 250 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 100 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Date DATE
{
NT_DEFAULT_VALUE "dd/mm/yyyy" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
CopyRight ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 40 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 21 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
CopyRight TEXT
{
NT_DEFAULT_VALUE " (C) ZSSM. All rights reserved." ,
NT_INCRUSTABLE T ,
NT_EDITABLE F },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Description ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 350 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 400 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 120 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Description TEXT
{
NT_DEFAULT_VALUE " Description: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Change ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 60 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 60 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Change TEXT
{
NT_DEFAULT_VALUE " PR: First issue - No change." ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Comment ::= {
{"!ed/1217/745C/15C0/58f85cfd2bea", "Comment_1","" , T },
{"!ed/122a/745C/15C0/58f85d186bd1", "Comment_1","" , T },
{"!ed/1216/745C/15C0/58f85cfd23cb", "Comment_1","" , T }}
Unit ::= {
{"!ed/1217/745C/15C0/58f85cfd2bea", "Unit_2","TBD" , T },
{"!ed/122a/745C/15C0/58f85d186bd1", "Unit_2","TBD" , T },
{"!ed/1216/745C/15C0/58f85cfd23cb", "Unit_2","TBD" , T }}
Range ::= {
{"!ed/1217/745C/15C0/58f85cfd2bea", "Range_3","[0.1;10.0]" , T },
{"!ed/122a/745C/15C0/58f85d186bd1", "Range_3","TBD" , T },
{"!ed/1216/745C/15C0/58f85cfd23cb", "Range_3","TBD" , T }}
Resolution ::= {
{"!ed/1217/745C/15C0/58f85cfd2bea", "Resolution_4","TBD" , T },
{"!ed/122a/745C/15C0/58f85d186bd1", "Resolution_4","TBD" , T },
{"!ed/1216/745C/15C0/58f85cfd23cb", "Resolution_4","TBD" , T }}
OperatorKind ::= {
{"!ed/11f5/745C/15C0/58f85ce91e6", "OperatorKind_1","TBD" , T }}
Title ::= {
{"!ed/11f6/745C/15C0/58f85ce9547d", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , "Title : compute_inverse_exp_1" , T }}
Author ::= {
{"!ed/11f6/745C/15C0/58f85ce9547d", "Author_2",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Modified by: AP. PORTE" , T }}
Date ::= {
{"!ed/11f6/745C/15C0/58f85ce9547d", "Date_3",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , "20/04/2017" , T }}
CopyRight ::= {
{"!ed/11f6/745C/15C0/58f85ce9547d", "CopyRight_4",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T }}
Description ::= {
{"!ed/11f6/745C/15C0/58f85ce9547d", "Description_5",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description:
compute (1/val)^exp" , T }}
Change ::= {
{"!ed/11f6/745C/15C0/58f85ce9547d", "Change_6",T , T , "RELATIVE" , 0.000000 , 60.000000 , T , T , 350 , 60 , 1 , " PR: First issue - No change." , T }}
END

View File

@@ -1,477 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" name="compute_inverse_exp">
<inputs>
<Variable name="val">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1216/745C/15C0/58f85cfd23cb"/>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
<Variable name="exp">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1217/745C/15C0/58f85cfd2bea" hidden="true"/>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;[0.1;10.0]&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="inverse">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/122a/745C/15C0/58f85d186bd1"/>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</outputs>
<locals>
<Variable name="_L7">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1225/745C/15C0/58f85cfd68bb"/>
</pragmas>
</Variable>
<Variable name="_L6">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1223/745C/15C0/58f85cfd242a"/>
</pragmas>
</Variable>
<Variable name="_L4">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1220/745C/15C0/58f85cfd4fa4"/>
</pragmas>
</Variable>
<Variable name="_L5">
<type>
<NamedType>
<type>
<TypeRef name="bool"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1221/745C/15C0/58f85cfd748d"/>
</pragmas>
</Variable>
<Variable name="_L3">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/121e/745C/15C0/58f85cfd1f99"/>
</pragmas>
</Variable>
<Variable name="_L2">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/121b/745C/15C0/58f85cfd4584"/>
</pragmas>
</Variable>
<Variable name="_L1">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1219/745C/15C0/58f85cfd7d7b"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L1 = 1.0; -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<ConstValue value="1.0"/>
</right>
<pragmas>
<ed:Equation oid="!ed/1218/745C/15C0/58f85cfd1c86"/>
</pragmas>
</Equation>
<!-- _L2 = exp; -->
<Equation>
<lefts>
<VariableRef name="_L2"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="exp"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/121a/745C/15C0/58f85cfd192f"/>
</pragmas>
</Equation>
<!-- _ = _L5; -->
<Equation>
<lefts>
<VariableRef name="_"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L5"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/121c/745C/15C0/58f85cfd50a3"/>
</pragmas>
</Equation>
<!-- _L3 = 1.0; -->
<Equation>
<lefts>
<VariableRef name="_L3"/>
</lefts>
<right>
<ConstValue value="1.0"/>
</right>
<pragmas>
<ed:Equation oid="!ed/121d/745C/15C0/58f85cfd139d"/>
</pragmas>
</Equation>
<!-- _L4, _L5 = division_by_zero_safe(_L3, _L6, _L1); -->
<Equation>
<lefts>
<VariableRef name="_L4"/>
<VariableRef name="_L5"/>
</lefts>
<right>
<!-- division_by_zero_safe(_L3, _L6, _L1) -->
<CallExpression>
<operator>
<OpCall name="1">
<operator>
<OperatorRef name="division_by_zero_safe"/>
</operator>
</OpCall>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L3"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L6"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/121f/745C/15C0/58f85cfd371b"/>
</pragmas>
</Equation>
<!-- _L6 = val; -->
<Equation>
<lefts>
<VariableRef name="_L6"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="val"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1222/745C/15C0/58f85cfd573a"/>
</pragmas>
</Equation>
<!-- _L7 = PowerRR(_L4, _L2); -->
<Equation>
<lefts>
<VariableRef name="_L7"/>
</lefts>
<right>
<!-- PowerRR(_L4, _L2) -->
<CallExpression>
<operator>
<OpCall name="1">
<operator>
<OperatorRef name="PowerRR"/>
</operator>
</OpCall>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L4"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L2"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1224/745C/15C0/58f85cfd62e6"/>
</pragmas>
</Equation>
<!-- inverse = _L7; -->
<Equation>
<lefts>
<VariableRef name="inverse"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L7"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1233/745C/15C0/58f85d249e9"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/11f5/745C/15C0/58f85ce91e6" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<diagrams>
<NetDiagram name="compute_inverse_exp_1" landscape="true" format="A4 (210 297)" oid="!ed/11f6/745C/15C0/58f85ce9547d">
<presentationElements>
<EquationGE kind="OBJ_LIT" presentable="!ed/1218/745C/15C0/58f85cfd1c86">
<position>
<Point x="5165" y="7281"/>
</position>
<size>
<Size width="169" height="318"/>
</size>
</EquationGE>
<EquationGE kind="OBJ_HIDDEN" presentable="!ed/121a/745C/15C0/58f85cfd192f">
<position>
<Point x="8424" y="6054"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE kind="OBJ_TERMINATOR" presentable="!ed/121c/745C/15C0/58f85cfd50a3">
<position>
<Point x="7366" y="6054"/>
</position>
<size>
<Size width="508" height="508"/>
</size>
</EquationGE>
<EquationGE kind="OBJ_LIT" presentable="!ed/121d/745C/15C0/58f85cfd139d">
<position>
<Point x="3620" y="5588"/>
</position>
<size>
<Size width="169" height="318"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/121f/745C/15C0/58f85cfd371b">
<position>
<Point x="4530" y="5186"/>
</position>
<size>
<Size width="2413" height="1693"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1222/745C/15C0/58f85cfd573a">
<position>
<Point x="3535" y="6054"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE kind="OBJ_IMPOP" presentable="!ed/1224/745C/15C0/58f85cfd62e6">
<position>
<Point x="9716" y="5186"/>
</position>
<size>
<Size width="2857" height="1693"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/121a/745C/15C0/58f85cfd192f" dstEquation="!ed/1224/745C/15C0/58f85cfd62e6">
<positions>
<Point x="8678" y="6308"/>
<Point x="9186" y="6308"/>
<Point x="9186" y="6308"/>
<Point x="9716" y="6308"/>
</positions>
</Edge>
<EquationGE presentable="!ed/1233/745C/15C0/58f85d249e9">
<position>
<Point x="13187" y="5779"/>
</position>
<size>
<Size width="339" height="508"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1224/745C/15C0/58f85cfd62e6" dstEquation="!ed/1233/745C/15C0/58f85d249e9">
<positions>
<Point x="12573" y="6033"/>
<Point x="12891" y="6033"/>
<Point x="12891" y="6033"/>
<Point x="13229" y="6033"/>
</positions>
</Edge>
<Edge leftVarIndex="2" rightExprIndex="1" srcEquation="!ed/121f/745C/15C0/58f85cfd371b" dstEquation="!ed/121c/745C/15C0/58f85cfd50a3">
<positions>
<Point x="6943" y="6308"/>
<Point x="7281" y="6308"/>
<Point x="7281" y="6308"/>
<Point x="7620" y="6308"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/121f/745C/15C0/58f85cfd371b" dstEquation="!ed/1224/745C/15C0/58f85cfd62e6">
<positions>
<Point x="6943" y="5757"/>
<Point x="8319" y="5757"/>
<Point x="8319" y="5757"/>
<Point x="9716" y="5757"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="3" srcEquation="!ed/1218/745C/15C0/58f85cfd1c86" dstEquation="!ed/121f/745C/15C0/58f85cfd371b">
<positions>
<Point x="5334" y="7451"/>
<Point x="5736" y="7451"/>
<Point x="5736" y="6879"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/1222/745C/15C0/58f85cfd573a" dstEquation="!ed/121f/745C/15C0/58f85cfd371b">
<positions>
<Point x="3789" y="6308"/>
<Point x="4149" y="6308"/>
<Point x="4149" y="6308"/>
<Point x="4530" y="6308"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/121d/745C/15C0/58f85cfd139d" dstEquation="!ed/121f/745C/15C0/58f85cfd371b">
<positions>
<Point x="3789" y="5757"/>
<Point x="4149" y="5757"/>
<Point x="4149" y="5757"/>
<Point x="4530" y="5757"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
<kcg:Pragma>
doc &quot;OperatorKind_1&quot; {OperatorKind = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Title_1&quot; {Title = &quot;Title : compute_inverse_exp_1&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Author_2&quot; {Author = &quot; Modified by: AP. PORTE&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Date_3&quot; {Date = &quot;20/04/2017&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;CopyRight_4&quot; {CopyRight = &quot; (C) ZSSM. All rights reserved.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Description_5&quot; {Description = &quot; Description: compute (1/val)^exp&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Change_6&quot; {Change = &quot; PR: First issue - No change.&quot;}
</kcg:Pragma>
</pragmas>
</Operator>

View File

@@ -1,420 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Comment_Default ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Description TEXT
{
NT_DEFAULT_VALUE "-" ,
NT_FIELD_HEIGHT 10 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE F ,
NT_PRINTABLE F }
} } }
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Resolution ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Resolution TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
OperatorKind ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
OperatorKind ENUM
{
NT_ENUM_VALUES {"Architecture", "Functional", "Refinement", "Library", "Derived", "Robustness", "TBD"},
NT_DEFAULT_VALUE "TBD" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Title ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Title TEXT
{
NT_DEFAULT_VALUE "Title : " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Author ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 250 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Author TEXT
{
NT_DEFAULT_VALUE " Modified by: AP. PORTE" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Date ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 250 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 100 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Date DATE
{
NT_DEFAULT_VALUE "dd/mm/yyyy" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
CopyRight ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 40 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 21 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
CopyRight TEXT
{
NT_DEFAULT_VALUE " (C) ZSSM. All rights reserved." ,
NT_INCRUSTABLE T ,
NT_EDITABLE F },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Description ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 350 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 400 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 120 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Description TEXT
{
NT_DEFAULT_VALUE " Description: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Change ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 60 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 60 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Change TEXT
{
NT_DEFAULT_VALUE " PR: First issue - No change." ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Unit ::= {
{"!ed/2b44/5C75/1654/58f8b11f3e32", "Unit_2","TBD" , T },
{"!ed/2d49/5C75/1654/58f8b3b740", "Unit_2","TBD" , T },
{"!ed/2cb2/5C75/1654/58f8b1e12d34", "Unit_2","TBD" , T },
{"!ed/2ab1/5C75/1654/58f8af8f94", "Unit_2","TBD" , T },
{"!ed/2abf/5C75/1654/58f8af8f5c16", "Unit_2","TBD" , T },
{"!ed/2ac5/5C75/1654/58f8af8f27e6", "Unit_2","TBD" , T },
{"!ed/2b3d/5C75/1654/58f8b0f579aa", "Unit_2","TBD" , T }}
Comment_Default ::= {
{"!ed/2a5a/5C75/1654/58f8af3f198f", "Comment_Default_1","-" , F },
{"!ed/2c9a/5C75/1654/58f8b1ab20fc", "Comment_Default_1","-" , F }}
Comment ::= {
{"!ed/2b44/5C75/1654/58f8b11f3e32", "Comment_1","" , T },
{"!ed/2d49/5C75/1654/58f8b3b740", "Comment_1","" , T },
{"!ed/2cb2/5C75/1654/58f8b1e12d34", "Comment_1","" , T },
{"!ed/2ab1/5C75/1654/58f8af8f94", "Comment_1","" , T },
{"!ed/2abf/5C75/1654/58f8af8f5c16", "Comment_1","" , T },
{"!ed/2ac5/5C75/1654/58f8af8f27e6", "Comment_1","" , T },
{"!ed/2b3d/5C75/1654/58f8b0f579aa", "Comment_1","" , T }}
Range ::= {
{"!ed/2b44/5C75/1654/58f8b11f3e32", "Range_3","TBD" , T },
{"!ed/2d49/5C75/1654/58f8b3b740", "Range_3","[0.1;10.0]" , T },
{"!ed/2cb2/5C75/1654/58f8b1e12d34", "Range_3","TBD" , T },
{"!ed/2ab1/5C75/1654/58f8af8f94", "Range_3","TBD" , T },
{"!ed/2abf/5C75/1654/58f8af8f5c16", "Range_3","TBD" , T },
{"!ed/2ac5/5C75/1654/58f8af8f27e6", "Range_3","TBD" , T },
{"!ed/2b3d/5C75/1654/58f8b0f579aa", "Range_3","TBD" , T }}
Resolution ::= {
{"!ed/2b44/5C75/1654/58f8b11f3e32", "Resolution_4","TBD" , T },
{"!ed/2d49/5C75/1654/58f8b3b740", "Resolution_4","TBD" , T },
{"!ed/2cb2/5C75/1654/58f8b1e12d34", "Resolution_4","TBD" , T },
{"!ed/2ab1/5C75/1654/58f8af8f94", "Resolution_4","TBD" , T },
{"!ed/2abf/5C75/1654/58f8af8f5c16", "Resolution_4","TBD" , T },
{"!ed/2ac5/5C75/1654/58f8af8f27e6", "Resolution_4","TBD" , T },
{"!ed/2b3d/5C75/1654/58f8b0f579aa", "Resolution_4","TBD" , T }}
OperatorKind ::= {
{"!ed/fbe/1252/1D14/58f786145a83", "OperatorKind_1","TBD" , T }}
Title ::= {
{"!ed/fbf/1252/1D14/58f786141f1f", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , "Title : compute_necessary_energy_1" , T }}
Author ::= {
{"!ed/fbf/1252/1D14/58f786141f1f", "Author_2",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Modified by: AP. PORTE" , T }}
Date ::= {
{"!ed/fbf/1252/1D14/58f786141f1f", "Date_3",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , "20/04/2017" , T }}
CopyRight ::= {
{"!ed/fbf/1252/1D14/58f786141f1f", "CopyRight_4",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T }}
Description ::= {
{"!ed/fbf/1252/1D14/58f786141f1f", "Description_5",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description:
compute energy necessary for parameters
depending if all poles distances are not null or if parameters are on one pole
(Robustness to avoid computation of interpolation on null distances)" , T }}
Change ::= {
{"!ed/fbf/1252/1D14/58f786141f1f", "Change_6",T , T , "RELATIVE" , 0.000000 , 60.000000 , T , T , 350 , 60 , 1 , " PR: First issue - No change." , T }}
END

View File

@@ -1,386 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Resolution ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Resolution TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
OperatorKind ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
OperatorKind ENUM
{
NT_ENUM_VALUES {"Architecture", "Functional", "Refinement", "Library", "Derived", "Robustness", "TBD"},
NT_DEFAULT_VALUE "TBD" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Title ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Title TEXT
{
NT_DEFAULT_VALUE "Title : " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Author ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 250 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Author TEXT
{
NT_DEFAULT_VALUE " Modified by: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Date ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 250 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 100 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Date DATE
{
NT_DEFAULT_VALUE "dd/mm/yyyy" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
CopyRight ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 40 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 21 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
CopyRight TEXT
{
NT_DEFAULT_VALUE " (C) ZSSM. All rights reserved." ,
NT_INCRUSTABLE T ,
NT_EDITABLE F },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Description ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 350 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 400 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 120 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Description TEXT
{
NT_DEFAULT_VALUE " Description: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Change ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 60 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 60 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Change TEXT
{
NT_DEFAULT_VALUE " PR: First issue - No change." ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Range ::= {
{"!ed/103f/1252/1D14/58f787d051d6", "Range_3","[0.1;10.0]" , T },
{"!ed/1048/1252/1D14/58f7882459db", "Range_3","TBD" , T },
{"!ed/1036/1252/1D14/58f787b65697", "Range_3","TBD" , T }}
Comment ::= {
{"!ed/1035/1252/1D14/58f7878d52a4", "Comment_1","" , T },
{"!ed/103f/1252/1D14/58f787d051d6", "Comment_1","" , T },
{"!ed/1048/1252/1D14/58f7882459db", "Comment_1","" , T },
{"!ed/1036/1252/1D14/58f787b65697", "Comment_1","" , T }}
Unit ::= {
{"!ed/1035/1252/1D14/58f7878d52a4", "Unit_2","TBD" , T },
{"!ed/103f/1252/1D14/58f787d051d6", "Unit_2","TBD" , T },
{"!ed/1048/1252/1D14/58f7882459db", "Unit_2","TBD" , T },
{"!ed/1036/1252/1D14/58f787b65697", "Unit_2","TBD" , T }}
Resolution ::= {
{"!ed/103f/1252/1D14/58f787d051d6", "Resolution_4","TBD" , T },
{"!ed/1048/1252/1D14/58f7882459db", "Resolution_4","TBD" , T },
{"!ed/1036/1252/1D14/58f787b65697", "Resolution_4","TBD" , T }}
OperatorKind ::= {
{"!ed/1033/1252/1D14/58f78782541c", "OperatorKind_1","TBD" , T }}
Title ::= {
{"!ed/1034/1252/1D14/58f78782534c", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , "Title : compute_sum_inverse_val_1" , T }}
Author ::= {
{"!ed/1034/1252/1D14/58f78782534c", "Author_2",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Modified by: AP. PORTE" , T }}
Date ::= {
{"!ed/1034/1252/1D14/58f78782534c", "Date_3",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , "19/04/2017" , T }}
CopyRight ::= {
{"!ed/1034/1252/1D14/58f78782534c", "CopyRight_4",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T }}
Description ::= {
{"!ed/1034/1252/1D14/58f78782534c", "Description_5",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description:
compute sum [(1/val)^exp]" , T }}
Change ::= {
{"!ed/1034/1252/1D14/58f78782534c", "Change_6",T , T , "RELATIVE" , 0.000000 , 60.000000 , T , T , 350 , 60 , 1 , " PR: First issue - No change." , T }}
END

View File

@@ -1,386 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Resolution ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Resolution TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
OperatorKind ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
OperatorKind ENUM
{
NT_ENUM_VALUES {"Architecture", "Functional", "Refinement", "Library", "Derived", "Robustness", "TBD"},
NT_DEFAULT_VALUE "TBD" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Title ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Title TEXT
{
NT_DEFAULT_VALUE "Title : " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Author ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 250 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Author TEXT
{
NT_DEFAULT_VALUE " Modified by: AP. PORTE" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Date ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 250 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 100 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Date DATE
{
NT_DEFAULT_VALUE "dd/mm/yyyy" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
CopyRight ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 40 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 21 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
CopyRight TEXT
{
NT_DEFAULT_VALUE " (C) ZSSM. All rights reserved." ,
NT_INCRUSTABLE T ,
NT_EDITABLE F },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Description ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 350 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 400 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 120 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Description TEXT
{
NT_DEFAULT_VALUE " Description: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Change ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 60 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 60 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Change TEXT
{
NT_DEFAULT_VALUE " PR: First issue - No change." ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Comment ::= {
{"!ed/1035/1252/1D14/58f7878d52a4", "Comment_1","" , T },
{"!ed/103f/1252/1D14/58f787d051d6", "Comment_1","" , T },
{"!ed/1048/1252/1D14/58f7882459db", "Comment_1","" , T },
{"!ed/1036/1252/1D14/58f787b65697", "Comment_1","" , T }}
Unit ::= {
{"!ed/1035/1252/1D14/58f7878d52a4", "Unit_2","TBD" , T },
{"!ed/103f/1252/1D14/58f787d051d6", "Unit_2","TBD" , T },
{"!ed/1048/1252/1D14/58f7882459db", "Unit_2","TBD" , T },
{"!ed/1036/1252/1D14/58f787b65697", "Unit_2","TBD" , T }}
Range ::= {
{"!ed/103f/1252/1D14/58f787d051d6", "Range_3","[0.1;10.0]" , T },
{"!ed/1048/1252/1D14/58f7882459db", "Range_3","TBD" , T },
{"!ed/1036/1252/1D14/58f787b65697", "Range_3","TBD" , T }}
Resolution ::= {
{"!ed/103f/1252/1D14/58f787d051d6", "Resolution_4","TBD" , T },
{"!ed/1048/1252/1D14/58f7882459db", "Resolution_4","TBD" , T },
{"!ed/1036/1252/1D14/58f787b65697", "Resolution_4","TBD" , T }}
OperatorKind ::= {
{"!ed/1033/1252/1D14/58f78782541c", "OperatorKind_1","TBD" , T }}
Title ::= {
{"!ed/1034/1252/1D14/58f78782534c", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , "Title : compute_sum_inverse_val_1" , T }}
Author ::= {
{"!ed/1034/1252/1D14/58f78782534c", "Author_2",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Modified by: AP. PORTE" , T }}
Date ::= {
{"!ed/1034/1252/1D14/58f78782534c", "Date_3",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , "19/04/2017" , T }}
CopyRight ::= {
{"!ed/1034/1252/1D14/58f78782534c", "CopyRight_4",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T }}
Description ::= {
{"!ed/1034/1252/1D14/58f78782534c", "Description_5",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description:
compute sum [(1/val)^exp]" , T }}
Change ::= {
{"!ed/1034/1252/1D14/58f78782534c", "Change_6",T , T , "RELATIVE" , 0.000000 , 60.000000 , T , T , 350 , 60 , 1 , " PR: First issue - No change." , T }}
END

View File

@@ -1,527 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" name="compute_sum_inverse_val">
<sizeParameters>
<SizeParameter name="nb_items">
<pragmas>
<ed:SizeParameter oid="!ed/1035/1252/1D14/58f7878d52a4"/>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</SizeParameter>
</sizeParameters>
<inputs>
<Variable name="values">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_items"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1036/1252/1D14/58f787b65697"/>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
<Variable name="exp">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/103f/1252/1D14/58f787d051d6" hidden="true"/>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;[0.1;10.0]&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="sum_inverse">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1048/1252/1D14/58f7882459db"/>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</outputs>
<locals>
<Variable name="_L1">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_items"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/104c/745C/15C0/58f857c213ba"/>
</pragmas>
</Variable>
<Variable name="_L2">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_items"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1052/745C/15C0/58f857d21e08"/>
</pragmas>
</Variable>
<Variable name="_L7">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_items"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/10af/745C/15C0/58f8591215a4"/>
</pragmas>
</Variable>
<Variable name="_L8">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/10bd/745C/15C0/58f8592f2884"/>
</pragmas>
</Variable>
<Variable name="_L9">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/10c8/745C/15C0/58f859601cc1"/>
</pragmas>
</Variable>
<Variable name="_L10">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/10cf/745C/15C0/58f859774f0f"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L1 = values; -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="values"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/104b/745C/15C0/58f857c261b2"/>
</pragmas>
</Equation>
<!-- _L2 = (map compute_inverse_exp <<nb_items>>)(_L1, _L7); -->
<Equation>
<lefts>
<VariableRef name="_L2"/>
</lefts>
<right>
<!-- (map compute_inverse_exp <<nb_items>>)(_L1, _L7) -->
<CallExpression>
<operator>
<IteratorOp name="1" iterator="map">
<operator>
<OpCall name="1">
<operator>
<OperatorRef name="compute_inverse_exp"/>
</operator>
</OpCall>
</operator>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_items"/>
</path>
</IdExpression>
</size>
</IteratorOp>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L7"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1051/745C/15C0/58f857d26a11"/>
</pragmas>
</Equation>
<!-- _L7 = _L8 ^ nb_items; -->
<Equation>
<lefts>
<VariableRef name="_L7"/>
</lefts>
<right>
<!-- _L8 ^ nb_items -->
<ScalarToVectorOp name="2">
<flow>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L8"/>
</path>
</IdExpression>
</items>
</ListExpression>
</flow>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_items"/>
</path>
</IdExpression>
</size>
</ScalarToVectorOp>
</right>
<pragmas>
<ed:Equation oid="!ed/10ae/745C/15C0/58f859122837"/>
</pragmas>
</Equation>
<!-- _L8 = exp; -->
<Equation>
<lefts>
<VariableRef name="_L8"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="exp"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/10bc/745C/15C0/58f8592f33ca"/>
</pragmas>
</Equation>
<!-- _L9 = (fold $+$ <<nb_items>>)(_L10, _L2); -->
<Equation>
<lefts>
<VariableRef name="_L9"/>
</lefts>
<right>
<!-- (fold $+$ <<nb_items>>)(_L10, _L2) -->
<CallExpression>
<operator>
<IteratorOp name="3" iterator="fold">
<operator>
<OpCall name="1">
<operator>
<OperatorRef name="$+$"/>
</operator>
</OpCall>
</operator>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_items"/>
</path>
</IdExpression>
</size>
</IteratorOp>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L10"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L2"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/10c7/745C/15C0/58f859606f4a"/>
</pragmas>
</Equation>
<!-- _L10 = 0.0; -->
<Equation>
<lefts>
<VariableRef name="_L10"/>
</lefts>
<right>
<ConstValue value="0.0"/>
</right>
<pragmas>
<ed:Equation oid="!ed/10ce/745C/15C0/58f859771bc8"/>
</pragmas>
</Equation>
<!-- sum_inverse = _L9; -->
<Equation>
<lefts>
<VariableRef name="sum_inverse"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L9"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/10f5/745C/15C0/58f859947f3"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/1033/1252/1D14/58f78782541c" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<diagrams>
<NetDiagram name="compute_sum_inverse_val_1" landscape="true" format="A4 (210 297)" oid="!ed/1034/1252/1D14/58f78782534c">
<presentationElements>
<EquationGE presentable="!ed/104b/745C/15C0/58f857c261b2">
<position>
<Point x="2604" y="5101"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1051/745C/15C0/58f857d26a11">
<position>
<Point x="3725" y="4763"/>
</position>
<size>
<Size width="3572" height="1899"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/10ae/745C/15C0/58f859122837">
<position>
<Point x="1397" y="5779"/>
</position>
<size>
<Size width="1434" height="503"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/10bc/745C/15C0/58f8592f33ca">
<position>
<Point x="656" y="5779"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/10bc/745C/15C0/58f8592f33ca" dstEquation="!ed/10ae/745C/15C0/58f859122837">
<positions>
<Point x="910" y="6033"/>
<Point x="1143" y="6033"/>
<Point x="1143" y="6033"/>
<Point x="1397" y="6033"/>
</positions>
</Edge>
<EquationGE presentable="!ed/10c7/745C/15C0/58f859606f4a">
<position>
<Point x="9017" y="3768"/>
</position>
<size>
<Size width="2281" height="1667"/>
</size>
</EquationGE>
<EquationGE kind="OBJ_LIT" presentable="!ed/10ce/745C/15C0/58f859771bc8">
<position>
<Point x="7514" y="4149"/>
</position>
<size>
<Size width="169" height="317"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/10ce/745C/15C0/58f859771bc8" dstEquation="!ed/10c7/745C/15C0/58f859606f4a">
<positions>
<Point x="7684" y="4318"/>
<Point x="8340" y="4318"/>
<Point x="8340" y="4318"/>
<Point x="9017" y="4318"/>
</positions>
</Edge>
<EquationGE presentable="!ed/10f5/745C/15C0/58f859947f3">
<position>
<Point x="12150" y="4360"/>
</position>
<size>
<Size width="339" height="508"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/10c7/745C/15C0/58f859606f4a" dstEquation="!ed/10f5/745C/15C0/58f859947f3">
<positions>
<Point x="11303" y="4614"/>
<Point x="11748" y="4614"/>
<Point x="11748" y="4614"/>
<Point x="12192" y="4614"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/104b/745C/15C0/58f857c261b2" dstEquation="!ed/1051/745C/15C0/58f857d26a11">
<positions>
<Point x="2858" y="5355"/>
<Point x="3281" y="5355"/>
<Point x="3281" y="5398"/>
<Point x="3725" y="5398"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/10ae/745C/15C0/58f859122837" dstEquation="!ed/1051/745C/15C0/58f857d26a11">
<positions>
<Point x="2815" y="6033"/>
<Point x="3260" y="6033"/>
<Point x="3260" y="6033"/>
<Point x="3725" y="6033"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/1051/745C/15C0/58f857d26a11" dstEquation="!ed/10c7/745C/15C0/58f859606f4a">
<positions>
<Point x="7303" y="5715"/>
<Point x="8149" y="5715"/>
<Point x="8149" y="4890"/>
<Point x="9017" y="4890"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
<kcg:Pragma>
doc &quot;OperatorKind_1&quot; {OperatorKind = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Title_1&quot; {Title = &quot;Title : compute_sum_inverse_val_1&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Author_2&quot; {Author = &quot; Modified by: AP. PORTE&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Date_3&quot; {Date = &quot;19/04/2017&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;CopyRight_4&quot; {CopyRight = &quot; (C) ZSSM. All rights reserved.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Description_5&quot; {Description = &quot; Description: compute sum [(1/val)^exp]&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Change_6&quot; {Change = &quot; PR: First issue - No change.&quot;}
</kcg:Pragma>
</pragmas>
</Operator>

View File

@@ -1,119 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Comment_Package ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Description TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 10 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Resolution ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Resolution TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Unit ::= {
{"!ed/2ea1/589C/1330/594d1202147e", "Unit_2","TBD" , T },
{"!ed/293a/589C/1330/594d050c66cf", "Unit_2","TBD" , T },
{"!ed/2970/589C/1330/594d062c7935", "Unit_2","TBD" , T },
{"!ed/2976/589C/1330/594d062d5d6d", "Unit_2","TBD" , T },
{"!ed/297c/589C/1330/594d062d1c3c", "Unit_2","TBD" , T },
{"!ed/2851/589C/1330/594cea7a23b3", "Unit_2","TBD" , T },
{"!ed/2852/589C/1330/594cea925130", "Unit_2","TBD" , T },
{"!ed/2853/589C/1330/594cea9b550b", "Unit_2","TBD" , T },
{"!ed/2854/589C/1330/594ceaa554f6", "Unit_2","TBD" , T },
{"!ed/2856/589C/1330/594ceabf4b3b", "Unit_2","TBD" , T }}
Comment ::= {
{"!ed/2ea1/589C/1330/594d1202147e", "Comment_1","" , T },
{"!ed/293a/589C/1330/594d050c66cf", "Comment_1","" , T },
{"!ed/2970/589C/1330/594d062c7935", "Comment_1","" , T },
{"!ed/2976/589C/1330/594d062d5d6d", "Comment_1","" , T },
{"!ed/297c/589C/1330/594d062d1c3c", "Comment_1","" , T },
{"!ed/2851/589C/1330/594cea7a23b3", "Comment_1","" , T },
{"!ed/2852/589C/1330/594cea925130", "Comment_1","" , T },
{"!ed/2853/589C/1330/594cea9b550b", "Comment_1","" , T },
{"!ed/2854/589C/1330/594ceaa554f6", "Comment_1","" , T },
{"!ed/2856/589C/1330/594ceabf4b3b", "Comment_1","" , T }}
Comment_Package ::= {
{"!ed/284d/589C/1330/594cea75498b", "Comment_Package_1","TBD" , T }}
Range ::= {
{"!ed/2ea1/589C/1330/594d1202147e", "Range_3","TBD" , T },
{"!ed/293a/589C/1330/594d050c66cf", "Range_3","TBD" , T },
{"!ed/2970/589C/1330/594d062c7935", "Range_3","TBD" , T },
{"!ed/2976/589C/1330/594d062d5d6d", "Range_3","TBD" , T },
{"!ed/297c/589C/1330/594d062d1c3c", "Range_3","TBD" , T }}
Resolution ::= {
{"!ed/2ea1/589C/1330/594d1202147e", "Resolution_4","TBD" , T },
{"!ed/293a/589C/1330/594d050c66cf", "Resolution_4","TBD" , T },
{"!ed/2970/589C/1330/594d062c7935", "Resolution_4","TBD" , T },
{"!ed/2976/589C/1330/594d062d5d6d", "Resolution_4","TBD" , T },
{"!ed/297c/589C/1330/594d062d1c3c", "Resolution_4","TBD" , T }}
END

View File

@@ -1,393 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<File xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3">
<declarations>
<Package name="conf">
<declarations>
<Constant name="size_mass_array_Cst">
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<value>
<ConstValue value="4"/>
</value>
<pragmas>
<ed:Constant oid="!ed/2851/589C/1330/594cea7a23b3"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Constant>
<Constant name="size_dist_array_Cst">
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<value>
<ConstValue value="4"/>
</value>
<pragmas>
<ed:Constant oid="!ed/2852/589C/1330/594cea925130"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Constant>
<Constant name="size_speed_array_Cst">
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<value>
<ConstValue value="4"/>
</value>
<pragmas>
<ed:Constant oid="!ed/2853/589C/1330/594cea9b550b"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Constant>
<Constant name="size_alt_array_Cst">
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<value>
<ConstValue value="4"/>
</value>
<pragmas>
<ed:Constant oid="!ed/2854/589C/1330/594ceaa554f6"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Constant>
<Constant name="dist_average_param_Cst">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<value>
<ConstValue value="1.0"/>
</value>
<pragmas>
<ed:Constant oid="!ed/2856/589C/1330/594ceabf4b3b"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Constant>
<Sensor name="Viability_Amode_initial">
<type>
<NamedType>
<type>
<TypeRef name="viablility_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Sensor oid="!ed/293a/589C/1330/594d050c66cf"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Sensor>
<Sensor name="Viability_Amode_cruise">
<type>
<NamedType>
<type>
<TypeRef name="viablility_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Sensor oid="!ed/2970/589C/1330/594d062c7935"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Sensor>
<Sensor name="Viability_RPmode_initial">
<type>
<NamedType>
<type>
<TypeRef name="viablility_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Sensor oid="!ed/2976/589C/1330/594d062d5d6d"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Sensor>
<Sensor name="Viability_RPmode_cruise">
<type>
<NamedType>
<type>
<TypeRef name="viablility_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Sensor oid="!ed/297c/589C/1330/594d062d1c3c"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Sensor>
<Type name="viablility_t">
<definition>
<Struct>
<fields>
<Field name="altitudes">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_alt_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Field oid="!ed/2ea2/589C/1330/594d1202428d"/>
</pragmas>
</Field>
<Field name="distances">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_dist_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Field oid="!ed/2ea3/589C/1330/594d1202287b"/>
</pragmas>
</Field>
<Field name="masses">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_mass_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Field oid="!ed/2ea4/589C/1330/594d1202bd0"/>
</pragmas>
</Field>
<Field name="speeds">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_speed_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Field oid="!ed/2ea5/589C/1330/594d12023222"/>
</pragmas>
</Field>
<Field name="energies">
<type>
<Table>
<type>
<Table>
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_alt_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_speed_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_dist_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_mass_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Field oid="!ed/2ea6/589C/1330/594d12025f2d"/>
</pragmas>
</Field>
</fields>
</Struct>
</definition>
<pragmas>
<ed:Type oid="!ed/2ea1/589C/1330/594d1202147e"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Type>
</declarations>
<pragmas>
<ed:Package oid="!ed/284d/589C/1330/594cea75498b" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<diagrams>
<TreeDiagram landscape="false" format="A4 (210 297)" oid="!ed/284e/589C/1330/594cea755394" blockKind="constants" columnsSize="0, 260, 150, 150, 300"/>
<TreeDiagram landscape="false" format="A4 (210 297)" oid="!ed/284f/589C/1330/594cea753edb" blockKind="types" columnsSize="0, 150, 478, 300"/>
<TreeDiagram landscape="false" format="A4 (210 297)" oid="!ed/2850/589C/1330/594cea755e52" blockKind="sensors"/>
</diagrams>
</ed:Package>
<kcg:Pragma>
doc &quot;Comment_Package_1&quot; {Description = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Package>
</declarations>
</File>

View File

@@ -1,119 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Resolution ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Resolution TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Comment_Package ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Description TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 10 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Resolution ::= {
{"!ed/2ea1/589C/1330/594d1202147e", "Resolution_4","TBD" , T },
{"!ed/293a/589C/1330/594d050c66cf", "Resolution_4","TBD" , T },
{"!ed/2970/589C/1330/594d062c7935", "Resolution_4","TBD" , T },
{"!ed/2976/589C/1330/594d062d5d6d", "Resolution_4","TBD" , T },
{"!ed/297c/589C/1330/594d062d1c3c", "Resolution_4","TBD" , T }}
Range ::= {
{"!ed/2ea1/589C/1330/594d1202147e", "Range_3","TBD" , T },
{"!ed/293a/589C/1330/594d050c66cf", "Range_3","TBD" , T },
{"!ed/2970/589C/1330/594d062c7935", "Range_3","TBD" , T },
{"!ed/2976/589C/1330/594d062d5d6d", "Range_3","TBD" , T },
{"!ed/297c/589C/1330/594d062d1c3c", "Range_3","TBD" , T }}
Comment_Package ::= {
{"!ed/284d/589C/1330/594cea75498b", "Comment_Package_1","TBD" , T }}
Comment ::= {
{"!ed/2ea1/589C/1330/594d1202147e", "Comment_1","" , T },
{"!ed/293a/589C/1330/594d050c66cf", "Comment_1","" , T },
{"!ed/2970/589C/1330/594d062c7935", "Comment_1","" , T },
{"!ed/2976/589C/1330/594d062d5d6d", "Comment_1","" , T },
{"!ed/297c/589C/1330/594d062d1c3c", "Comment_1","" , T },
{"!ed/2851/589C/1330/594cea7a23b3", "Comment_1","" , T },
{"!ed/2852/589C/1330/594cea925130", "Comment_1","" , T },
{"!ed/2853/589C/1330/594cea9b550b", "Comment_1","" , T },
{"!ed/2854/589C/1330/594ceaa554f6", "Comment_1","" , T },
{"!ed/2856/589C/1330/594ceabf4b3b", "Comment_1","" , T }}
Unit ::= {
{"!ed/2ea1/589C/1330/594d1202147e", "Unit_2","TBD" , T },
{"!ed/293a/589C/1330/594d050c66cf", "Unit_2","TBD" , T },
{"!ed/2970/589C/1330/594d062c7935", "Unit_2","TBD" , T },
{"!ed/2976/589C/1330/594d062d5d6d", "Unit_2","TBD" , T },
{"!ed/297c/589C/1330/594d062d1c3c", "Unit_2","TBD" , T },
{"!ed/2851/589C/1330/594cea7a23b3", "Unit_2","TBD" , T },
{"!ed/2852/589C/1330/594cea925130", "Unit_2","TBD" , T },
{"!ed/2853/589C/1330/594cea9b550b", "Unit_2","TBD" , T },
{"!ed/2854/589C/1330/594ceaa554f6", "Unit_2","TBD" , T },
{"!ed/2856/589C/1330/594ceabf4b3b", "Unit_2","TBD" , T }}
END

View File

@@ -1,393 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<File xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3">
<declarations>
<Package name="conf_mm">
<declarations>
<Constant name="size_mass_array_Cst">
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<value>
<ConstValue value="4"/>
</value>
<pragmas>
<ed:Constant oid="!ed/2851/589C/1330/594cea7a23b3"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Constant>
<Constant name="size_dist_array_Cst">
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<value>
<ConstValue value="4"/>
</value>
<pragmas>
<ed:Constant oid="!ed/2852/589C/1330/594cea925130"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Constant>
<Constant name="size_speed_array_Cst">
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<value>
<ConstValue value="4"/>
</value>
<pragmas>
<ed:Constant oid="!ed/2853/589C/1330/594cea9b550b"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Constant>
<Constant name="size_alt_array_Cst">
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<value>
<ConstValue value="4"/>
</value>
<pragmas>
<ed:Constant oid="!ed/2854/589C/1330/594ceaa554f6"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Constant>
<Constant name="dist_average_param_Cst">
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<value>
<ConstValue value="1.0"/>
</value>
<pragmas>
<ed:Constant oid="!ed/2856/589C/1330/594ceabf4b3b"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Constant>
<Sensor name="Viability_Amode_initial">
<type>
<NamedType>
<type>
<TypeRef name="viablility_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Sensor oid="!ed/293a/589C/1330/594d050c66cf"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Sensor>
<Sensor name="Viability_Amode_cruise">
<type>
<NamedType>
<type>
<TypeRef name="viablility_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Sensor oid="!ed/2970/589C/1330/594d062c7935"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Sensor>
<Sensor name="Viability_RPmode_initial">
<type>
<NamedType>
<type>
<TypeRef name="viablility_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Sensor oid="!ed/2976/589C/1330/594d062d5d6d"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Sensor>
<Sensor name="Viability_RPmode_cruise">
<type>
<NamedType>
<type>
<TypeRef name="viablility_t"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Sensor oid="!ed/297c/589C/1330/594d062d1c3c"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Sensor>
<Type name="viablility_t">
<definition>
<Struct>
<fields>
<Field name="altitudes">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_alt_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Field oid="!ed/2ea2/589C/1330/594d1202428d"/>
</pragmas>
</Field>
<Field name="distances">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_dist_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Field oid="!ed/2ea3/589C/1330/594d1202287b"/>
</pragmas>
</Field>
<Field name="masses">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_mass_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Field oid="!ed/2ea4/589C/1330/594d1202bd0"/>
</pragmas>
</Field>
<Field name="speeds">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_speed_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Field oid="!ed/2ea5/589C/1330/594d12023222"/>
</pragmas>
</Field>
<Field name="energies">
<type>
<Table>
<type>
<Table>
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_alt_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_speed_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_dist_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="size_mass_array_Cst"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Field oid="!ed/2ea6/589C/1330/594d12025f2d"/>
</pragmas>
</Field>
</fields>
</Struct>
</definition>
<pragmas>
<ed:Type oid="!ed/2ea1/589C/1330/594d1202147e"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Type>
</declarations>
<pragmas>
<ed:Package oid="!ed/284d/589C/1330/594cea75498b" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<diagrams>
<TreeDiagram landscape="false" format="A4 (210 297)" oid="!ed/284e/589C/1330/594cea755394" blockKind="constants" columnsSize="0, 260, 150, 150, 300"/>
<TreeDiagram landscape="false" format="A4 (210 297)" oid="!ed/284f/589C/1330/594cea753edb" blockKind="types" columnsSize="0, 150, 478, 300"/>
<TreeDiagram landscape="false" format="A4 (210 297)" oid="!ed/2850/589C/1330/594cea755e52" blockKind="sensors"/>
</diagrams>
</ed:Package>
<kcg:Pragma>
doc &quot;Comment_Package_1&quot; {Description = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Package>
</declarations>
</File>

View File

@@ -1,389 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Resolution ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Resolution TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
OperatorKind ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
OperatorKind ENUM
{
NT_ENUM_VALUES {"Architecture", "Functional", "Refinement", "Library", "Derived", "Robustness", "TBD"},
NT_DEFAULT_VALUE "TBD" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Title ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Title TEXT
{
NT_DEFAULT_VALUE "Title : " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Author ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 250 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Author TEXT
{
NT_DEFAULT_VALUE " Modified by: AP. PORTE" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Date ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 250 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 100 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Date DATE
{
NT_DEFAULT_VALUE "dd/mm/yyyy" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
CopyRight ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 40 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 21 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
CopyRight TEXT
{
NT_DEFAULT_VALUE " (C) ZSSM. All rights reserved." ,
NT_INCRUSTABLE T ,
NT_EDITABLE F },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Description ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 350 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 400 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 120 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Description TEXT
{
NT_DEFAULT_VALUE " Description: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Change ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 60 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 60 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Change TEXT
{
NT_DEFAULT_VALUE " PR: First issue - No change." ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Comment ::= {
{"!ed/13e9/71E6/226C/58f74b2f3b39", "Comment_1","" , T },
{"!ed/13ec/71E6/226C/58f74b3d74bf", "Comment_1","" , T },
{"!ed/1413/71E6/226C/58f74b5b9b6", "Comment_1","" , T },
{"!ed/13fb/71E6/226C/58f74b5b46e1", "Comment_1","" , T },
{"!ed/1403/71E6/226C/58f74b5b3f3a", "Comment_1","" , T }}
Unit ::= {
{"!ed/13e9/71E6/226C/58f74b2f3b39", "Unit_2","TBD" , T },
{"!ed/13ec/71E6/226C/58f74b3d74bf", "Unit_2","TBD" , T },
{"!ed/1413/71E6/226C/58f74b5b9b6", "Unit_2","TBD" , T },
{"!ed/13fb/71E6/226C/58f74b5b46e1", "Unit_2","TBD" , T },
{"!ed/1403/71E6/226C/58f74b5b3f3a", "Unit_2","TBD" , T }}
Range ::= {
{"!ed/1413/71E6/226C/58f74b5b9b6", "Range_3","TBD" , T },
{"!ed/13fb/71E6/226C/58f74b5b46e1", "Range_3","TBD" , T },
{"!ed/1403/71E6/226C/58f74b5b3f3a", "Range_3","TBD" , T }}
Resolution ::= {
{"!ed/1413/71E6/226C/58f74b5b9b6", "Resolution_4","TBD" , T },
{"!ed/13fb/71E6/226C/58f74b5b46e1", "Resolution_4","TBD" , T },
{"!ed/1403/71E6/226C/58f74b5b3f3a", "Resolution_4","TBD" , T }}
OperatorKind ::= {
{"!ed/13dc/71E6/226C/58f74b134109", "OperatorKind_1","TBD" , T }}
Title ::= {
{"!ed/13dd/71E6/226C/58f74b135876", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , "Title : map_create_combinations_1" , T }}
Author ::= {
{"!ed/13dd/71E6/226C/58f74b135876", "Author_2",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Modified by: AP. PORTE" , T }}
Date ::= {
{"!ed/13dd/71E6/226C/58f74b135876", "Date_3",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , "19/04/2017" , T }}
CopyRight ::= {
{"!ed/13dd/71E6/226C/58f74b135876", "CopyRight_4",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T }}
Description ::= {
{"!ed/13dd/71E6/226C/58f74b135876", "Description_5",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description:
create arrays of combinations:
concatenates each value of val to all vectors of array_val" , T }}
Change ::= {
{"!ed/13dd/71E6/226C/58f74b135876", "Change_6",T , T , "RELATIVE" , 0.000000 , 60.000000 , T , T , 350 , 60 , 1 , " PR: First issue - No change." , T }}
END

View File

@@ -1,909 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" visibility="private" name="create_combinations">
<sizeParameters>
<SizeParameter name="nb_values">
<pragmas>
<ed:SizeParameter oid="!ed/13e9/71E6/226C/58f74b2f3b39"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</SizeParameter>
<SizeParameter name="nb_vectors">
<pragmas>
<ed:SizeParameter oid="!ed/13ec/71E6/226C/58f74b3d74bf"/>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</SizeParameter>
</sizeParameters>
<inputs>
<Variable name="val">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/13fb/71E6/226C/58f74b5b46e1"/>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
<Variable name="array_val">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_values"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1403/71E6/226C/58f74b5b3f3a"/>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="out_array">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<!-- nb_values + 1 -->
<NAryOp operator="+">
<operands>
<IdExpression>
<path>
<ConstVarRef name="nb_values"/>
</path>
</IdExpression>
<ConstValue value="1"/>
</operands>
</NAryOp>
</size>
</Table>
</type>
<size>
<!-- nb_vectors * 2 -->
<NAryOp operator="*">
<operands>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
<ConstValue value="2"/>
</operands>
</NAryOp>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1413/71E6/226C/58f74b5b9b6"/>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</outputs>
<locals>
<Variable name="_L1">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<!-- nb_values + 1 -->
<NAryOp operator="+">
<operands>
<IdExpression>
<path>
<ConstVarRef name="nb_values"/>
</path>
</IdExpression>
<ConstValue value="1"/>
</operands>
</NAryOp>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/13df/71E6/226C/58f74b261ab1"/>
</pragmas>
</Variable>
<Variable name="_L3">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_values"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1459/71E6/226C/58f74c837549"/>
</pragmas>
</Variable>
<Variable name="_L4">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/146a/71E6/226C/58f74ca32018"/>
</pragmas>
</Variable>
<Variable name="_L7">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/175a/71E6/226C/58f7542390b"/>
</pragmas>
</Variable>
<Variable name="_L11">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<!-- nb_values + 1 -->
<NAryOp operator="+">
<operands>
<IdExpression>
<path>
<ConstVarRef name="nb_values"/>
</path>
</IdExpression>
<ConstValue value="1"/>
</operands>
</NAryOp>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/179c/71E6/226C/58f754341f5d"/>
</pragmas>
</Variable>
<Variable name="_L10">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/179a/71E6/226C/58f75434508c"/>
</pragmas>
</Variable>
<Variable name="_L9">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_values"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1798/71E6/226C/58f754342e18"/>
</pragmas>
</Variable>
<Variable name="_L8">
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<pragmas>
<ed:Variable oid="!ed/1796/71E6/226C/58f75434abd"/>
</pragmas>
</Variable>
<Variable name="_L12">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="'T"/>
</type>
</NamedType>
</type>
<size>
<!-- nb_values + 1 -->
<NAryOp operator="+">
<operands>
<IdExpression>
<path>
<ConstVarRef name="nb_values"/>
</path>
</IdExpression>
<ConstValue value="1"/>
</operands>
</NAryOp>
</size>
</Table>
</type>
<size>
<!-- nb_vectors + nb_vectors -->
<NAryOp operator="+">
<operands>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</operands>
</NAryOp>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/17b0/71E6/226C/58f7544f6cd7"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L1 = (map (map_combine_values<<nb_values>>) <<nb_vectors>>)(_L4, _L3); -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<!-- (map (map_combine_values<<nb_values>>) <<nb_vectors>>)(_L4, _L3) -->
<CallExpression>
<operator>
<IteratorOp name="2" iterator="map">
<operator>
<OpCall name="1">
<operator>
<OperatorRef name="map_combine_values"/>
</operator>
<instanceParameters>
<IdExpression>
<path>
<ConstVarRef name="nb_values"/>
</path>
</IdExpression>
</instanceParameters>
</OpCall>
</operator>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</size>
</IteratorOp>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L4"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L3"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/13de/71E6/226C/58f74b267837"/>
</pragmas>
</Equation>
<!-- _L3 = array_val; -->
<Equation>
<lefts>
<VariableRef name="_L3"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="array_val"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1458/71E6/226C/58f74c834565"/>
</pragmas>
</Equation>
<!-- _L4 = _L7 ^ nb_vectors; -->
<Equation>
<lefts>
<VariableRef name="_L4"/>
</lefts>
<right>
<!-- _L7 ^ nb_vectors -->
<ScalarToVectorOp name="1">
<flow>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L7"/>
</path>
</IdExpression>
</items>
</ListExpression>
</flow>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</size>
</ScalarToVectorOp>
</right>
<pragmas>
<ed:Equation oid="!ed/1469/71E6/226C/58f74ca3197a"/>
</pragmas>
</Equation>
<!-- _L7 = val[0]; -->
<Equation>
<lefts>
<VariableRef name="_L7"/>
</lefts>
<right>
<!-- val[0] -->
<PrjOp name="1">
<flow>
<IdExpression>
<path>
<ConstVarRef name="val"/>
</path>
</IdExpression>
</flow>
<with>
<ConstValue value="0"/>
</with>
</PrjOp>
</right>
<pragmas>
<ed:Equation oid="!ed/1759/71E6/226C/58f754232e8e"/>
</pragmas>
</Equation>
<!-- _L8 = val[1]; -->
<Equation>
<lefts>
<VariableRef name="_L8"/>
</lefts>
<right>
<!-- val[1] -->
<PrjOp name="2">
<flow>
<IdExpression>
<path>
<ConstVarRef name="val"/>
</path>
</IdExpression>
</flow>
<with>
<ConstValue value="1"/>
</with>
</PrjOp>
</right>
<pragmas>
<ed:Equation oid="!ed/1795/71E6/226C/58f754341dba"/>
</pragmas>
</Equation>
<!-- _L9 = array_val; -->
<Equation>
<lefts>
<VariableRef name="_L9"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="array_val"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1797/71E6/226C/58f754343ea2"/>
</pragmas>
</Equation>
<!-- _L10 = _L8 ^ nb_vectors; -->
<Equation>
<lefts>
<VariableRef name="_L10"/>
</lefts>
<right>
<!-- _L8 ^ nb_vectors -->
<ScalarToVectorOp name="2">
<flow>
<ListExpression>
<items>
<IdExpression>
<path>
<ConstVarRef name="_L8"/>
</path>
</IdExpression>
</items>
</ListExpression>
</flow>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</size>
</ScalarToVectorOp>
</right>
<pragmas>
<ed:Equation oid="!ed/1799/71E6/226C/58f75434a76"/>
</pragmas>
</Equation>
<!-- _L11 = (map (map_combine_values<<nb_values>>) <<nb_vectors>>)(_L10, _L9); -->
<Equation>
<lefts>
<VariableRef name="_L11"/>
</lefts>
<right>
<!-- (map (map_combine_values<<nb_values>>) <<nb_vectors>>)(_L10, _L9) -->
<CallExpression>
<operator>
<IteratorOp name="4" iterator="map">
<operator>
<OpCall name="2">
<operator>
<OperatorRef name="map_combine_values"/>
</operator>
<instanceParameters>
<IdExpression>
<path>
<ConstVarRef name="nb_values"/>
</path>
</IdExpression>
</instanceParameters>
</OpCall>
</operator>
<size>
<IdExpression>
<path>
<ConstVarRef name="nb_vectors"/>
</path>
</IdExpression>
</size>
</IteratorOp>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L10"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L9"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/179b/71E6/226C/58f754341a6a"/>
</pragmas>
</Equation>
<!-- _L12 = _L1 @ _L11; -->
<Equation>
<lefts>
<VariableRef name="_L12"/>
</lefts>
<right>
<!-- _L1 @ _L11 -->
<NAryOp name="1" operator="@">
<operands>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L11"/>
</path>
</IdExpression>
</operands>
</NAryOp>
</right>
<pragmas>
<ed:Equation oid="!ed/17af/71E6/226C/58f7544f10b3"/>
</pragmas>
</Equation>
<!-- out_array = _L12; -->
<Equation>
<lefts>
<VariableRef name="out_array"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L12"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/17b7/71E6/226C/58f7546259a1"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/13dc/71E6/226C/58f74b134109" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<diagrams>
<NetDiagram name="map_create_combinations_1" landscape="true" format="A4 (210 297)" oid="!ed/13dd/71E6/226C/58f74b135876">
<presentationElements>
<EquationGE presentable="!ed/13de/71E6/226C/58f74b267837">
<position>
<Point x="6681" y="3844"/>
</position>
<size>
<Size width="5223" height="3594"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1458/71E6/226C/58f74c834565">
<position>
<Point x="2963" y="5990"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1469/71E6/226C/58f74ca3197a">
<position>
<Point x="3768" y="4551"/>
</position>
<size>
<Size width="1540" height="990"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1469/71E6/226C/58f74ca3197a" dstEquation="!ed/13de/71E6/226C/58f74b267837">
<positions>
<Point x="5292" y="5038"/>
<Point x="5990" y="5038"/>
<Point x="5990" y="5038"/>
<Point x="6689" y="5038"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/1458/71E6/226C/58f74c834565" dstEquation="!ed/13de/71E6/226C/58f74b267837">
<positions>
<Point x="3217" y="6244"/>
<Point x="4953" y="6244"/>
<Point x="4953" y="6244"/>
<Point x="6689" y="6244"/>
</positions>
</Edge>
<EquationGE kind="OBJ_LIT" presentable="!ed/1759/71E6/226C/58f754232e8e">
<position>
<Point x="2646" y="4868"/>
</position>
<size>
<Size width="169" height="318"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1759/71E6/226C/58f754232e8e" dstEquation="!ed/1469/71E6/226C/58f74ca3197a">
<positions>
<Point x="2815" y="5038"/>
<Point x="3281" y="5038"/>
<Point x="3281" y="5038"/>
<Point x="3768" y="5038"/>
</positions>
</Edge>
<EquationGE kind="OBJ_LIT" presentable="!ed/1795/71E6/226C/58f754341dba">
<position>
<Point x="2667" y="8700"/>
</position>
<size>
<Size width="169" height="317"/>
</size>
</EquationGE>
<EquationGE kind="OBJ_INPUT" presentable="!ed/1797/71E6/226C/58f754343ea2">
<position>
<Point x="2985" y="9821"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1799/71E6/226C/58f75434a76">
<position>
<Point x="3789" y="8382"/>
</position>
<size>
<Size width="1524" height="974"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/179b/71E6/226C/58f754341a6a">
<position>
<Point x="6710" y="7684"/>
</position>
<size>
<Size width="5207" height="3577"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1799/71E6/226C/58f75434a76" dstEquation="!ed/179b/71E6/226C/58f754341a6a">
<positions>
<Point x="5313" y="8869"/>
<Point x="6011" y="8869"/>
<Point x="6011" y="8869"/>
<Point x="6710" y="8869"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1795/71E6/226C/58f754341dba" dstEquation="!ed/1799/71E6/226C/58f75434a76">
<positions>
<Point x="2836" y="8869"/>
<Point x="3302" y="8869"/>
<Point x="3302" y="8869"/>
<Point x="3789" y="8869"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/1797/71E6/226C/58f754343ea2" dstEquation="!ed/179b/71E6/226C/58f754341a6a">
<positions>
<Point x="3239" y="10075"/>
<Point x="4974" y="10075"/>
<Point x="4974" y="10075"/>
<Point x="6710" y="10075"/>
</positions>
</Edge>
<EquationGE presentable="!ed/17af/71E6/226C/58f7544f10b3">
<position>
<Point x="13589" y="6583"/>
</position>
<size>
<Size width="974" height="974"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/13de/71E6/226C/58f74b267837" dstEquation="!ed/17af/71E6/226C/58f7544f10b3">
<positions>
<Point x="11896" y="5652"/>
<Point x="12742" y="5652"/>
<Point x="12742" y="6900"/>
<Point x="13589" y="6900"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/179b/71E6/226C/58f754341a6a" dstEquation="!ed/17af/71E6/226C/58f7544f10b3">
<positions>
<Point x="11917" y="9483"/>
<Point x="12742" y="9483"/>
<Point x="12742" y="7239"/>
<Point x="13589" y="7239"/>
</positions>
</Edge>
<EquationGE presentable="!ed/17b7/71E6/226C/58f7546259a1">
<position>
<Point x="15748" y="6816"/>
</position>
<size>
<Size width="339" height="508"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/17af/71E6/226C/58f7544f10b3" dstEquation="!ed/17b7/71E6/226C/58f7546259a1">
<positions>
<Point x="14563" y="7070"/>
<Point x="15177" y="7070"/>
<Point x="15177" y="7070"/>
<Point x="15790" y="7070"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
<kcg:Pragma>
doc &quot;OperatorKind_1&quot; {OperatorKind = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Change_6&quot; {Change = &quot; PR: First issue - No change.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Description_5&quot; {Description = &quot; Description: create arrays of combinations: concatenates each value of val to all vectors of array_val&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;CopyRight_4&quot; {CopyRight = &quot; (C) ZSSM. All rights reserved.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Date_3&quot; {Date = &quot;19/04/2017&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Author_2&quot; {Author = &quot; Modified by: AP. PORTE&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Title_1&quot; {Title = &quot;Title : map_create_combinations_1&quot;}
</kcg:Pragma>
</pragmas>
</Operator>

View File

@@ -1,380 +0,0 @@
Notes-Types { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Comment ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Comment TEXT
{
NT_DEFAULT_VALUE "" ,
NT_FIELD_HEIGHT 3 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Unit ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Unit TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Range ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Range TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
Resolution ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
Resolution TEXT
{
NT_DEFAULT_VALUE "TBD" ,
NT_FIELD_HEIGHT 1 ,
NT_FIELD_WIDTH 60 },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T ,
NT_PRINTABLE F }
} } }
OperatorKind ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
information {
OperatorKind ENUM
{
NT_ENUM_VALUES {"Architecture", "Functional", "Refinement", "Library", "Derived", "Robustness", "TBD"},
NT_DEFAULT_VALUE "TBD" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Title ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Title TEXT
{
NT_DEFAULT_VALUE "Title : " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Author ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 250 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Author TEXT
{
NT_DEFAULT_VALUE " Modified by: AP. PORTE" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Date ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 250 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 20 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 100 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 20 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Date DATE
{
NT_DEFAULT_VALUE "dd/mm/yyyy" ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
CopyRight ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 40 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE F },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 21 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
CopyRight TEXT
{
NT_DEFAULT_VALUE " (C) ZSSM. All rights reserved." ,
NT_INCRUSTABLE T ,
NT_EDITABLE F },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Description ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 350 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 0 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 400 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 120 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Description TEXT
{
NT_DEFAULT_VALUE " Description: " ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
Change ::= SEQUENCE OF { SEQUENCE {
annot_object OID,
name STRING,
note_graphical_information {
NT_INCRUSTABLE BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_PERMANENT BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_LOCATION STRING
{
NT_DEFAULT_VALUE "RELATIVE" },
NT_POS_X REAL
{
NT_DEFAULT_VALUE 0 },
NT_POS_Y REAL
{
NT_DEFAULT_VALUE 60 },
NT_MODIFY BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME BOOLEAN
{
NT_DEFAULT_VALUE T },
NT_FRAME_WIDTH INTEGER
{
NT_DEFAULT_VALUE 350 },
NT_FRAME_HEIGHT INTEGER
{
NT_DEFAULT_VALUE 60 },
NT_FONT INTEGER
{
NT_DEFAULT_VALUE 1 }
},
information {
Change TEXT
{
NT_DEFAULT_VALUE " PR: First issue - No change." ,
NT_INCRUSTABLE T },
to_c BOOLEAN
{
NT_DEFAULT_VALUE T }
} } }
END
Notes-Values { Esterel-Technologies } DEFINITIONS ::=
BEGIN
Comment ::= {
{"!ed/106c/4B98/1E78/58f5f1c81ee0", "Comment_1","" , T },
{"!ed/1072/4B98/1E78/58f5f1cf7a38", "Comment_1","" , T }}
Unit ::= {
{"!ed/106c/4B98/1E78/58f5f1c81ee0", "Unit_2","TBD" , T },
{"!ed/1072/4B98/1E78/58f5f1cf7a38", "Unit_2","TBD" , T }}
Range ::= {
{"!ed/106c/4B98/1E78/58f5f1c81ee0", "Range_3","TBD" , T },
{"!ed/1072/4B98/1E78/58f5f1cf7a38", "Range_3","TBD" , T }}
Resolution ::= {
{"!ed/106c/4B98/1E78/58f5f1c81ee0", "Resolution_4","TBD" , T },
{"!ed/1072/4B98/1E78/58f5f1cf7a38", "Resolution_4","TBD" , T }}
OperatorKind ::= {
{"!ed/3289/1DFB/1050/58f0cebc59d1", "OperatorKind_1","TBD" , T }}
Title ::= {
{"!ed/328a/1DFB/1050/58f0cebc1286", "Title_1",T , T , "RELATIVE" , 0.000000 , 0.000000 , F , T , 350 , 20 , 1 , "Title : create_poles_combinations_1" , T }}
Author ::= {
{"!ed/328a/1DFB/1050/58f0cebc1286", "Author_2",T , T , "RELATIVE" , 0.000000 , 20.000000 , F , T , 250 , 20 , 1 , " Modified by: AP PORTE" , T }}
Date ::= {
{"!ed/328a/1DFB/1050/58f0cebc1286", "Date_3",T , T , "RELATIVE" , 250.000000 , 20.000000 , F , T , 100 , 20 , 1 , "14/04/2017" , T }}
CopyRight ::= {
{"!ed/328a/1DFB/1050/58f0cebc1286", "CopyRight_4",T , T , "RELATIVE" , 0.000000 , 40.000000 , F , T , 350 , 21 , 1 , " (C) ZSSM. All rights reserved." , T }}
Description ::= {
{"!ed/328a/1DFB/1050/58f0cebc1286", "Description_5",T , T , "RELATIVE" , 350.000000 , 0.000000 , T , T , 400 , 120 , 1 , " Description:
create 16 vectors combining the 2 closest values for each parameter (and do the same for indexes)" , T }}
Change ::= {
{"!ed/328a/1DFB/1050/58f0cebc1286", "Change_6",T , T , "RELATIVE" , 0.000000 , 60.000000 , T , T , 350 , 60 , 1 , " PR: First issue - No change." , T }}
END

View File

@@ -1,902 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Operator xmlns="http://www.esterel-technologies.com/ns/scade/6" xmlns:ed="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5" xmlns:kcg="http://www.esterel-technologies.com/ns/scade/pragmas/codegen/3" kind="function" visibility="private" name="create_poles_combinations">
<inputs>
<Variable name="mass_values">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1001/4B98/1E78/58f5f1b25df1"/>
</pragmas>
</Variable>
<Variable name="distance_values">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/100f/4B98/1E78/58f5f1b22bce"/>
</pragmas>
</Variable>
<Variable name="speed_values">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/101d/4B98/1E78/58f5f1b21601"/>
</pragmas>
</Variable>
<Variable name="altitude_values">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/102b/4B98/1E78/58f5f1b24a88"/>
</pragmas>
</Variable>
<Variable name="mass_indexes">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1039/4B98/1E78/58f5f1b238c1"/>
</pragmas>
</Variable>
<Variable name="distance_indexes">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1047/4B98/1E78/58f5f1b24498"/>
</pragmas>
</Variable>
<Variable name="speed_indexes">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1055/4B98/1E78/58f5f1b23837"/>
</pragmas>
</Variable>
<Variable name="altitude_indexes">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1063/4B98/1E78/58f5f1b277df"/>
</pragmas>
</Variable>
</inputs>
<outputs>
<Variable name="values_combinations">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="4"/>
</size>
</Table>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/106c/4B98/1E78/58f5f1c81ee0"/>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
<Variable name="indexes_combinations">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="4"/>
</size>
</Table>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1072/4B98/1E78/58f5f1cf7a38"/>
<kcg:Pragma>
doc &quot;Comment_1&quot; {Comment = &quot;&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Unit_2&quot; {Unit = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Range_3&quot; {Range = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Resolution_4&quot; {Resolution = &quot;TBD&quot;}
</kcg:Pragma>
</pragmas>
</Variable>
</outputs>
<locals>
<Variable name="_L1">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="4"/>
</size>
</Table>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/108d/4B98/1E78/58f5f2204aba"/>
</pragmas>
</Variable>
<Variable name="_L2">
<type>
<Table>
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="4"/>
</size>
</Table>
</type>
<size>
<ConstValue value="16"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/1099/4B98/1E78/58f5f225494d"/>
</pragmas>
</Variable>
<Variable name="_L3">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/109b/4B98/1E78/58f5f2295d"/>
</pragmas>
</Variable>
<Variable name="_L4">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/109d/4B98/1E78/58f5f22951a9"/>
</pragmas>
</Variable>
<Variable name="_L5">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/109f/4B98/1E78/58f5f2294eff"/>
</pragmas>
</Variable>
<Variable name="_L6">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="float32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/10a1/4B98/1E78/58f5f22936a0"/>
</pragmas>
</Variable>
<Variable name="_L7">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/10a7/4B98/1E78/58f5f22e3107"/>
</pragmas>
</Variable>
<Variable name="_L8">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/10a9/4B98/1E78/58f5f22e6e19"/>
</pragmas>
</Variable>
<Variable name="_L9">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/10ab/4B98/1E78/58f5f22e7f58"/>
</pragmas>
</Variable>
<Variable name="_L10">
<type>
<Table>
<type>
<NamedType>
<type>
<TypeRef name="int32"/>
</type>
</NamedType>
</type>
<size>
<ConstValue value="2"/>
</size>
</Table>
</type>
<pragmas>
<ed:Variable oid="!ed/10ad/4B98/1E78/58f5f22e13fe"/>
</pragmas>
</Variable>
</locals>
<data>
<!-- _L1 = combine_poles(_L3, _L4, _L5, _L6); -->
<Equation>
<lefts>
<VariableRef name="_L1"/>
</lefts>
<right>
<!-- combine_poles(_L3, _L4, _L5, _L6) -->
<CallExpression>
<operator>
<OpCall name="1">
<operator>
<OperatorRef name="combine_poles"/>
</operator>
</OpCall>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L3"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L4"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L5"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L6"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/108c/4B98/1E78/58f5f2204c51"/>
</pragmas>
</Equation>
<!-- _L2 = combine_poles(_L7, _L8, _L9, _L10); -->
<Equation>
<lefts>
<VariableRef name="_L2"/>
</lefts>
<right>
<!-- combine_poles(_L7, _L8, _L9, _L10) -->
<CallExpression>
<operator>
<OpCall name="2">
<operator>
<OperatorRef name="combine_poles"/>
</operator>
</OpCall>
</operator>
<callParameters>
<IdExpression>
<path>
<ConstVarRef name="_L7"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L8"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L9"/>
</path>
</IdExpression>
<IdExpression>
<path>
<ConstVarRef name="_L10"/>
</path>
</IdExpression>
</callParameters>
</CallExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/1098/4B98/1E78/58f5f2257bd6"/>
</pragmas>
</Equation>
<!-- _L3 = mass_values; -->
<Equation>
<lefts>
<VariableRef name="_L3"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="mass_values"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/109a/4B98/1E78/58f5f229295b"/>
</pragmas>
</Equation>
<!-- _L4 = distance_values; -->
<Equation>
<lefts>
<VariableRef name="_L4"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="distance_values"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/109c/4B98/1E78/58f5f229538a"/>
</pragmas>
</Equation>
<!-- _L5 = speed_values; -->
<Equation>
<lefts>
<VariableRef name="_L5"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="speed_values"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/109e/4B98/1E78/58f5f2297218"/>
</pragmas>
</Equation>
<!-- _L6 = altitude_values; -->
<Equation>
<lefts>
<VariableRef name="_L6"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="altitude_values"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/10a0/4B98/1E78/58f5f2293ec9"/>
</pragmas>
</Equation>
<!-- _L7 = mass_indexes; -->
<Equation>
<lefts>
<VariableRef name="_L7"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="mass_indexes"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/10a6/4B98/1E78/58f5f22e259"/>
</pragmas>
</Equation>
<!-- _L8 = distance_indexes; -->
<Equation>
<lefts>
<VariableRef name="_L8"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="distance_indexes"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/10a8/4B98/1E78/58f5f22e6098"/>
</pragmas>
</Equation>
<!-- _L9 = speed_indexes; -->
<Equation>
<lefts>
<VariableRef name="_L9"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="speed_indexes"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/10aa/4B98/1E78/58f5f22e54af"/>
</pragmas>
</Equation>
<!-- _L10 = altitude_indexes; -->
<Equation>
<lefts>
<VariableRef name="_L10"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="altitude_indexes"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/10ac/4B98/1E78/58f5f22e41ba"/>
</pragmas>
</Equation>
<!-- values_combinations = _L1; -->
<Equation>
<lefts>
<VariableRef name="values_combinations"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L1"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/10b2/4B98/1E78/58f5f2311c11"/>
</pragmas>
</Equation>
<!-- indexes_combinations = _L2; -->
<Equation>
<lefts>
<VariableRef name="indexes_combinations"/>
</lefts>
<right>
<IdExpression>
<path>
<ConstVarRef name="_L2"/>
</path>
</IdExpression>
</right>
<pragmas>
<ed:Equation oid="!ed/10b7/4B98/1E78/58f5f23339e3"/>
</pragmas>
</Equation>
</data>
<pragmas>
<ed:Operator oid="!ed/3289/1DFB/1050/58f0cebc59d1" xmlns="http://www.esterel-technologies.com/ns/scade/pragmas/editor/5">
<diagrams>
<NetDiagram name="create_poles_combinations_1" landscape="true" format="A4 (210 297)" oid="!ed/328a/1DFB/1050/58f0cebc1286">
<presentationElements>
<EquationGE presentable="!ed/108c/4B98/1E78/58f5f2204c51">
<position>
<Point x="5736" y="3937"/>
</position>
<size>
<Size width="7530" height="3191"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/1098/4B98/1E78/58f5f2257bd6">
<position>
<Point x="5736" y="8086"/>
</position>
<size>
<Size width="7514" height="3175"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/109a/4B98/1E78/58f5f229295b">
<position>
<Point x="4382" y="4318"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/109c/4B98/1E78/58f5f229538a">
<position>
<Point x="4382" y="4953"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/109e/4B98/1E78/58f5f2297218">
<position>
<Point x="4382" y="5588"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/10a0/4B98/1E78/58f5f2293ec9">
<position>
<Point x="4382" y="6223"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/10a6/4B98/1E78/58f5f22e259">
<position>
<Point x="4382" y="8467"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/10a8/4B98/1E78/58f5f22e6098">
<position>
<Point x="4382" y="9102"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/10aa/4B98/1E78/58f5f22e54af">
<position>
<Point x="4382" y="9737"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/10ac/4B98/1E78/58f5f22e41ba">
<position>
<Point x="4382" y="10372"/>
</position>
<size>
<Size width="254" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/10b2/4B98/1E78/58f5f2311c11">
<position>
<Point x="14563" y="5271"/>
</position>
<size>
<Size width="339" height="508"/>
</size>
</EquationGE>
<EquationGE presentable="!ed/10b7/4B98/1E78/58f5f23339e3">
<position>
<Point x="14563" y="9419"/>
</position>
<size>
<Size width="338" height="508"/>
</size>
</EquationGE>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/109a/4B98/1E78/58f5f229295b" dstEquation="!ed/108c/4B98/1E78/58f5f2204c51">
<positions>
<Point x="4636" y="4572"/>
<Point x="5186" y="4572"/>
<Point x="5186" y="4572"/>
<Point x="5736" y="4572"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/109c/4B98/1E78/58f5f229538a" dstEquation="!ed/108c/4B98/1E78/58f5f2204c51">
<positions>
<Point x="4636" y="5207"/>
<Point x="5186" y="5207"/>
<Point x="5186" y="5207"/>
<Point x="5736" y="5207"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="3" srcEquation="!ed/109e/4B98/1E78/58f5f2297218" dstEquation="!ed/108c/4B98/1E78/58f5f2204c51">
<positions>
<Point x="4636" y="5842"/>
<Point x="5186" y="5842"/>
<Point x="5186" y="5842"/>
<Point x="5736" y="5842"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="4" srcEquation="!ed/10a0/4B98/1E78/58f5f2293ec9" dstEquation="!ed/108c/4B98/1E78/58f5f2204c51">
<positions>
<Point x="4636" y="6477"/>
<Point x="5186" y="6477"/>
<Point x="5186" y="6477"/>
<Point x="5736" y="6477"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/108c/4B98/1E78/58f5f2204c51" dstEquation="!ed/10b2/4B98/1E78/58f5f2311c11">
<positions>
<Point x="13250" y="5525"/>
<Point x="13928" y="5525"/>
<Point x="13928" y="5525"/>
<Point x="14605" y="5525"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/10a6/4B98/1E78/58f5f22e259" dstEquation="!ed/1098/4B98/1E78/58f5f2257bd6">
<positions>
<Point x="4636" y="8721"/>
<Point x="5186" y="8721"/>
<Point x="5186" y="8721"/>
<Point x="5736" y="8721"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="2" srcEquation="!ed/10a8/4B98/1E78/58f5f22e6098" dstEquation="!ed/1098/4B98/1E78/58f5f2257bd6">
<positions>
<Point x="4636" y="9356"/>
<Point x="5186" y="9356"/>
<Point x="5186" y="9356"/>
<Point x="5736" y="9356"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="3" srcEquation="!ed/10aa/4B98/1E78/58f5f22e54af" dstEquation="!ed/1098/4B98/1E78/58f5f2257bd6">
<positions>
<Point x="4636" y="9991"/>
<Point x="5186" y="9991"/>
<Point x="5186" y="9991"/>
<Point x="5736" y="9991"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="4" srcEquation="!ed/10ac/4B98/1E78/58f5f22e41ba" dstEquation="!ed/1098/4B98/1E78/58f5f2257bd6">
<positions>
<Point x="4636" y="10626"/>
<Point x="5186" y="10626"/>
<Point x="5186" y="10626"/>
<Point x="5736" y="10626"/>
</positions>
</Edge>
<Edge leftVarIndex="1" rightExprIndex="1" srcEquation="!ed/1098/4B98/1E78/58f5f2257bd6" dstEquation="!ed/10b7/4B98/1E78/58f5f23339e3">
<positions>
<Point x="13250" y="9673"/>
<Point x="13928" y="9673"/>
<Point x="13928" y="9673"/>
<Point x="14605" y="9673"/>
</positions>
</Edge>
</presentationElements>
</NetDiagram>
</diagrams>
</ed:Operator>
<kcg:Pragma>
doc &quot;OperatorKind_1&quot; {OperatorKind = &quot;TBD&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Title_1&quot; {Title = &quot;Title : create_poles_combinations_1&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Author_2&quot; {Author = &quot; Modified by: AP PORTE&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Date_3&quot; {Date = &quot;14/04/2017&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;CopyRight_4&quot; {CopyRight = &quot; (C) ZSSM. All rights reserved.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Description_5&quot; {Description = &quot; Description: create 16 vectors combining the 2 closest values for each parameter (and do the same for indexes)&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Change_6&quot; {Change = &quot; PR: First issue - No change.&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_Graphical_1&quot; {Comment_Graphical = &quot;Create values combinations&quot;}
</kcg:Pragma>
<kcg:Pragma>
doc &quot;Comment_Graphical_11&quot; {Comment_Graphical = &quot;Create indexes combinations&quot;}
</kcg:Pragma>
</pragmas>
</Operator>

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="ASCII"?>
<ALMGateway:ALMGProject xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ALMGateway="http://www.esterel-technologies.com/scade/lifecycle/almgateway" name="designXAV" id="_5aKYwFS9Eee0gMMbaB_ezg">
<connectors xsi:type="ALMGateway:ReqtifyConnector" rqtfFile="designXAV.rqtf"/>
</ALMGateway:ALMGProject>

View File

@@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<scade_req:ReqProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:scade_req="http://www.esterel-technologies.com/scade/lifecycle/almgateway/scade_req/1" identifier="C:\projets\ressac\use_case\microXAV\designXAV\designXAV.rqtf" text="designXAV">
<children xsi:type="scade_req:Document" identifier="F_MM_Requirements" text="F_MM_Requirements Word_Req">
<children xsi:type="scade_req:Section" identifier="1" text="1 Refinement of the definition of the MMS function" description="">
<children xsi:type="scade_req:Section" identifier="1.3" text="1.3 Behavior" description="">
<children xsi:type="scade_req:Section" identifier="1.3.1" text="1.3.1 Mission Viability computation" description="">
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_00" text="Req_F_MM_00" description="From the tables, F_MM must select the nearest neighbours and extract energy levels for each of these neighbours">
<children xsi:type="scade_req:IncomingReference" identifier="!ed/2918/1DFB/1050/58f0c89b60cd" text="viab::determine_viability/" type="Covering:trace" local="true"/>
</children>
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_01" text="Req_F_MM_01" description="F_MM must compute energy level by interpolation - with distance based averaging">
<children xsi:type="scade_req:IncomingReference" identifier="!ed/2918/1DFB/1050/58f0c89b60cd" text="viab::determine_viability/" type="Covering:trace" local="true"/>
</children>
</children>
<children xsi:type="scade_req:Section" identifier="1.3.2" text="1.3.2 Init Sequence" description="">
<children xsi:type="scade_req:Section" identifier="1.3.2.1" text="1.3.2.1 Payload boarding" description="">
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_10" text="Req_F_MM_10" description="A payload boarding sequence consists in 1. The bay is opened using the BAY SWITCH (Bayswitch is set to OPEN) 2. The payload is boarded in the bay 3. The bay is closed using the BAY SWITCH (Bayswitch is set to CLOSED)">
<children xsi:type="scade_req:IncomingReference" identifier="!ed/2917/623E/DF0/594380793291" text="manage_payload_boarding" type="Covering:trace" local="true"/>
</children>
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_11" text="Req_F_MM_11" description="When the bay is closed, the mass must be recorded from the CP's rotator or the USB key.">
<children xsi:type="scade_req:IncomingReference" identifier="!ed/2917/623E/DF0/594380793291" text="manage_payload_boarding" type="Covering:trace" local="true"/>
</children>
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_12" text="Req_F_MM_12" description="The rotators supersede any other means, unless value 99 is configured on the two wheels. In RP mode, GS supersedes the USB key, whereas in A mode the key supersedes any GS input."/>
</children>
<children xsi:type="scade_req:Section" identifier="1.3.2.2" text="1.3.2.2 Mission set up" description="">
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_20" text="Req_F_MM_20" description="Mission set up values must be taken into account when start message is received and payload mass is obtained. Then mission viability is computed.">
<children xsi:type="scade_req:IncomingReference" identifier="!ed/2b54/6F08/E3C/594798594fe9" text="set_up_mission" type="Covering:trace" local="true"/>
</children>
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_21" text="Req_F_MM_21" description="Mission parameters sources must be resolved. Ground station's values supersede the ones from USB Key.">
<children xsi:type="scade_req:IncomingReference" identifier="!ed/2b94/6F08/E3C/5947993f7ed1" text="select_navigation_data" type="Covering:trace" local="true"/>
</children>
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_22" text="Req_F_MM_22" description="Mission viability is computed at set up phase using payload mass, distance, navigation mode, altitude and speed received.">
<children xsi:type="scade_req:IncomingReference" identifier="!ed/2ba8/589C/1330/594d0c5e2a3d" text="stp::compute_set_up_viability/" type="Covering:trace" local="true"/>
</children>
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_23" text="Req_F_MM_23" description="When mission is decided viable, StartTakeOff order must be launched to F_FC. Otherwise MissionCANCELLED must be set to F_FC">
<children xsi:type="scade_req:IncomingReference" identifier="!ed/2b54/6F08/E3C/594798594fe9" text="stp::set_up_mission/" type="Covering:trace" local="true"/>
</children>
</children>
</children>
<children xsi:type="scade_req:Section" identifier="1.3.3" text="1.3.3 In flight functions" description="">
<children xsi:type="scade_req:Section" identifier="1.3.3.1" text="1.3.3.1 Viability computation" description="">
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_30" text="Req_F_MM_30" description="During flight, when flight mode is CRUISE, F_MM must compute the viability with periodic rate (0.1 Hz) using: payload mass, navigation mode, and current remaining distance (from F_FC), altitude (from F_FC) and speed (from F_FC)"/>
</children>
<children xsi:type="scade_req:Section" identifier="1.3.3.2" text="1.3.3.2 Mission termination control" description="">
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_40" text="Req_F_MM_40" description="During flight, F_MM must monitor current range and activate landing when (Distance-CurrentRange) &lt; GlideDistance(CurrentAltitude)."/>
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_41" text="Req_F_MM_41" description="GlideDistance is a tabulated function that gives the ground distance needed to reach altitude zero from CurrentAltitude."/>
</children>
<children xsi:type="scade_req:Section" identifier="1.3.3.3" text="1.3.3.3 Operating point update management" description="">
<children xsi:type="scade_req:Requirement" identifier="Req_F_MM_50" text="Req_F_MM_50" description="F_MM sends command to F_FC to freeze any change on the operating point when landing is activated."/>
</children>
</children>
</children>
</children>
</children>
</scade_req:ReqProject>

View File

@@ -1,100 +0,0 @@
[STUDIO\TOOLS\CONFIGURATIONS\Code Generator]
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\designXAV.etp"="Simulation"
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\F_MM.etp"="Simulation"
[STUDIO\TOOLS\CONFIGURATIONS\Reporter]
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\designXAV.etp"="HTML"
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\F_MM.etp"="HTML"
[STUDIO\TOOLS\CONFIGURATIONS\Synchronization]
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\designXAV.etp"="Synchronization"
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\F_MM.etp"="Synchronization"
[STUDIO\TOOLS\CONFIGURATIONS\Timing and Stack Analysis Tools]
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\designXAV.etp"="KCG"
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\F_MM.etp"="KCG"
[STUDIO\TOOLS\CONFIGURATIONS\DiffAnalyzer]
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\designXAV.etp"="KCG"
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\F_MM.etp"="KCG"
[STUDIO\TOOLS\CONFIGURATIONS\Instrumenter]
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\designXAV.etp"="Coverage"
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\F_MM.etp"="Coverage"
[STUDIO\Workspace]
"ActiveProject"="C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\F_MM.etp"
[SCADE\Editor\Shortcut]
"groupNb"="0"
[SCADE\Editor\Tool]
"UsePolyline"="false"
"TransitionKind"="strong"
[SCADE\Diff\Tool]
"LastProject1"=""
"LastProject2"=""
[SCADE\Generator\Tool]
"PragmaTarget"="C"
[STUDIO\TOOLS\CONFIGURATIONS\Design Verifier]
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\designXAV.etp"="KCG"
"C:\\projets\\ressac\\use_case\\microXAV\\designXAV\\F_MM.etp"="KCG"
[SCADE\Simulator\Simulation]
"Latency"="200"
"RefreshRate"="1"
[SCADE\Simulator\BinaryDisplay]
"Count"="0"
[SCADE\Simulator\OctalDisplay]
"Count"="0"
[SCADE\Simulator\HexadecimalDisplay]
"Count"="0"
[SCADE\Simulator\Watch]
"Watch1"="conf::Viability_Amode_initial/"
"Count"="1"
"Watch2"="f_mm::test_param/distance/"
"Watch3"="f_mm::test_param/speed/"
"Watch4"="f_mm::test_param/altitude/"
"Watch5"="f_mm::test_param/f_mm::create_poles_combinations 1/_L1/"
"Watch6"="f_mm::test_param/f_mm::create_poles_combinations 1/_L2/"
[SCADE\Simulator\Graph]
"Count"="0"
[SCADE\Simulator\ControlBreakpoint]
"Count"="0"
[SCADE\Simulator\DataBreakpoint]
"Count"="0"
[SCADE\Simulator\TclBreakpoint]
"Count"="0"

View File

@@ -1,20 +0,0 @@
-> 19/06/17 09:11:35
Open project C:\projets\ressac\use_case\microXAV\designXAV\designXAV.rqtf
-> 19/06/17 09:11:35
Error: Document not readable: file 'C:\projets\ressac\use_case\microXAV\designXAV\requirements.doc'
-> 19/06/17 09:13:44
Open project C:\projets\ressac\use_case\microXAV\designXAV\designXAV.rqtf
-> 19/06/17 09:24:40
Open project C:\projets\ressac\use_case\microXAV\designXAV\designXAV.rqtf
-> 19/06/17 09:25:09
Open project C:\projets\ressac\use_case\microXAV\designXAV\designXAV.rqtf
-> 23/06/17 14:34:49
Open project C:\projets\ressac\use_case\microXAV\designXAV\designXAV.rqtf
-> 23/06/17 14:36:03
Open project C:\projets\ressac\use_case\microXAV\designXAV\designXAV.rqtf
-> 23/06/17 14:36:24
Open project C:\projets\ressac\use_case\microXAV\designXAV\designXAV.rqtf
-> 23/06/17 14:38:05
Open project C:\projets\ressac\use_case\microXAV\designXAV\designXAV.rqtf
-> 23/06/17 14:38:12
Open project C:\projets\ressac\use_case\microXAV\designXAV\designXAV.rqtf

View File

@@ -1,24 +0,0 @@
[Files]
Names=F_MM_Requirements,SCADE Design
RepositoryTool=Boost
[F_MM_Requirements]
Cover1=SCADE Design
Cover1Position=2400@2400
GraphicPosition=2200@2200
Type=Word_Req
Path=C:\GitHub\RESSAC_Use_Case\UseCaseDevelopment\Layer1_MMS\app_working_dir\MMS_F_MM refinement.docx
AbsolutePath=C:\GitHub\RESSAC_Use_Case\UseCaseDevelopment\Layer1_MMS\app_working_dir\MMS_F_MM refinement.docx
[SCADE Design]
GraphicPosition=2600@2600
Variable1Name=dateFiles
Variable1Value=transform_index_structure.xscade<64>transform_index_structure.ann<6E>Square1.xscade<64>SqrtR1.xscade<64>SqrtR32.xscade<64>compute_sum_inverse_dist.xscade<64>compute_sum_inverse_dist.ann<6E>PowerR.xscade<64>PowerRR.xscade<64>Operator8.xscade<64>Operator8.ann<6E>PowerRR32.xscade<64>TruthTableIdx.xscade<64>TruthTableLineIdx.xscade<64>TruthTableElt.xscade<64>combine_poles.xscade<64>test_param.xscade<64>test_param.ann<6E>map_compute_distances.xscade<64>map_compute_distances.ann<6E>map_combine_values.xscade<64>map_combine_values.ann<6E>fold_compute_interpolation.xscade<64>fold_compute_interpolation.ann<6E>determine_viability1.xscade<64>determine_viability1.ann<6E>determine_closest_neighbours1.xscade<64>determine_closest_neighbours1.ann<6E>create_poles_combinations.xscade<64>create_poles_combinations.ann<6E>create_combinations.xscade<64>create_combinations.ann<6E>compute_necessary_energy.xscade<64>compute_necessary_energy.ann<6E>compute_distances.xscade<64>compute_distances.ann<6E>combine_poles1.xscade<64>combine_poles1.ann<6E>Operator13.xscade<64>Operator13.ann<6E>Operator15.xscade<64>Operator15.ann<6E>RisingEdge.xscade<64>FallingEdge.xscade<64>Package2.xscade<64>Package2.ann<6E>C:\\Users\\ANNEPE~1.POR\\AppData\\Local\\Temp\\Esterel Technologies\\StudioBackup\\determine_viability_V1.xscade<64>Package1.xscade<64>Package1.ann<6E>Package3.xscade<64>Package3.ann<6E>Package41.xscade<64>Package41.ann<6E>Package5.xscade<64>Package5.ann<6E>designXAV.trace
Variable2Name=icon
Variable2Value=./icons/Suite/Suite.png
Variable3Name=withImages
Variable3Value=0
Type=SCADE
Path=designXAV.etp
AbsolutePath=C:\projets\ressac\use_case\microXAV\designXAV\designXAV.etp

Some files were not shown because too many files have changed in this diff Show More