AIDA is a study case for model based system engineering, made by MOISE project. This project contains the safety models and analyses of AIDA
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4960 lines
236 KiB

/* Date : 1 avr. 2019 */
/* DataFlow format */
domain Physical_BasicPhysical_BasicPhysicalStatus = {ERRONEOUS, LOST, OK};
domain Physical_BasicPhysical_HiLoPhysicalStatus = {ERRONEOUS, HIGH_ERRONEOUS, LOST, LOW_ERRONEOUS, OK};
domain Physical_BasicPhysical_SensorHiLoPhysicalStatus = {ERRONEOUS, HIGH_ERRONEOUS, LOST, LOW_ERRONEOUS, OK, OUT_OF_RANGE};
domain Physical_BasicPhysical_SensorBasicPhysicalStatus = {ERRONEOUS, LOST, OK, OUT_OF_RANGE};
domain Physical_BasicPhysical_BinaryPhysicalStatus = {LOST, OK};
domain Functions_BasicFunctions_ModeSelection = {AUTO, MANUAL};
domain Functions_BasicFunctions_Presence = {ABSENT, PRESENT};
domain Functions_BasicFunctions_ModeSelection_ErroneousLost = {AUTO, ERRONEOUS, LOST, MANUAL};
domain Functions_BasicFunctions_BooleanStuck = {OK, STUCK_FALSE, STUCK_TRUE};
node Components_Payload_CameraSensor
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_err;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
assert
icone = case {
(status = LOST) : 2,
(status = ERRONEOUS) : 3,
else 1
},
output = case {
((Power = LOST) or (status = LOST)) : LOST,
((((Power = ERRONEOUS) or (Power = LOW_ERRONEOUS)) or (Power = HIGH_ERRONEOUS)) or (status = ERRONEOUS)) : ERRONEOUS,
else OK
};
init
status := OK;
extern
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
law <event fail_err> = exponential(1.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
edon
node Components_Payload_CameraRotarySupport
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_err;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
assert
icone = case {
(status = LOST) : 2,
(status = ERRONEOUS) : 3,
else 1
},
output = case {
((Power = LOST) or (status = LOST)) : LOST,
((((Power = ERRONEOUS) or (Power = LOW_ERRONEOUS)) or (Power = HIGH_ERRONEOUS)) or (status = ERRONEOUS)) : ERRONEOUS,
else OK
};
init
status := OK;
extern
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
law <event fail_err> = exponential(1.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
edon
node Functions_PhysicalOperators_AND_Physical_disymetric
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
minorInput:Physical_BasicPhysical_BasicPhysicalStatus:in;
majorInput:Physical_BasicPhysical_BasicPhysicalStatus:in;
assert
output = case {
(majorInput # OK) : majorInput,
else minorInput
},
icone = case {
(output = OK) : 1,
(output = LOST) : 2,
else 3
};
edon
node Functions_PhysicalOperators_AND_Physical_unaire
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
input:Physical_BasicPhysical_BasicPhysicalStatus:in;
assert
output = input,
icone = case {
(output = OK) : 1,
else 2
};
edon
node Components_CommunicationDevices_CommunicationDevice
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_recept_loss,
fail_recept_err;
trans
(status = OK) |- fail_recept_loss -> status := LOST;
(status = OK) |- fail_recept_err -> status := ERRONEOUS;
assert
icone = case {
(status = LOST) : 2,
else 1
},
output = case {
((Power = LOST) or (status = LOST)) : LOST,
((((Power = ERRONEOUS) or (Power = LOW_ERRONEOUS)) or (Power = HIGH_ERRONEOUS)) or (status = ERRONEOUS)) : ERRONEOUS,
else OK
};
init
status := OK;
extern
law <event fail_recept_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_recept_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_recept_loss>) = "Physical";
attribute DassaultSpecialCtrlPeriod(<event fail_recept_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_recept_err>) = "Physical";
edon
node Components_RemoteControl_RemoteCommunication
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_transm_err,
fail_transm_loss;
trans
(status = OK) |- fail_transm_loss -> status := LOST;
(status = OK) |- fail_transm_err -> status := ERRONEOUS;
assert
icone = case {
(status = LOST) : 2,
else 1
},
output = case {
((Power = LOST) or (status = LOST)) : LOST,
((((Power = ERRONEOUS) or (Power = LOW_ERRONEOUS)) or (Power = HIGH_ERRONEOUS)) or (status = ERRONEOUS)) : ERRONEOUS,
else OK
};
init
status := OK;
extern
attribute DassaultSpecialCtrlPeriod(<event fail_transm_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_transm_err>) = "Physical";
law <event fail_transm_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_transm_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_transm_loss>) = "Physical";
edon
node Components_PowerSupply_PowerGeneration
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
state
status:Physical_BasicPhysical_HiLoPhysicalStatus;
event
fail_err,
fail_unsuff,
fail_over,
fail_loss;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
(status = OK) |- fail_over -> status := HIGH_ERRONEOUS;
(status = OK) |- fail_unsuff -> status := LOW_ERRONEOUS;
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
},
output = status;
init
status := OK;
extern
law <event fail_err> = exponential(1.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
attribute DassaultSpecialCtrlPeriod(<event fail_unsuff>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_unsuff>) = "Physical";
attribute DassaultSpecialCtrlPeriod(<event fail_over>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_over>) = "Physical";
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
edon
node Components_RemoteControl_RemoteSwitch
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_err;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
},
output = case {
((status = LOST) or (Power = LOST)) : LOST,
((status = ERRONEOUS) or (Power = ERRONEOUS)) : ERRONEOUS,
(Power = LOW_ERRONEOUS) : LOW_ERRONEOUS,
(Power = HIGH_ERRONEOUS) : HIGH_ERRONEOUS,
else OK
};
init
status := OK;
extern
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
edon
node Components_Links_EPL
flow
icone:[1,3]:private;
input:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
state
status:Physical_BasicPhysical_HiLoPhysicalStatus;
event
fail_unsuff,
fail_err,
fail_loss;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
(status = OK) |- fail_unsuff -> status := LOW_ERRONEOUS;
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
},
output = case {
((status = LOST) or (input = LOST)) : LOST,
(status # OK) : status,
else input
};
init
status := OK;
extern
attribute DassaultSpecialCtrlPeriod(<event fail_unsuff>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_unsuff>) = "Physical";
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
edon
node Components_RemoteControl_RemoteControlInterface
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_err;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
},
output = status;
init
status := OK;
extern
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
edon
node Components_Networks_DigitalNetwork
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_err;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
assert
icone = case {
(status = LOST) : 2,
(status = ERRONEOUS) : 3,
else 1
},
output = status;
init
status := OK;
extern
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
law <event fail_err> = exponential(1.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
edon
node Components_Sensors_SimpleSensor
flow
icone:[1,3]:private;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
state
status:Physical_BasicPhysical_SensorHiLoPhysicalStatus;
event
fail_highErr,
fail_lowErr,
fail_loss,
fail_err,
fail_outOfRange;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_highErr -> status := HIGH_ERRONEOUS;
(status = OK) |- fail_lowErr -> status := LOW_ERRONEOUS;
(status = OK) |- fail_err -> status := ERRONEOUS;
(status = OK) |- fail_outOfRange -> status := OUT_OF_RANGE;
assert
icone = case {
(status = LOST) : 2,
(status = HIGH_ERRONEOUS) : 3,
(status = LOW_ERRONEOUS) : 3,
else 1
},
output = case {
((Power = LOST) or (status = LOST)) : LOST,
(((Power = ERRONEOUS) or (Power = LOW_ERRONEOUS)) or (Power = HIGH_ERRONEOUS)) : ERRONEOUS,
(status = ERRONEOUS) : ERRONEOUS,
(status = OUT_OF_RANGE) : LOST,
(status = HIGH_ERRONEOUS) : HIGH_ERRONEOUS,
(status = LOW_ERRONEOUS) : LOW_ERRONEOUS,
else OK
};
init
status := OK;
extern
law <event fail_highErr> = exponential(1.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_highErr>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_highErr>) = "Physical";
law <event fail_lowErr> = exponential(1.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_lowErr>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_lowErr>) = "Physical";
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
law <event fail_err> = exponential(1.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
attribute DassaultSpecialCtrlPeriod(<event fail_outOfRange>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_outOfRange>) = "Physical";
edon
node Components_Sensors_ComplexSensor
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
state
status:Physical_BasicPhysical_SensorBasicPhysicalStatus;
event
fail_loss,
fail_err,
fail_outOfRange;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
(status = OK) |- fail_outOfRange -> status := OUT_OF_RANGE;
assert
icone = case {
(status = LOST) : 2,
(status = ERRONEOUS) : 3,
else 1
},
output = case {
((Power = LOST) or (status = LOST)) : LOST,
((((Power = ERRONEOUS) or (Power = LOW_ERRONEOUS)) or (Power = HIGH_ERRONEOUS)) or (status = ERRONEOUS)) : ERRONEOUS,
(status = OUT_OF_RANGE) : LOST,
else OK
};
init
status := OK;
extern
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
law <event fail_err> = exponential(1.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
attribute DassaultSpecialCtrlPeriod(<event fail_outOfRange>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_outOfRange>) = "Physical";
edon
node Components_Sensors_PowerSupplyMonitoring
flow
icone:[1,2]:private;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MonitoredPower:Physical_BasicPhysical_BasicPhysicalStatus:out;
state
status:Physical_BasicPhysical_BinaryPhysicalStatus;
event
fail_lossOfMonitoring;
trans
(status = OK) |- fail_lossOfMonitoring -> status := LOST;
assert
icone = case {
(status = LOST) : 2,
else 1
},
MonitoredPower = case {
(Power = LOST) : LOST,
((((Power = ERRONEOUS) or (Power = HIGH_ERRONEOUS)) or (Power = LOW_ERRONEOUS)) and (status = OK)) : LOST,
((((Power = ERRONEOUS) or (Power = HIGH_ERRONEOUS)) or (Power = LOW_ERRONEOUS)) and (status = LOST)) : ERRONEOUS,
else OK
};
init
status := OK;
extern
attribute DassaultSpecialCtrlPeriod(<event fail_lossOfMonitoring>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_lossOfMonitoring>) = "Physical";
edon
node Components_Computers_Computation
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power:Physical_BasicPhysical_BasicPhysicalStatus:in;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_err;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
assert
icone = case {
(status = LOST) : 2,
(status = ERRONEOUS) : 3,
else 1
},
output = case {
((Power = LOST) or (status = LOST)) : LOST,
(status = ERRONEOUS) : ERRONEOUS,
else Power
};
init
status := OK;
extern
law <event fail_loss> = exponential(1.0E-4);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
law <event fail_err> = exponential(1.0E-7);
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
edon
node Components_Computers_AcquisitionEmission
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power:Physical_BasicPhysical_BasicPhysicalStatus:in;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_err;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
assert
icone = case {
(status = LOST) : 2,
(status = ERRONEOUS) : 3,
else 1
},
output = case {
((Power = LOST) or (status = LOST)) : LOST,
(status = ERRONEOUS) : ERRONEOUS,
else Power
};
init
status := OK;
extern
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
law <event fail_err> = exponential(1.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
edon
node Functions_PhysicalOperators_PhysicalInjection
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
input:Physical_BasicPhysical_BasicPhysicalStatus:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = LOST) : 2,
else 3
},
output = case {
(alloc # OK) : alloc,
else input
};
edon
node Functions_BasicFunctions_InOutFunction
flow
icone:[1,3]:private;
input:Physical_BasicPhysical_BasicPhysicalStatus:in;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_error;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_error -> status := ERRONEOUS;
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
},
output = case {
(status = OK) : input,
else status
};
init
status := OK;
extern
law <event fail_loss> = constant(1.0E-4);
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Functional";
law <event fail_error> = constant(1.0E-5);
attribute TypeOfEvent0x002f1(<event fail_error>) = "Functional";
edon
node Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status
flow
icone:[1,3]:private;
output:Functions_BasicFunctions_ModeSelection:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
isErroneous:bool:out;
isAlreadyErroneous:bool:in;
input:Functions_BasicFunctions_ModeSelection:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = ERRONEOUS) : 3,
else 2
},
output = case {
(alloc = LOST) : MANUAL,
((alloc = ERRONEOUS) and isAlreadyErroneous) : input,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = MANUAL)) : AUTO,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = AUTO)) : MANUAL,
else input
},
isErroneous = case {
(alloc = LOST) : isAlreadyErroneous,
((alloc = ERRONEOUS) and isAlreadyErroneous) : true,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = MANUAL)) : true,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = AUTO)) : true,
else isAlreadyErroneous
};
edon
node Functions_BasicFunctions_InOutModeFunction
flow
icone:[1,2]:private;
outputMode:Functions_BasicFunctions_ModeSelection:out;
inputMode:Functions_BasicFunctions_ModeSelection:in;
state
status:{OK, STUCK_AUTO, STUCK_MAN};
event
stuck_auto,
stuck_man;
trans
(status = OK) |- stuck_man -> status := STUCK_MAN;
(status = OK) |- stuck_auto -> status := STUCK_AUTO;
assert
outputMode = case {
(status = STUCK_AUTO) : AUTO,
(status = STUCK_MAN) : MANUAL,
else inputMode
},
icone = (if (outputMode = AUTO) then 1 else 2);
init
status := OK;
extern
law <event stuck_auto> = exponential(0.001);
attribute DassaultSpecialCtrlPeriod(<event stuck_auto>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event stuck_auto>) = "Functional";
law <event stuck_man> = exponential(0.001);
attribute DassaultSpecialCtrlPeriod(<event stuck_man>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event stuck_man>) = "Functional";
edon
node Functions_BasicFunctions_SourceFunction
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_error;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_error -> status := ERRONEOUS;
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
},
output = status;
init
status := OK;
extern
law <event fail_loss> = constant(1.0E-4);
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Functional";
law <event fail_error> = constant(1.0E-5);
attribute TypeOfEvent0x002f1(<event fail_error>) = "Functional";
edon
node AIDASystem_Functions_Detection_v44
flow
inputFlightPlan:Physical_BasicPhysical_BasicPhysicalStatus:in;
inputPosition:Physical_BasicPhysical_BasicPhysicalStatus:in;
inputSpeed:Physical_BasicPhysical_HiLoPhysicalStatus:in;
inputControlPosition:Physical_BasicPhysical_BasicPhysicalStatus:in;
inputLostHelixesControl:bool:in;
inputIndicatedMode:Functions_BasicFunctions_ModeSelection:in;
PilotSelectedMode:Functions_BasicFunctions_ModeSelection:out;
ManualPayloadControl:Functions_BasicFunctions_Presence:out;
PilotInconsistentControl:bool:out;
PilotOrders:Functions_BasicFunctions_Presence:out;
state
mode:Functions_BasicFunctions_ModeSelection;
event
GoToManualMode;
trans
(mode = AUTO) |- GoToManualMode -> mode := MANUAL;
assert
PilotSelectedMode = (if (mode = AUTO) then AUTO else MANUAL),
ManualPayloadControl = (if (mode = AUTO) then ABSENT else PRESENT),
PilotInconsistentControl = ((mode = AUTO) and ((((((inputFlightPlan = ERRONEOUS) or (inputPosition # OK)) or (inputSpeed # OK)) or (inputControlPosition # OK)) or inputLostHelixesControl) or (inputIndicatedMode = MANUAL))),
PilotOrders = (if (mode = AUTO) then ABSENT else PRESENT);
init
mode := AUTO;
extern
law <event GoToManualMode> = exponential(0.001);
attribute DassaultSpecialCtrlPeriod(<event GoToManualMode>) = 9.877E8;
edon
node Functions_PhysicalOperators_PhysicalInjection_bothHiLo
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
input:Physical_BasicPhysical_HiLoPhysicalStatus:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = LOST) : 2,
else 3
},
output = case {
(alloc = LOST) : LOST,
(alloc = ERRONEOUS) : ERRONEOUS,
else input
};
edon
node Functions_BasicFunctions_InOutFunction_Hilo_SF325
flow
icone:[1,3]:private;
input:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output_2:Physical_BasicPhysical_BasicPhysicalStatus:out;
output_1:Physical_BasicPhysical_HiLoPhysicalStatus:out;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_error;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_error -> status := ERRONEOUS;
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
},
output_2 = case {
(status = LOST) : LOST,
(status = ERRONEOUS) : ERRONEOUS,
(input = OK) : OK,
(input = LOST) : LOST,
else ERRONEOUS
},
output_1 = case {
(status = LOST) : LOST,
(status = ERRONEOUS) : ERRONEOUS,
else input
};
init
status := OK;
extern
law <event fail_loss> = constant(1.0E-4);
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Functional";
law <event fail_error> = constant(1.0E-5);
attribute TypeOfEvent0x002f1(<event fail_error>) = "Functional";
edon
node Functions_BasicOperators_AND_fullHiLo
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
input_1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
input_2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
assert
output = case {
((input_1 = LOST) or (input_2 = LOST)) : LOST,
((input_1 = ERRONEOUS) or (input_2 = ERRONEOUS)) : ERRONEOUS,
(input_1 = input_2) : input_1,
(input_1 = OK) : input_2,
(input_2 = OK) : input_1,
else ERRONEOUS
},
icone = case {
(output = OK) : 1,
else 2
};
edon
node Functions_BasicFunctions_InOutFunction_HiLo
flow
icone:[1,3]:private;
input:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_error;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_error -> status := ERRONEOUS;
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
},
output = case {
(status = LOST) : LOST,
(status = ERRONEOUS) : ERRONEOUS,
else input
};
init
status := OK;
extern
law <event fail_loss> = constant(1.0E-4);
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Functional";
law <event fail_error> = constant(1.0E-5);
attribute TypeOfEvent0x002f1(<event fail_error>) = "Functional";
edon
node Functions_BasicOperators_AND_complexHiLo
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
input_1:Physical_BasicPhysical_BasicPhysicalStatus:in;
input_2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
assert
output = case {
((input_1 = LOST) or (input_2 = LOST)) : LOST,
(input_1 = ERRONEOUS) : ERRONEOUS,
else input_2
},
icone = case {
(output = OK) : 1,
else 2
};
edon
node Functions_PhysicalOperators_PhysicalInjection_HiLo
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
alloc:Physical_BasicPhysical_HiLoPhysicalStatus:in;
input:Physical_BasicPhysical_BasicPhysicalStatus:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = LOST) : 2,
else 3
},
output = case {
(alloc # OK) : alloc,
(input = OK) : OK,
(input = LOST) : LOST,
else ERRONEOUS
};
edon
node Functions_BasicFunctions_InOutFunction_HiLoReverse
flow
icone:[1,3]:private;
input:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_error;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_error -> status := ERRONEOUS;
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
},
output = case {
(status = LOST) : LOST,
(status = ERRONEOUS) : ERRONEOUS,
(input = LOW_ERRONEOUS) : HIGH_ERRONEOUS,
(input = HIGH_ERRONEOUS) : LOW_ERRONEOUS,
else input
};
init
status := OK;
extern
law <event fail_loss> = constant(1.0E-4);
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Functional";
law <event fail_error> = constant(1.0E-5);
attribute TypeOfEvent0x002f1(<event fail_error>) = "Functional";
edon
node Functions_PhysicalOperators_AND_Physical
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
input_1:Physical_BasicPhysical_BasicPhysicalStatus:in;
input_2:Physical_BasicPhysical_BasicPhysicalStatus:in;
assert
output = (if ((input_1 = OK) and (input_2 = OK)) then OK else (if ((input_1 = LOST) or (input_2 = LOST)) then LOST else ERRONEOUS)),
icone = case {
(output = OK) : 1,
else 2
};
edon
node Functions_BasicOperators_ErrConditionalSelector_2_ComplexHiLo
flow
icone:[1,2]:private;
inputAUTO:Physical_BasicPhysical_BasicPhysicalStatus:in;
inputMANUAL:Physical_BasicPhysical_HiLoPhysicalStatus:in;
condition:Functions_BasicFunctions_ModeSelection:in;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
assert
icone = (if (condition = AUTO) then 1 else 2),
output = case {
(condition = MANUAL) : inputMANUAL,
(inputAUTO = OK) : OK,
(inputAUTO = LOST) : LOST,
else ERRONEOUS
};
edon
node Functions_PhysicalOperators_PhysicalInjection_detection
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
input:Physical_BasicPhysical_BasicPhysicalStatus:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = LOST) : 2,
else 3
},
output = case {
((alloc = LOST) or (alloc = ERRONEOUS)) : LOST,
else input
};
edon
node Functions_BasicOperators_detectionOfErroneous
flow
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
input:Physical_BasicPhysical_BasicPhysicalStatus:in;
assert
output = case {
(input = OK) : OK,
else LOST
};
edon
node Functions_BasicOperators_AND
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
input_1:Physical_BasicPhysical_BasicPhysicalStatus:in;
input_2:Physical_BasicPhysical_BasicPhysicalStatus:in;
assert
output = (if ((input_1 = OK) and (input_2 = OK)) then OK else (if ((input_1 = LOST) or (input_2 = LOST)) then LOST else ERRONEOUS)),
icone = case {
(output = OK) : 1,
else 2
};
edon
node Functions_BasicOperators_ErrConditionalSelector_2
flow
icone:[1,2]:private;
inputAUTO:Physical_BasicPhysical_BasicPhysicalStatus:in;
inputMANUAL:Physical_BasicPhysical_BasicPhysicalStatus:in;
condition:Functions_BasicFunctions_ModeSelection:in;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
assert
icone = (if (condition = AUTO) then 1 else 2),
output = (if (condition = AUTO) then inputAUTO else inputMANUAL);
edon
node Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Origin
flow
icone:[1,3]:private;
output:bool:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
input:bool:in;
isErroneous:bool:out;
assert
icone = case {
(alloc = OK) : 1,
(alloc = LOST) : 2,
else 3
},
output = case {
(alloc = LOST) : false,
(alloc = ERRONEOUS) : (not input),
else input
},
isErroneous = case {
(alloc = ERRONEOUS) : true,
else false
};
edon
node Functions_BasicOperators_Comparator_HiLo
flow
input1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
status_acquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
input2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:bool:out;
assert
output = case {
(input1 = LOST) : true,
(input2 = LOST) : true,
(((input1 = ERRONEOUS) and (input2 = ERRONEOUS)) and (status_acquisition = ERRONEOUS)) : true,
(input1 = input2) : false,
(input1 = OK) : true,
(input2 = OK) : true,
(input1 = ERRONEOUS) : false,
(input2 = ERRONEOUS) : false,
else true
};
edon
node Functions_PhysicalOperators_PhysicalInjection_boolean_Status
flow
icone:[1,3]:private;
output:bool:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
input:bool:in;
isErroneous:bool:out;
isAlreadyErroneous:bool:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = LOST) : 2,
else 3
},
output = case {
(alloc = LOST) : false,
((alloc = ERRONEOUS) and isAlreadyErroneous) : input,
((alloc = ERRONEOUS) and (not isAlreadyErroneous)) : (not input),
else input
},
isErroneous = case {
(alloc = LOST) : isAlreadyErroneous,
((alloc = ERRONEOUS) and isAlreadyErroneous) : true,
((alloc = ERRONEOUS) and (not isAlreadyErroneous)) : true,
else input
};
edon
node Boolean_Boolean_or4
flow
icone:[1,2]:private;
O:bool:out;
I1:bool:in;
I2:bool:in;
I3:bool:in;
I4:bool:in;
assert
icone = case {
(((I1 or I2) or I3) or I4) : 1,
else 2
},
O = (((I1 or I2) or I3) or I4);
edon
node Functions_BasicOperators_ANDBoolErrLost
flow
icone:[1,2]:private;
input:bool:in;
output:bool:out;
failurePropagation:Physical_BasicPhysical_BasicPhysicalStatus:in;
assert
icone = (if (failurePropagation = OK) then 1 else 2),
output = case {
(failurePropagation = LOST) : false,
(failurePropagation = ERRONEOUS) : true,
else input
};
edon
node Functions_BasicOperators_Comparator
flow
input1:Physical_BasicPhysical_BasicPhysicalStatus:in;
status_acquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
input2:Physical_BasicPhysical_BasicPhysicalStatus:in;
output:bool:out;
assert
output = case {
(input1 = LOST) : true,
(input2 = LOST) : true,
(((input1 = ERRONEOUS) and (input2 = ERRONEOUS)) and (status_acquisition = ERRONEOUS)) : true,
(input1 = input2) : false,
else true
};
edon
node Functions_BasicOperators_OR_3
flow
icone:[1,2]:private;
O:bool:out;
I1:bool:in;
I2:bool:in;
I3:bool:in;
assert
icone = case {
((I1 or I2) or I3) : 1,
else 2
},
O = ((I1 or I2) or I3);
edon
node Quadcopter_Observers_PilotRequiresManualMode
flow
icone:[1,2]:private;
output:bool:out;
input:Functions_BasicFunctions_ModeSelection:in;
assert
output = (input = MANUAL),
icone = (if output then 2 else 1);
edon
node Boolean_Boolean_filter
flow
filterCriterion:bool:in;
input:bool:in;
output:bool:out;
assert
output = (if filterCriterion then false else input);
edon
node Quadcopter_Observers_StuckModeMAN_v03
flow
icone:[1,2]:private;
output:bool:out;
PilotAPEngagementOrder:Functions_BasicFunctions_ModeSelection:in;
AppliedAPEngagement:Functions_BasicFunctions_ModeSelection:in;
assert
output = ((AppliedAPEngagement = MANUAL) and (PilotAPEngagementOrder = AUTO)),
icone = (if output then 2 else 1);
edon
node Boolean_Boolean_or2
flow
icone:[1,2]:private;
O:bool:out;
I1:bool:in;
I2:bool:in;
assert
icone = case {
(I1 or I2) : 1,
else 2
},
O = (I1 or I2);
edon
node Quadcopter_Observers_StuckMode_v03
flow
icone:[1,2]:private;
output:bool:out;
input:Functions_BasicFunctions_ModeSelection:in;
assert
output = (input = AUTO),
icone = (if output then 2 else 1);
edon
node Boolean_Boolean_intermediate
flow
icone:[1,2]:private;
O:bool:out;
I:bool:in;
assert
icone = case {
I : 1,
else 2
},
O = I;
edon
node Boolean_Boolean_and2
flow
O:bool:out;
I1:bool:in;
I2:bool:in;
assert
O = (I1 and I2);
edon
node Quadcopter_Observers_ErroneousControlOfOneHelix
flow
icone:[1,2]:private;
in1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
in2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
in3:Physical_BasicPhysical_HiLoPhysicalStatus:in;
in4:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:bool:out;
assert
output = ((((((((in1 = ERRONEOUS) or (in1 = HIGH_ERRONEOUS)) or (in2 = ERRONEOUS)) or (in2 = HIGH_ERRONEOUS)) or (in3 = ERRONEOUS)) or (in3 = HIGH_ERRONEOUS)) or (in4 = ERRONEOUS)) or (in4 = HIGH_ERRONEOUS)),
icone = (if output then 2 else 1);
edon
node Quadcopter_Observers_TotalLossOfHelixesControl
flow
icone:[1,2]:private;
in1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
in2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
in3:Physical_BasicPhysical_HiLoPhysicalStatus:in;
in4:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:bool:out;
assert
output = (((((in1 = LOST) or (in1 = LOW_ERRONEOUS)) and ((in2 = LOST) or (in2 = LOW_ERRONEOUS))) and ((in3 = LOST) or (in3 = LOW_ERRONEOUS))) and ((in4 = LOST) or (in4 = LOW_ERRONEOUS))),
icone = (if output then 2 else 1);
edon
node Quadcopter_Observers_LossOfAtMost3HelixesControl
flow
icone:[1,2]:private;
in1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
in2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
in3:Physical_BasicPhysical_HiLoPhysicalStatus:in;
in4:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:bool:out;
assert
output = (((((((((in1 = LOST) or (in1 = LOW_ERRONEOUS)) and ((in2 # ERRONEOUS) and (in2 # HIGH_ERRONEOUS))) and ((in3 # ERRONEOUS) and (in3 # HIGH_ERRONEOUS))) and ((in4 # ERRONEOUS) and (in4 # HIGH_ERRONEOUS))) or (((((in2 = LOST) or (in2 = LOW_ERRONEOUS)) and ((in1 # ERRONEOUS) and (in1 # HIGH_ERRONEOUS))) and ((in3 # ERRONEOUS) and (in3 # HIGH_ERRONEOUS))) and ((in4 # ERRONEOUS) and (in4 # HIGH_ERRONEOUS)))) or (((((in3 = LOST) or (in3 = LOW_ERRONEOUS)) and ((in1 # ERRONEOUS) and (in1 # HIGH_ERRONEOUS))) and ((in2 # ERRONEOUS) and (in2 # HIGH_ERRONEOUS))) and ((in4 # ERRONEOUS) and (in4 # HIGH_ERRONEOUS)))) or (((((in4 = LOST) or (in4 = LOW_ERRONEOUS)) and ((in1 # ERRONEOUS) and (in1 # HIGH_ERRONEOUS))) and ((in2 # ERRONEOUS) and (in2 # HIGH_ERRONEOUS))) and ((in3 # ERRONEOUS) and (in3 # HIGH_ERRONEOUS)))) and (not (((((in1 = LOST) or (in1 = LOW_ERRONEOUS)) and ((in2 = LOST) or (in2 = LOW_ERRONEOUS))) and ((in3 = LOST) or (in3 = LOW_ERRONEOUS))) and ((in4 = LOST) or (in4 = LOW_ERRONEOUS))))),
icone = (if output then 2 else 1);
edon
node Functions_PhysicalOperators_PhysicalInjection_Presence_Status
flow
icone:[1,3]:private;
output:Functions_BasicFunctions_Presence:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
isErroneous:bool:out;
isAlreadyErroneous:bool:in;
input:Functions_BasicFunctions_Presence:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = ERRONEOUS) : 3,
else 2
},
output = case {
(alloc = LOST) : PRESENT,
((alloc = ERRONEOUS) and isAlreadyErroneous) : input,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = PRESENT)) : ABSENT,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = ABSENT)) : PRESENT,
else input
},
isErroneous = case {
(alloc = LOST) : isAlreadyErroneous,
((alloc = ERRONEOUS) and isAlreadyErroneous) : true,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = PRESENT)) : true,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = ABSENT)) : true,
else isAlreadyErroneous
};
edon
node Functions_BasicOperators_PerfectPresenceSelectorOK
flow
icone:[1,2]:private;
input:Physical_BasicPhysical_BasicPhysicalStatus:in;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
condition:Functions_BasicFunctions_Presence:in;
assert
icone = (if (condition = PRESENT) then 2 else 1),
output = (if (condition = PRESENT) then OK else input);
edon
node Functions_PhysicalOperators_PhysicalInjection_Presence_Status_Origin
flow
icone:[1,3]:private;
output:Functions_BasicFunctions_Presence:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
isErroneous:bool:out;
input:Functions_BasicFunctions_Presence:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = ERRONEOUS) : 3,
else 2
},
output = case {
(alloc = LOST) : PRESENT,
((alloc = ERRONEOUS) and (input = PRESENT)) : ABSENT,
((alloc = ERRONEOUS) and (input = ABSENT)) : PRESENT,
else input
},
isErroneous = case {
(alloc = ERRONEOUS) : true,
else false
};
edon
node Functions_BasicFunctions_AbsentPresentFunction
flow
icone:[1,2]:private;
input:Functions_BasicFunctions_Presence:in;
output:Functions_BasicFunctions_Presence:out;
state
status:Physical_BasicPhysical_BinaryPhysicalStatus;
event
fail_loss;
trans
(status = OK) |- fail_loss -> status := LOST;
assert
icone = case {
(status = OK) : 1,
else 2
},
output = case {
(status = OK) : input,
else ABSENT
};
init
status := OK;
extern
law <event fail_loss> = exponential(1.0E-6);
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Functional";
edon
node Functions_PhysicalOperators_PhysicalInjection_Presence_2_Status_Origin
flow
icone:[1,3]:private;
output:Functions_BasicFunctions_Presence:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
isErroneous:bool:out;
input:Functions_BasicFunctions_Presence:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = ERRONEOUS) : 3,
else 2
},
output = case {
(alloc = LOST) : ABSENT,
((alloc = ERRONEOUS) and (input = PRESENT)) : ABSENT,
((alloc = ERRONEOUS) and (input = ABSENT)) : PRESENT,
else input
},
isErroneous = case {
(alloc = ERRONEOUS) : true,
else false
};
edon
node Functions_BasicOperators_PerfectPresenceSelectorLOSS
flow
icone:[1,2]:private;
input:Physical_BasicPhysical_BasicPhysicalStatus:in;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
condition:Functions_BasicFunctions_Presence:in;
assert
icone = (if (condition = ABSENT) then 1 else 2),
output = (if (condition = PRESENT) then LOST else input);
edon
node Functions_BasicFunctions_SourcePresenceFunction
flow
icone:[1,2]:private;
output:Functions_BasicFunctions_Presence:out;
state
status:Functions_BasicFunctions_Presence;
event
fail_inadv;
trans
(status = ABSENT) |- fail_inadv -> status := PRESENT;
assert
icone = case {
(status = ABSENT) : 1,
else 2
},
output = status;
init
status := ABSENT;
extern
law <event fail_inadv> = constant(1.0E-5);
attribute TypeOfEvent0x002f1(<event fail_inadv>) = "Functional";
edon
node Functions_BasicOperators_Choice
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
input_1:Physical_BasicPhysical_BasicPhysicalStatus:in;
input_2:Physical_BasicPhysical_BasicPhysicalStatus:in;
assert
icone = (if (input_2 = ERRONEOUS) then 2 else 1),
output = (if (input_2 = ERRONEOUS) then ERRONEOUS else input_1);
edon
node Functions_PhysicalOperators_PhysicalInjection_ModeSelectionErroneousLost
flow
icone:[1,3]:private;
output:Functions_BasicFunctions_ModeSelection_ErroneousLost:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
input:Functions_BasicFunctions_ModeSelection_ErroneousLost:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = ERRONEOUS) : 3,
else 2
},
output = case {
(alloc = LOST) : LOST,
(alloc = ERRONEOUS) : ERRONEOUS,
else input
};
edon
node Functions_BasicOperators_transtypageMode
flow
icone:[1,2]:private;
O:Functions_BasicFunctions_ModeSelection_ErroneousLost:out;
I:Functions_BasicFunctions_ModeSelection:in;
assert
icone = case {
(I = AUTO) : 1,
else 2
},
O = (if (I = AUTO) then AUTO else MANUAL);
edon
node Functions_BasicFunctions_ErroneousLostModeSelector
flow
icone:[1,2]:private;
outputMode:Functions_BasicFunctions_ModeSelection_ErroneousLost:out;
inputMode:Functions_BasicFunctions_ModeSelection_ErroneousLost:in;
state
status:{LOSS, OK, STUCK_AUTO, STUCK_MAN, UNDEF};
event
stuck_auto,
stuck_manual,
OscillatoryModeSelection,
fail_loss;
trans
(status = OK) |- stuck_auto -> status := STUCK_AUTO;
(status = OK) |- stuck_manual -> status := STUCK_MAN;
(status = OK) |- OscillatoryModeSelection -> status := UNDEF;
(status = OK) |- fail_loss -> status := LOSS;
assert
outputMode = case {
((status = OK) and (inputMode = AUTO)) : AUTO,
((status = OK) and (inputMode = MANUAL)) : MANUAL,
((status = OK) and (inputMode = ERRONEOUS)) : ERRONEOUS,
(status = LOSS) : LOST,
(status = STUCK_AUTO) : AUTO,
(status = UNDEF) : ERRONEOUS,
else MANUAL
},
icone = case {
(outputMode = AUTO) : 1,
else 2
};
init
status := OK;
extern
law <event stuck_auto> = exponential(0.001);
attribute DassaultSpecialCtrlPeriod(<event stuck_auto>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event stuck_auto>) = "Functional";
law <event stuck_manual> = exponential(0.001);
attribute DassaultSpecialCtrlPeriod(<event stuck_manual>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event stuck_manual>) = "Functional";
law <event OscillatoryModeSelection> = exponential(0.001);
attribute DassaultSpecialCtrlPeriod(<event OscillatoryModeSelection>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event OscillatoryModeSelection>) = "Functional";
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Functional";
edon
node Functions_PhysicalOperators_PhysicalInjection_ModeSelectionErroneousLost_Status
flow
icone:[1,3]:private;
output:Functions_BasicFunctions_ModeSelection_ErroneousLost:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
isErroneous:bool:out;
isAlreadyErroneous:bool:in;
input:Functions_BasicFunctions_ModeSelection_ErroneousLost:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = ERRONEOUS) : 3,
else 2
},
output = case {
(alloc = LOST) : MANUAL,
((alloc = ERRONEOUS) and isAlreadyErroneous) : input,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = MANUAL)) : AUTO,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = AUTO)) : MANUAL,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = ERRONEOUS)) : ERRONEOUS,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = LOST)) : ERRONEOUS,
else input
},
isErroneous = case {
(alloc = LOST) : isAlreadyErroneous,
((alloc = ERRONEOUS) and isAlreadyErroneous) : true,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = MANUAL)) : true,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = AUTO)) : true,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = ERRONEOUS)) : false,
(((alloc = ERRONEOUS) and (not isAlreadyErroneous)) and (input = LOST)) : false,
else isAlreadyErroneous
};
edon
node Functions_BasicFunctions_ErroneousLostPresentModeSelector
flow
icone:[1,2]:private;
outputMode:Functions_BasicFunctions_ModeSelection_ErroneousLost:out;
inputMode:Functions_BasicFunctions_ModeSelection_ErroneousLost:in;
ManualOverride:Physical_BasicPhysical_BasicPhysicalStatus:in;
MissionCompleted:Functions_BasicFunctions_Presence:in;
state
status:{LOSS, OK, STUCK_AUTO, STUCK_MAN, UNDEF};
event
stuck_auto,
stuck_manual,
OscillatoryModeSelection,
fail_loss;
trans
(status = OK) |- stuck_auto -> status := STUCK_AUTO;
(status = OK) |- stuck_manual -> status := STUCK_MAN;
(status = OK) |- OscillatoryModeSelection -> status := UNDEF;
(status = OK) |- fail_loss -> status := LOSS;
assert
outputMode = case {
((status = OK) and ((ManualOverride # LOST) or (MissionCompleted = PRESENT))) : MANUAL,
((status = OK) and (inputMode = AUTO)) : AUTO,
((status = OK) and (inputMode = MANUAL)) : MANUAL,
((status = OK) and (inputMode = ERRONEOUS)) : ERRONEOUS,
((status = OK) and (inputMode = LOST)) : MANUAL,
(status = STUCK_AUTO) : AUTO,
(status = STUCK_MAN) : MANUAL,
(status = UNDEF) : ERRONEOUS,
else LOST
},
icone = case {
(outputMode = AUTO) : 1,
else 2
};
init
status := OK;
extern
law <event stuck_auto> = exponential(0.001);
attribute DassaultSpecialCtrlPeriod(<event stuck_auto>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event stuck_auto>) = "Functional";
law <event stuck_manual> = exponential(0.001);
attribute DassaultSpecialCtrlPeriod(<event stuck_manual>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event stuck_manual>) = "Functional";
law <event OscillatoryModeSelection> = exponential(0.001);
attribute DassaultSpecialCtrlPeriod(<event OscillatoryModeSelection>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event OscillatoryModeSelection>) = "Functional";
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Functional";
edon
node Functions_BasicFunctions_FaultyManualModeSelector_LossType
flow
icone:[1,2]:private;
outputMode:Functions_BasicFunctions_ModeSelection:out;
inputMode:Functions_BasicFunctions_ModeSelection_ErroneousLost:in;
FlightPlanInterruption:Functions_BasicFunctions_Presence:out;
state
status:{OK, STUCK_AUTO, STUCK_MANUAL};
event
stuck_auto,
stuck_manual;
trans
(status = OK) |- stuck_auto -> status := STUCK_AUTO;
(status = OK) |- stuck_manual -> status := STUCK_MANUAL;
assert
outputMode = case {
((status = OK) and ((inputMode = ERRONEOUS) or (inputMode = LOST))) : MANUAL,
((status = OK) and (inputMode = AUTO)) : AUTO,
((status = OK) and (inputMode = MANUAL)) : MANUAL,
(status = STUCK_AUTO) : AUTO,
else MANUAL
},
icone = case {
(outputMode = AUTO) : 1,
else 2
},
FlightPlanInterruption = case {
((status = OK) and ((inputMode = ERRONEOUS) or (inputMode = LOST))) : PRESENT,
((status = OK) and (inputMode = AUTO)) : ABSENT,
((status = OK) and (inputMode = MANUAL)) : PRESENT,
(status = STUCK_AUTO) : ABSENT,
else PRESENT
};
init
status := OK;
extern
attribute DassaultSpecialCtrlPeriod(<event stuck_auto>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event stuck_auto>) = "Functional";
attribute DassaultSpecialCtrlPeriod(<event stuck_manual>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event stuck_manual>) = "Functional";
edon
node Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Actuators
flow
icone:[1,3]:private;
output:bool:out;
alloc:Physical_BasicPhysical_HiLoPhysicalStatus:in;
input:bool:in;
isAlreadyErroneous:bool:in;
assert
icone = case {
(alloc = OK) : 1,
(alloc = LOST) : 2,
else 3
},
output = case {
(alloc = LOST) : false,
(alloc = LOW_ERRONEOUS) : false,
(alloc = HIGH_ERRONEOUS) : true,
((alloc = ERRONEOUS) and isAlreadyErroneous) : input,
((alloc = ERRONEOUS) and (not isAlreadyErroneous)) : (not input),
else input
};
edon
node Boolean_Boolean_BooleanInOutFunction
flow
icone:[1,3]:private;
input:bool:in;
output:bool:out;
state
status:Functions_BasicFunctions_BooleanStuck;
event
stuck_true,
stuck_false;
trans
(status = OK) |- stuck_true -> status := STUCK_TRUE;
(status = OK) |- stuck_false -> status := STUCK_FALSE;
assert
icone = case {
(status = OK) : 1,
(status = STUCK_FALSE) : 3,
else 2
},
output = case {
(status = STUCK_TRUE) : true,
(status = STUCK_FALSE) : false,
else input
};
init
status := OK;
extern
attribute DassaultSpecialCtrlPeriod(<event stuck_true>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event stuck_true>) = "Functional";
attribute DassaultSpecialCtrlPeriod(<event stuck_false>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event stuck_false>) = "Functional";
edon
node Functions_BasicOperators_PerfectConditionalSelectorLOST_HiLo
flow
icone:[1,2]:private;
input:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
condition:bool:in;
assert
icone = (if condition then 2 else 1),
output = (if condition then LOST else input);
edon
node Functions_BasicFunctions_InOutPresentFunction
flow
icone:[1,3]:private;
input:Functions_BasicFunctions_Presence:in;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_error;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_error -> status := ERRONEOUS;
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
},
output = case {
(status = OK) : (if (input = PRESENT) then OK else LOST),
else status
};
init
status := OK;
extern
law <event fail_loss> = constant(1.0E-4);
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Functional";
law <event fail_error> = constant(1.0E-5);
attribute TypeOfEvent0x002f1(<event fail_error>) = "Functional";
edon
node Functions_BasicOperators_AND_simpleHiLo
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
input_1:Physical_BasicPhysical_BasicPhysicalStatus:in;
input_2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
assert
output = (if ((input_1 = OK) and (input_2 = OK)) then OK else (if ((input_1 = LOST) or (input_2 = LOST)) then LOST else ERRONEOUS)),
icone = case {
(output = OK) : 1,
else 2
};
edon
node Components_Propellers_Propeller
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_degradation,
fail_loss;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_degradation -> status := ERRONEOUS;
assert
icone = case {
(status = LOST) : 2,
(status = ERRONEOUS) : 3,
else 1
},
output = status;
init
status := OK;
extern
law <event fail_degradation> = exponential(1.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_degradation>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_degradation>) = "Physical";
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
edon
node Components_PowerSupply_PowerDistribution
flow
icone:[1,3]:private;
input:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
state
status:Physical_BasicPhysical_HiLoPhysicalStatus;
event
fail_unsuff,
fail_err,
fail_loss;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
(status = OK) |- fail_unsuff -> status := LOW_ERRONEOUS;
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
},
output = case {
((status = LOST) or (input = LOST)) : LOST,
(status # OK) : status,
else input
};
init
status := OK;
extern
attribute DassaultSpecialCtrlPeriod(<event fail_unsuff>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_unsuff>) = "Physical";
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
edon
node Components_Actuators_MotorAndVariator
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_loss,
fail_err;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
assert
icone = case {
(status = LOST) : 2,
(status = ERRONEOUS) : 3,
else 1
},
output = case {
(((Power = LOST) or (Power = LOW_ERRONEOUS)) or (status = LOST)) : LOST,
(((Power = ERRONEOUS) or (Power = HIGH_ERRONEOUS)) or (status = ERRONEOUS)) : ERRONEOUS,
else OK
};
init
status := OK;
extern
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
law <event fail_err> = exponential(2.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
edon
node Components_DroneControlDesk_DroneControlDesk
flow
icone:[1,3]:private;
Alloc_DroneControlDesk:Physical_BasicPhysical_BasicPhysicalStatus:out;
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
event
fail_err,
fail_loss;
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
assert
icone = case {
(status = LOST) : 2,
(status = ERRONEOUS) : 3,
else 1
},
Alloc_DroneControlDesk = status;
init
status := OK;
extern
law <event fail_err> = exponential(1.0E-6);
attribute DassaultSpecialCtrlPeriod(<event fail_err>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_err>) = "Physical";
law <event fail_loss> = exponential(1.0E-5);
attribute DassaultSpecialCtrlPeriod(<event fail_loss>) = 9.877E8;
attribute TypeOfEvent0x002f1(<event fail_loss>) = "Physical";
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF725_ComputeAltitudeAndVerticalSpeedMON
flow
icone:[1,3]:private;
VerticalSpeed:Physical_BasicPhysical_BasicPhysicalStatus:out;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
GroundAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
BarometricAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
Inj_Comp2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp1:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF725_Dysfunctional:Functions_BasicFunctions_InOutFunction_Hilo_SF325;
SF725_AllNeeded:Functions_BasicOperators_AND_fullHiLo;
assert
icone = case {
(SF725_Dysfunctional.status = LOST) : 2,
(SF725_Dysfunctional.status = ERRONEOUS) : 3,
else 1
},
VerticalSpeed = Inj_Comp2.output,
Altitude = Inj_Comp1.output,
Inj_Comp2.alloc = Alloc_MonProcComputation,
Inj_Comp2.input = SF725_Dysfunctional.output_2,
Inj_Comp1.alloc = Alloc_MonProcComputation,
Inj_Comp1.input = SF725_Dysfunctional.output_1,
SF725_Dysfunctional.input = SF725_AllNeeded.output,
SF725_AllNeeded.input_1 = GroundAltitude,
SF725_AllNeeded.input_2 = BarometricAltitude;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF724_ComputeGroundAltitudeMON
flow
icone:[1,3]:private;
GroundAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMonitoringDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
MeasuredGroundDistance:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
Inj_DroneMonitoringDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF724_Dysfunctional:Functions_BasicFunctions_InOutFunction_HiLo;
SF724_NeedAll:Functions_BasicOperators_AND_complexHiLo;
Inj_Acq:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
assert
icone = case {
(SF724_Dysfunctional.status = LOST) : 2,
(SF724_Dysfunctional.status = ERRONEOUS) : 3,
else 1
},
GroundAltitude = Inj_Comp.output,
Inj_DroneMonitoringDigitalNetworkPath.alloc = Alloc_DroneMonitoringDigitalNetworkPath,
Inj_DroneMonitoringDigitalNetworkPath.input = MeasuredGroundDistance,
Inj_Comp.alloc = Alloc_MonProcComputation,
Inj_Comp.input = SF724_Dysfunctional.output,
SF724_Dysfunctional.input = SF724_NeedAll.output,
SF724_NeedAll.input_1 = Attitude,
SF724_NeedAll.input_2 = Inj_Acq.output,
Inj_Acq.alloc = Alloc_MonProcAcquisition,
Inj_Acq.input = Inj_DroneMonitoringDigitalNetworkPath.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_Alloc_SF723_MeasureTelemetricSignalMON
flow
icone:[1,3]:private;
GroundDistance:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_TelemetricSensorMON:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
Inj_TelemetricSensorMON:Functions_PhysicalOperators_PhysicalInjection_HiLo;
SF723_Dysfunctional:Functions_BasicFunctions_SourceFunction;
assert
icone = case {
(SF723_Dysfunctional.status = LOST) : 2,
(SF723_Dysfunctional.status = ERRONEOUS) : 3,
else 1
},
GroundDistance = Inj_TelemetricSensorMON.output,
Inj_TelemetricSensorMON.alloc = Alloc_TelemetricSensorMON,
Inj_TelemetricSensorMON.input = SF723_Dysfunctional.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF721_MeasureAmbiantPressureMON
flow
icone:[1,3]:private;
Pressure:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_PressureSensorMON:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
Inj_PressureSensorMON:Functions_PhysicalOperators_PhysicalInjection_HiLo;
SF721_Dysfunctional:Functions_BasicFunctions_SourceFunction;
assert
icone = case {
(SF721_Dysfunctional.status = LOST) : 2,
(SF721_Dysfunctional.status = ERRONEOUS) : 3,
else 1
},
Pressure = Inj_PressureSensorMON.output,
Inj_PressureSensorMON.alloc = Alloc_PressureSensorMON,
Inj_PressureSensorMON.input = SF721_Dysfunctional.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF722_ComputeBarometricAltitudeMON
flow
icone:[1,3]:private;
BarometricAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMonitoringDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
MeasuredPressure:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
Inj_DroneMonitoringDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF722_Dysfunctional:Functions_BasicFunctions_InOutFunction_HiLoReverse;
Inj_Acq:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
assert
icone = case {
(SF722_Dysfunctional.status = LOST) : 2,
(SF722_Dysfunctional.status = ERRONEOUS) : 3,
else 1
},
BarometricAltitude = Inj_Comp.output,
Inj_DroneMonitoringDigitalNetworkPath.alloc = Alloc_DroneMonitoringDigitalNetworkPath,
Inj_DroneMonitoringDigitalNetworkPath.input = MeasuredPressure,
Inj_Comp.alloc = Alloc_MonProcComputation,
Inj_Comp.input = SF722_Dysfunctional.output,
SF722_Dysfunctional.input = Inj_Acq.output,
Inj_Acq.alloc = Alloc_MonProcAcquisition,
Inj_Acq.input = Inj_DroneMonitoringDigitalNetworkPath.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF731_2_ControlAltitudeMON
flow
icone:[1,3]:private;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
AltitudeConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
T_AP:Physical_BasicPhysical_BasicPhysicalStatus:in;
APEngagement^Mode:Functions_BasicFunctions_ModeSelection:in;
APEngagement^IsErroneous:bool:in;
T:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneDigitalNetworkPath5:Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status;
Inj_DroneDigitalNetworkPath4:Functions_PhysicalOperators_PhysicalInjection;
Inj_DroneDigitalNetworkPath3:Functions_PhysicalOperators_PhysicalInjection;
Inj_DroneDigitalNetworkPath2:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_DroneDigitalNetworkPath1:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq5:Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF731_ComputeThrustMON:Functions_BasicFunctions_InOutFunction_HiLoReverse;
SF731_2_AND2:Functions_BasicOperators_AND_complexHiLo;
SF731_2_AND1:Functions_BasicOperators_AND_complexHiLo;
Inj_Acq3:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF732_SelectTotalThrustConsignMON:Functions_BasicOperators_ErrConditionalSelector_2_ComplexHiLo;
Inj_Acq2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq4:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq1:Functions_PhysicalOperators_PhysicalInjection;
assert
icone = (if (SF731_ComputeThrustMON.status = OK) then 1 else (if (SF731_ComputeThrustMON.status = LOST) then 3 else 2)),
T = Inj_Comp.output,
Inj_DroneDigitalNetworkPath5.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath5.isAlreadyErroneous = APEngagement^IsErroneous,
Inj_DroneDigitalNetworkPath5.input = APEngagement^Mode,
Inj_DroneDigitalNetworkPath4.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath4.input = AltitudeConsign,
Inj_DroneDigitalNetworkPath3.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath3.input = T_AP,
Inj_DroneDigitalNetworkPath2.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath2.input = Altitude,
Inj_DroneDigitalNetworkPath1.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath1.input = Attitude,
Inj_Acq5.alloc = Alloc_MonProcAcquisition,
Inj_Acq5.isAlreadyErroneous = Inj_DroneDigitalNetworkPath5.isErroneous,
Inj_Acq5.input = Inj_DroneDigitalNetworkPath5.output,
Inj_Comp.alloc = Alloc_MonProcComputation,
Inj_Comp.input = SF731_ComputeThrustMON.output,
SF731_ComputeThrustMON.input = SF732_SelectTotalThrustConsignMON.output,
SF731_2_AND2.input_1 = Inj_Acq4.output,
SF731_2_AND2.input_2 = SF731_2_AND1.output,
SF731_2_AND1.input_1 = Inj_Acq1.output,
SF731_2_AND1.input_2 = Inj_Acq3.output,
Inj_Acq3.alloc = Alloc_MonProcAcquisition,
Inj_Acq3.input = Inj_DroneDigitalNetworkPath2.output,
SF732_SelectTotalThrustConsignMON.inputAUTO = Inj_Acq2.output,
SF732_SelectTotalThrustConsignMON.inputMANUAL = SF731_2_AND2.output,
SF732_SelectTotalThrustConsignMON.condition = Inj_Acq5.output,
Inj_Acq2.alloc = Alloc_MonProcAcquisition,
Inj_Acq2.input = Inj_DroneDigitalNetworkPath3.output,
Inj_Acq4.alloc = Alloc_MonProcAcquisition,
Inj_Acq4.input = Inj_DroneDigitalNetworkPath4.output,
Inj_Acq1.alloc = Alloc_MonProcAcquisition,
Inj_Acq1.input = Inj_DroneDigitalNetworkPath1.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF733_6_ControlAttitudeMON
flow
icone:[1,3]:private;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
AttitudeAPConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
PitchRollConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
YawConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
APEngagement^Mode:Functions_BasicFunctions_ModeSelection:in;
APEngagement^IsErroneous:bool:in;
P:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_PilotDroneControlPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneDigitalNetworkPath5:Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status;
Inj_DroneDigitalNetworkPath3:Functions_PhysicalOperators_PhysicalInjection;
Inj_PilotDroneControlPath:Functions_PhysicalOperators_PhysicalInjection_detection;
Inj_DroneDigitalNetworkPath1:Functions_PhysicalOperators_PhysicalInjection;
SF733_Detection:Functions_BasicOperators_detectionOfErroneous;
Inj_DroneDigitalNetworkPath2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq5:Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status;
Inj_Acq4:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq3:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq1:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection;
SF733_6_AND3:Functions_BasicOperators_AND;
SF734_6_ControlAttitudeMON:Functions_BasicFunctions_InOutFunction;
SF733_SelectAttitudeConsignMON:Functions_BasicOperators_ErrConditionalSelector_2;
SF733_6_AND2:Functions_BasicOperators_AND;
SF733_6_AND1:Functions_BasicOperators_AND;
assert
icone = (if (SF734_6_ControlAttitudeMON.status = OK) then 1 else (if (SF734_6_ControlAttitudeMON.status = LOST) then 3 else 2)),
P = Inj_Comp.output,
Inj_DroneDigitalNetworkPath5.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath5.isAlreadyErroneous = APEngagement^IsErroneous,
Inj_DroneDigitalNetworkPath5.input = APEngagement^Mode,
Inj_DroneDigitalNetworkPath3.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath3.input = YawConsign,
Inj_PilotDroneControlPath.alloc = Alloc_PilotDroneControlPath,
Inj_PilotDroneControlPath.input = PitchRollConsign,
Inj_DroneDigitalNetworkPath1.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath1.input = AttitudeAPConsign,
SF733_Detection.input = Inj_Acq4.output,
Inj_DroneDigitalNetworkPath2.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath2.input = Attitude,
Inj_Acq5.alloc = Alloc_MonProcAcquisition,
Inj_Acq5.isAlreadyErroneous = Inj_DroneDigitalNetworkPath5.isErroneous,
Inj_Acq5.input = Inj_DroneDigitalNetworkPath5.output,
Inj_Acq4.alloc = Alloc_MonProcAcquisition,
Inj_Acq4.input = Inj_PilotDroneControlPath.output,
Inj_Acq3.alloc = Alloc_MonProcAcquisition,
Inj_Acq3.input = Inj_DroneDigitalNetworkPath3.output,
Inj_Acq2.alloc = Alloc_MonProcAcquisition,
Inj_Acq2.input = Inj_DroneDigitalNetworkPath2.output,
Inj_Acq1.alloc = Alloc_MonProcAcquisition,
Inj_Acq1.input = Inj_DroneDigitalNetworkPath1.output,
Inj_Comp.alloc = Alloc_MonProcComputation,
Inj_Comp.input = SF734_6_ControlAttitudeMON.output,
SF733_6_AND3.input_1 = SF733_Detection.output,
SF733_6_AND3.input_2 = Inj_Acq3.output,
SF734_6_ControlAttitudeMON.input = SF733_SelectAttitudeConsignMON.output,
SF733_SelectAttitudeConsignMON.inputAUTO = SF733_6_AND2.output,
SF733_SelectAttitudeConsignMON.inputMANUAL = SF733_6_AND1.output,
SF733_SelectAttitudeConsignMON.condition = Inj_Acq5.output,
SF733_6_AND2.input_1 = Inj_Acq1.output,
SF733_6_AND2.input_2 = Inj_Acq2.output,
SF733_6_AND1.input_1 = SF733_6_AND3.output,
SF733_6_AND1.input_2 = Inj_Acq2.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF737_8_ComputeMotorRate
flow
icone:[1,2]:private;
Thrust:Physical_BasicPhysical_HiLoPhysicalStatus:in;
P:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
MotorRates:Physical_BasicPhysical_HiLoPhysicalStatus:out;
sub
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF737_8_ControlThrust:Functions_BasicFunctions_InOutFunction_HiLo;
SF737_AllNeeded:Functions_BasicOperators_AND_complexHiLo;
assert
icone = case {
(SF737_8_ControlThrust.status = OK) : 1,
else 2
},
MotorRates = Inj_Comp.output,
Inj_Comp.alloc = Alloc_MonProcComputation,
Inj_Comp.input = SF737_8_ControlThrust.output,
SF737_8_ControlThrust.input = SF737_AllNeeded.output,
SF737_AllNeeded.input_1 = P,
SF737_AllNeeded.input_2 = Thrust;
edon
node eq_AIDASystem_Functions_SF745_DisableDroneMotor
flow
icone:[1,2]:private;
Motor1Runaway^Detected:bool:in;
Motor1Runaway^IsErroneous:bool:in;
Motor2Runaway^Detected:bool:in;
Motor2Runaway^IsErroneous:bool:in;
Motor3Runaway^Detected:bool:in;
Motor3Runaway^IsErroneous:bool:in;
Motor4Runaway^Detected:bool:in;
Motor4Runaway^IsErroneous:bool:in;
AttitudeFailureDetected^Detected:bool:in;
AttitudeFailureDetected^IsErroneous:bool:in;
AltitudeFailureDetected^Detected:bool:in;
AltitudeFailureDetected^IsErroneous:bool:in;
MotorConsignFailureDetected^Detected:bool:in;
MotorConsignFailureDetected^IsErroneous:bool:in;
MotorDisabled^Motor1:bool:out;
MotorDisabled^IsErroneous1:bool:out;
MotorDisabled^Motor2:bool:out;
MotorDisabled^IsErroneous2:bool:out;
MotorDisabled^Motor3:bool:out;
MotorDisabled^IsErroneous3:bool:out;
MotorDisabled^Motor4:bool:out;
MotorDisabled^IsErroneous4:bool:out;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_Comp4:Functions_PhysicalOperators_PhysicalInjection_boolean_Status;
Inj_Comp3:Functions_PhysicalOperators_PhysicalInjection_boolean_Status;
Inj_Comp2:Functions_PhysicalOperators_PhysicalInjection_boolean_Status;
Inj_Comp1:Functions_PhysicalOperators_PhysicalInjection_boolean_Status;
SF745_OR44:Boolean_Boolean_or4;
SF745_OR33:Boolean_Boolean_or4;
SF745_OR22:Boolean_Boolean_or4;
SF745_OR11:Boolean_Boolean_or4;
FailureModesOfSF74:Functions_BasicFunctions_SourceFunction;
SF745_FMPropagation4:Functions_BasicOperators_ANDBoolErrLost;
SF745_FMPropagation3:Functions_BasicOperators_ANDBoolErrLost;
SF745_FMPropagation2:Functions_BasicOperators_ANDBoolErrLost;
SF745_FMPropagation1:Functions_BasicOperators_ANDBoolErrLost;
Inj_Emiss4:Functions_PhysicalOperators_PhysicalInjection_boolean_Status;
Inj_Emiss3:Functions_PhysicalOperators_PhysicalInjection_boolean_Status;
Inj_Emiss2:Functions_PhysicalOperators_PhysicalInjection_boolean_Status;
Inj_Emiss1:Functions_PhysicalOperators_PhysicalInjection_boolean_Status;
SF745_OR4:Boolean_Boolean_or4;
SF745_OR3:Boolean_Boolean_or4;
SF745_OR2:Boolean_Boolean_or4;
SF745_OR1:Boolean_Boolean_or4;
assert
icone = case {
(FailureModesOfSF74.status = OK) : 1,
else 2
},
MotorDisabled^Motor1 = Inj_Emiss1.output,
MotorDisabled^IsErroneous1 = Inj_Emiss1.isErroneous,
MotorDisabled^Motor2 = Inj_Emiss2.output,
MotorDisabled^IsErroneous2 = Inj_Emiss2.isErroneous,
MotorDisabled^Motor3 = Inj_Emiss3.output,
MotorDisabled^IsErroneous3 = Inj_Emiss3.isErroneous,
MotorDisabled^Motor4 = Inj_Emiss4.output,
MotorDisabled^IsErroneous4 = Inj_Emiss4.isErroneous,
Inj_Comp4.alloc = Alloc_MonProcComputation,
Inj_Comp4.input = SF745_FMPropagation4.output,
Inj_Comp4.isAlreadyErroneous = SF745_OR44.O,
Inj_Comp3.alloc = Alloc_MonProcComputation,
Inj_Comp3.input = SF745_FMPropagation3.output,
Inj_Comp3.isAlreadyErroneous = SF745_OR33.O,
Inj_Comp2.alloc = Alloc_MonProcComputation,
Inj_Comp2.input = SF745_FMPropagation2.output,
Inj_Comp2.isAlreadyErroneous = SF745_OR22.O,
Inj_Comp1.alloc = Alloc_MonProcComputation,
Inj_Comp1.input = SF745_FMPropagation1.output,
Inj_Comp1.isAlreadyErroneous = SF745_OR11.O,
SF745_OR44.I1 = Motor4Runaway^IsErroneous,
SF745_OR44.I2 = AltitudeFailureDetected^IsErroneous,
SF745_OR44.I3 = AttitudeFailureDetected^IsErroneous,
SF745_OR44.I4 = MotorConsignFailureDetected^IsErroneous,
SF745_OR33.I1 = Motor3Runaway^IsErroneous,
SF745_OR33.I2 = AltitudeFailureDetected^IsErroneous,
SF745_OR33.I3 = AttitudeFailureDetected^IsErroneous,
SF745_OR33.I4 = MotorConsignFailureDetected^IsErroneous,
SF745_OR22.I1 = Motor2Runaway^IsErroneous,
SF745_OR22.I2 = AltitudeFailureDetected^IsErroneous,
SF745_OR22.I3 = AttitudeFailureDetected^IsErroneous,
SF745_OR22.I4 = MotorConsignFailureDetected^IsErroneous,
SF745_OR11.I1 = Motor1Runaway^IsErroneous,
SF745_OR11.I2 = AltitudeFailureDetected^IsErroneous,
SF745_OR11.I3 = AttitudeFailureDetected^IsErroneous,
SF745_OR11.I4 = MotorConsignFailureDetected^IsErroneous,
SF745_FMPropagation4.input = SF745_OR4.O,
SF745_FMPropagation4.failurePropagation = FailureModesOfSF74.output,
SF745_FMPropagation3.input = SF745_OR3.O,
SF745_FMPropagation3.failurePropagation = FailureModesOfSF74.output,
SF745_FMPropagation2.input = SF745_OR2.O,
SF745_FMPropagation2.failurePropagation = FailureModesOfSF74.output,
SF745_FMPropagation1.input = SF745_OR1.O,
SF745_FMPropagation1.failurePropagation = FailureModesOfSF74.output,
Inj_Emiss4.alloc = Alloc_MonProcEmission,
Inj_Emiss4.input = Inj_Comp4.output,
Inj_Emiss4.isAlreadyErroneous = Inj_Comp4.isErroneous,
Inj_Emiss3.alloc = Alloc_MonProcEmission,
Inj_Emiss3.input = Inj_Comp3.output,
Inj_Emiss3.isAlreadyErroneous = Inj_Comp3.isErroneous,
Inj_Emiss2.alloc = Alloc_MonProcEmission,
Inj_Emiss2.input = Inj_Comp2.output,
Inj_Emiss2.isAlreadyErroneous = Inj_Comp2.isErroneous,
Inj_Emiss1.alloc = Alloc_MonProcEmission,
Inj_Emiss1.input = Inj_Comp1.output,
Inj_Emiss1.isAlreadyErroneous = Inj_Comp1.isErroneous,
SF745_OR4.I1 = Motor4Runaway^Detected,
SF745_OR4.I2 = AltitudeFailureDetected^Detected,
SF745_OR4.I3 = AttitudeFailureDetected^Detected,
SF745_OR4.I4 = MotorConsignFailureDetected^Detected,
SF745_OR3.I1 = MotorConsignFailureDetected^Detected,
SF745_OR3.I2 = AttitudeFailureDetected^Detected,
SF745_OR3.I3 = AltitudeFailureDetected^Detected,
SF745_OR3.I4 = Motor3Runaway^Detected,
SF745_OR2.I1 = MotorConsignFailureDetected^Detected,
SF745_OR2.I2 = AttitudeFailureDetected^Detected,
SF745_OR2.I3 = AltitudeFailureDetected^Detected,
SF745_OR2.I4 = Motor2Runaway^Detected,
SF745_OR1.I1 = MotorConsignFailureDetected^Detected,
SF745_OR1.I2 = AttitudeFailureDetected^Detected,
SF745_OR1.I3 = AltitudeFailureDetected^Detected,
SF745_OR1.I4 = Motor1Runaway^Detected;
edon
node eq_AIDASystem_Functions_SF744_CompareDroneMotorRate
flow
MotorRatesMeasured^MotorRate1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRatesMeasured^MotorRate2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRatesMeasured^MotorRate3:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRatesMeasured^MotorRate4:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMonitoringDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
MotorRate:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Motor1Runaway^Detected:bool:out;
Motor1Runaway^IsErroneous:bool:out;
Motor2Runaway^Detected:bool:out;
Motor2Runaway^IsErroneous:bool:out;
Motor3Runaway^Detected:bool:out;
Motor3Runaway^IsErroneous:bool:out;
Motor4Runaway^Detected:bool:out;
Motor4Runaway^IsErroneous:bool:out;
sub
Inj_DroneDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_DroneMonitoringDigitalNetworkPath5:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_DroneMonitoringDigitalNetworkPath4:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_DroneMonitoringDigitalNetworkPath3:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_DroneMonitoringDigitalNetworkPath2:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Comp4:Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Origin;
Inj_Comp3:Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Origin;
Inj_Comp2:Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Origin;
Inj_Comp1:Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Origin;
Inj_Acq5:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Acq4:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Acq3:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Acq2:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF744_MonitorMotorRate4:Functions_BasicOperators_Comparator_HiLo;
SF744_MonitorMotorRate3:Functions_BasicOperators_Comparator_HiLo;
SF744_MonitorMotorRate2:Functions_BasicOperators_Comparator_HiLo;
SF744_MonitorMotorRate1:Functions_BasicOperators_Comparator_HiLo;
Inj_Acq1:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
assert
Motor1Runaway^Detected = Inj_Comp1.output,
Motor1Runaway^IsErroneous = Inj_Comp1.isErroneous,
Motor2Runaway^Detected = Inj_Comp2.output,
Motor2Runaway^IsErroneous = Inj_Comp2.isErroneous,
Motor3Runaway^Detected = Inj_Comp3.output,
Motor3Runaway^IsErroneous = Inj_Comp3.isErroneous,
Motor4Runaway^Detected = Inj_Comp4.output,
Motor4Runaway^IsErroneous = Inj_Comp4.isErroneous,
Inj_DroneDigitalNetworkPath.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath.input = MotorRate,
Inj_DroneMonitoringDigitalNetworkPath5.alloc = Alloc_DroneMonitoringDigitalNetworkPath,
Inj_DroneMonitoringDigitalNetworkPath5.input = MotorRatesMeasured^MotorRate4,
Inj_DroneMonitoringDigitalNetworkPath4.alloc = Alloc_DroneMonitoringDigitalNetworkPath,
Inj_DroneMonitoringDigitalNetworkPath4.input = MotorRatesMeasured^MotorRate3,
Inj_DroneMonitoringDigitalNetworkPath3.alloc = Alloc_DroneMonitoringDigitalNetworkPath,
Inj_DroneMonitoringDigitalNetworkPath3.input = MotorRatesMeasured^MotorRate2,
Inj_DroneMonitoringDigitalNetworkPath2.alloc = Alloc_DroneMonitoringDigitalNetworkPath,
Inj_DroneMonitoringDigitalNetworkPath2.input = MotorRatesMeasured^MotorRate1,
Inj_Comp4.alloc = Alloc_MonProcComputation,
Inj_Comp4.input = SF744_MonitorMotorRate4.output,
Inj_Comp3.alloc = Alloc_MonProcComputation,
Inj_Comp3.input = SF744_MonitorMotorRate3.output,
Inj_Comp2.alloc = Alloc_MonProcComputation,
Inj_Comp2.input = SF744_MonitorMotorRate2.output,
Inj_Comp1.alloc = Alloc_MonProcComputation,
Inj_Comp1.input = SF744_MonitorMotorRate1.output,
Inj_Acq5.alloc = Alloc_MonProcAcquisition,
Inj_Acq5.input = Inj_DroneMonitoringDigitalNetworkPath5.output,
Inj_Acq4.alloc = Alloc_MonProcAcquisition,
Inj_Acq4.input = Inj_DroneMonitoringDigitalNetworkPath4.output,
Inj_Acq3.alloc = Alloc_MonProcAcquisition,
Inj_Acq3.input = Inj_DroneMonitoringDigitalNetworkPath3.output,
Inj_Acq2.alloc = Alloc_MonProcAcquisition,
Inj_Acq2.input = Inj_DroneMonitoringDigitalNetworkPath2.output,
SF744_MonitorMotorRate4.input1 = Inj_Acq5.output,
SF744_MonitorMotorRate4.status_acquisition = Alloc_MonProcAcquisition,
SF744_MonitorMotorRate4.input2 = Inj_Acq1.output,
SF744_MonitorMotorRate3.input1 = Inj_Acq4.output,
SF744_MonitorMotorRate3.status_acquisition = Alloc_MonProcAcquisition,
SF744_MonitorMotorRate3.input2 = Inj_Acq1.output,
SF744_MonitorMotorRate2.input1 = Inj_Acq3.output,
SF744_MonitorMotorRate2.status_acquisition = Alloc_MonProcAcquisition,
SF744_MonitorMotorRate2.input2 = Inj_Acq1.output,
SF744_MonitorMotorRate1.input1 = Inj_Acq2.output,
SF744_MonitorMotorRate1.status_acquisition = Alloc_MonProcAcquisition,
SF744_MonitorMotorRate1.input2 = Inj_Acq1.output,
Inj_Acq1.alloc = Alloc_MonProcAcquisition,
Inj_Acq1.input = Inj_DroneDigitalNetworkPath.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF742_CompareDroneAltitude
flow
AltitudeMON:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
GroundAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
GroundAltitudeMON:Physical_BasicPhysical_HiLoPhysicalStatus:in;
VerticalSpeed:Physical_BasicPhysical_BasicPhysicalStatus:in;
VerticalSpeedMON:Physical_BasicPhysical_BasicPhysicalStatus:in;
AltitudeFailure^Detected:bool:out;
AltitudeFailure^IsErroneous:bool:out;
Alloc_MonProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneDigitalNetworkPath2:Functions_PhysicalOperators_PhysicalInjection;
Inj_DroneDigitalNetworkPath1:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_DroneDigitalNetworkPath3:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Comp4:Functions_PhysicalOperators_PhysicalInjection_boolean_Status;
SF742_GlobalCompareDroneAltitude_Status:Functions_BasicOperators_OR_3;
Inj_Comp3:Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Origin;
Inj_Comp2:Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Origin;
Inj_Comp1:Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Origin;
SF742_GlobalCompareDroneAltitude:Functions_BasicOperators_OR_3;
SF742_CompareVerticalSpeed:Functions_BasicOperators_Comparator;
Inj_Acq2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq3:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF742_CompareGroundAltitude:Functions_BasicOperators_Comparator_HiLo;
Inj_Acq1:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF742_CompareAltitude:Functions_BasicOperators_Comparator_HiLo;
assert
AltitudeFailure^Detected = Inj_Comp4.output,
AltitudeFailure^IsErroneous = Inj_Comp4.isErroneous,
Inj_DroneDigitalNetworkPath2.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath2.input = VerticalSpeed,
Inj_DroneDigitalNetworkPath1.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath1.input = Altitude,
Inj_DroneDigitalNetworkPath3.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath3.input = GroundAltitude,
Inj_Comp4.alloc = Alloc_MonProcComputation,
Inj_Comp4.input = SF742_GlobalCompareDroneAltitude.O,
Inj_Comp4.isAlreadyErroneous = SF742_GlobalCompareDroneAltitude_Status.O,
SF742_GlobalCompareDroneAltitude_Status.I1 = Inj_Comp1.isErroneous,
SF742_GlobalCompareDroneAltitude_Status.I2 = Inj_Comp2.isErroneous,
SF742_GlobalCompareDroneAltitude_Status.I3 = Inj_Comp3.isErroneous,
Inj_Comp3.alloc = Alloc_MonProcComputation,
Inj_Comp3.input = SF742_CompareGroundAltitude.output,
Inj_Comp2.alloc = Alloc_MonProcComputation,
Inj_Comp2.input = SF742_CompareVerticalSpeed.output,
Inj_Comp1.alloc = Alloc_MonProcComputation,
Inj_Comp1.input = SF742_CompareAltitude.output,
SF742_GlobalCompareDroneAltitude.I1 = Inj_Comp1.output,
SF742_GlobalCompareDroneAltitude.I2 = Inj_Comp2.output,
SF742_GlobalCompareDroneAltitude.I3 = Inj_Comp3.output,
SF742_CompareVerticalSpeed.input1 = Inj_Acq2.output,
SF742_CompareVerticalSpeed.status_acquisition = Alloc_MonProcAcquisition,
SF742_CompareVerticalSpeed.input2 = VerticalSpeedMON,
Inj_Acq2.alloc = Alloc_MonProcAcquisition,
Inj_Acq2.input = Inj_DroneDigitalNetworkPath2.output,
Inj_Acq3.alloc = Alloc_MonProcAcquisition,
Inj_Acq3.input = Inj_DroneDigitalNetworkPath3.output,
SF742_CompareGroundAltitude.input1 = Inj_Acq3.output,
SF742_CompareGroundAltitude.status_acquisition = Alloc_MonProcAcquisition,
SF742_CompareGroundAltitude.input2 = GroundAltitudeMON,
Inj_Acq1.alloc = Alloc_MonProcAcquisition,
Inj_Acq1.input = Inj_DroneDigitalNetworkPath1.output,
SF742_CompareAltitude.input1 = Inj_Acq1.output,
SF742_CompareAltitude.status_acquisition = Alloc_MonProcAcquisition,
SF742_CompareAltitude.input2 = AltitudeMON;
edon
node eq_AIDASystem_Functions_SF421_RunFlightPlan
flow
icone:[1,2]:private;
Alloc_DroneMissionDataPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Time:Physical_BasicPhysical_BasicPhysicalStatus:in;
Position:Physical_BasicPhysical_BasicPhysicalStatus:in;
FlightPlan:Physical_BasicPhysical_BasicPhysicalStatus:in;
PositionConsign_FlightPlanPayloadControl:Physical_BasicPhysical_BasicPhysicalStatus:out;
FlightPlanProgress:Physical_BasicPhysical_BasicPhysicalStatus:out;
MissionCompleted^Signal:Functions_BasicFunctions_Presence:out;
MissionCompleted^IsErroneous:bool:out;
FlightPlanInterruption:Functions_BasicFunctions_Presence:in;
sub
Inj_DroneMissionDataPath:Functions_PhysicalOperators_PhysicalInjection;
Inj_DroneDigitalNetworkPath1:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp2:Functions_PhysicalOperators_PhysicalInjection_Presence_2_Status_Origin;
Inj_Emiss:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp1:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq3:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq1:Functions_PhysicalOperators_PhysicalInjection;
SF421_FlightPlanInterruption:Functions_BasicOperators_PerfectPresenceSelectorLOSS;
SF421_MissionCompleted:Functions_BasicFunctions_SourcePresenceFunction;
SF421_Compute:Functions_BasicFunctions_InOutFunction;
SF421_Choice:Functions_BasicOperators_Choice;
SF421_AND:Functions_BasicOperators_AND;
Inj_DroneDigitalNetworkPath2:Functions_PhysicalOperators_PhysicalInjection;
assert
icone = case {
((SF421_Compute.status # OK) or (SF421_MissionCompleted.status = PRESENT)) : 2,
else 1
},
PositionConsign_FlightPlanPayloadControl = Inj_Comp1.output,
FlightPlanProgress = Inj_Emiss.output,
MissionCompleted^Signal = Inj_Comp2.output,
MissionCompleted^IsErroneous = Inj_Comp2.isErroneous,
Inj_DroneMissionDataPath.alloc = Alloc_DroneMissionDataPath,
Inj_DroneMissionDataPath.input = FlightPlan,
Inj_DroneDigitalNetworkPath1.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath1.input = Time,
Inj_Comp2.alloc = Alloc_MainProcComputation,
Inj_Comp2.input = SF421_MissionCompleted.output,
Inj_Emiss.alloc = Alloc_MainProcEmission,
Inj_Emiss.input = Inj_Comp1.output,
Inj_Comp1.alloc = Alloc_MainProcComputation,
Inj_Comp1.input = SF421_FlightPlanInterruption.output,
Inj_Acq3.alloc = Alloc_MainProcAcquisition,
Inj_Acq3.input = Inj_DroneMissionDataPath.output,
Inj_Acq2.alloc = Alloc_MainProcAcquisition,
Inj_Acq2.input = Inj_DroneDigitalNetworkPath2.output,
Inj_Acq1.alloc = Alloc_MainProcAcquisition,
Inj_Acq1.input = Inj_DroneDigitalNetworkPath1.output,
SF421_FlightPlanInterruption.input = SF421_Compute.output,
SF421_FlightPlanInterruption.condition = FlightPlanInterruption,
SF421_Compute.input = SF421_Choice.output,
SF421_Choice.input_1 = SF421_AND.output,
SF421_Choice.input_2 = Inj_Acq3.output,
SF421_AND.input_1 = Inj_Acq1.output,
SF421_AND.input_2 = Inj_Acq2.output,
Inj_DroneDigitalNetworkPath2.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath2.input = Position;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF422_RunSpeedControl
flow
icone:[1,3]:private;
PilotControlConsigns:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMissionDataPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
DroneSpeedConsign_ProgrammedPayloadControl:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
Inj_DroneMissionDataPath:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq:Functions_PhysicalOperators_PhysicalInjection;
SF422_RunSpeedControl:Functions_BasicFunctions_InOutFunction;
assert
icone = case {
(SF422_RunSpeedControl.status = LOST) : 2,
(SF422_RunSpeedControl.status = ERRONEOUS) : 3,
else 1
},
DroneSpeedConsign_ProgrammedPayloadControl = Inj_Comp.output,
Inj_DroneMissionDataPath.alloc = Alloc_DroneMissionDataPath,
Inj_DroneMissionDataPath.input = PilotControlConsigns,
Inj_Comp.alloc = Alloc_MainProcComputation,
Inj_Comp.input = SF422_RunSpeedControl.output,
Inj_Acq.alloc = Alloc_MainProcAcquisition,
Inj_Acq.input = Inj_DroneMissionDataPath.output,
SF422_RunSpeedControl.input = Inj_Acq.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_Alloc_SF325_ComputeAltitudeAndVerticalSpeed
flow
Altitude_WSL:Physical_BasicPhysical_HiLoPhysicalStatus:out;
VerticalSpeed_WSL:Physical_BasicPhysical_BasicPhysicalStatus:out;
VerticalSpeed:Physical_BasicPhysical_BasicPhysicalStatus:out;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
GroundAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
BarometricAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
Inj_Emiss2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp2:Functions_PhysicalOperators_PhysicalInjection;
SF325_Dysfunctional:Functions_BasicFunctions_InOutFunction_Hilo_SF325;
Inj_Emiss1:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Comp1:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF325_AllNeeded:Functions_BasicOperators_AND_fullHiLo;
assert
Altitude_WSL = Inj_Emiss1.output,
VerticalSpeed_WSL = Inj_Emiss2.output,
VerticalSpeed = Inj_Comp2.output,
Altitude = Inj_Comp1.output,
Inj_Emiss2.alloc = Alloc_MainProcEmission,
Inj_Emiss2.input = Inj_Comp2.output,
Inj_Comp2.alloc = Alloc_MainProcComputation,
Inj_Comp2.input = SF325_Dysfunctional.output_2,
SF325_Dysfunctional.input = SF325_AllNeeded.output,
Inj_Emiss1.alloc = Alloc_MainProcEmission,
Inj_Emiss1.input = Inj_Comp1.output,
Inj_Comp1.alloc = Alloc_MainProcComputation,
Inj_Comp1.input = SF325_Dysfunctional.output_1,
SF325_AllNeeded.input_1 = GroundAltitude,
SF325_AllNeeded.input_2 = BarometricAltitude;
edon
node eq_AIDASystem_FunctionsWithPhysical_Alloc_SF324_ComputeGroundAltitude
flow
GroundAltitude_WSL:Physical_BasicPhysical_HiLoPhysicalStatus:out;
GroundAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
MeasuredGroundDistance:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
Inj_DroneDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Emiss:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF324_NeedAll:Functions_BasicOperators_AND_complexHiLo;
SF324_Dysfunctional:Functions_BasicFunctions_InOutFunction_HiLo;
Inj_Acq:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
assert
GroundAltitude_WSL = Inj_Emiss.output,
GroundAltitude = Inj_Comp.output,
Inj_DroneDigitalNetworkPath.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath.input = MeasuredGroundDistance,
Inj_Emiss.alloc = Alloc_MainProcEmission,
Inj_Emiss.input = Inj_Comp.output,
Inj_Comp.alloc = Alloc_MainProcComputation,
Inj_Comp.input = SF324_Dysfunctional.output,
SF324_NeedAll.input_1 = Attitude,
SF324_NeedAll.input_2 = Inj_Acq.output,
SF324_Dysfunctional.input = SF324_NeedAll.output,
Inj_Acq.alloc = Alloc_MainProcAcquisition,
Inj_Acq.input = Inj_DroneDigitalNetworkPath.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_Alloc_SF323_MeasureTelemetricSignal
flow
GroundDistance:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_TelemetricSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
Inj_TelemetricSensor:Functions_PhysicalOperators_PhysicalInjection_HiLo;
SF323_Dysfunctional:Functions_BasicFunctions_SourceFunction;
assert
GroundDistance = Inj_TelemetricSensor.output,
Inj_TelemetricSensor.alloc = Alloc_TelemetricSensor,
Inj_TelemetricSensor.input = SF323_Dysfunctional.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_Alloc_SF321_MeasureAmbiantPressure
flow
Pressure:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_PressureSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
Inj_PressureSensor:Functions_PhysicalOperators_PhysicalInjection_HiLo;
SF321_Dysfunctional:Functions_BasicFunctions_SourceFunction;
assert
Pressure = Inj_PressureSensor.output,
Inj_PressureSensor.alloc = Alloc_PressureSensor,
Inj_PressureSensor.input = SF321_Dysfunctional.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_Alloc_SF322_ComputeBarometricAltitude
flow
BarometricAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
MeasuredPressure:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
Inj_DroneDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF322_Dysfunctional:Functions_BasicFunctions_InOutFunction_HiLoReverse;
Inj_Acq:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
assert
BarometricAltitude = Inj_Comp.output,
Inj_DroneDigitalNetworkPath.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath.input = MeasuredPressure,
Inj_Comp.alloc = Alloc_MainProcComputation,
Inj_Comp.input = SF322_Dysfunctional.output,
SF322_Dysfunctional.input = Inj_Acq.output,
Inj_Acq.alloc = Alloc_MainProcAcquisition,
Inj_Acq.input = Inj_DroneDigitalNetworkPath.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_Alloc_SF331_FilmGround
flow
VideoFlux:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_LateralSpeedCamera:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_LateralSpeedCamera:Functions_PhysicalOperators_PhysicalInjection;
SF331_Dysfunctional:Functions_BasicFunctions_SourceFunction;
assert
VideoFlux = Inj_LateralSpeedCamera.output,
Inj_LateralSpeedCamera.alloc = Alloc_LateralSpeedCamera,
Inj_LateralSpeedCamera.input = SF331_Dysfunctional.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_Alloc_SF332_ComputeGroundSpeed
flow
GroundAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
VideoFlux:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
GroundSpeed:Physical_BasicPhysical_HiLoPhysicalStatus:out;
sub
Inj_DroneDigitalNetworkPath2:Functions_PhysicalOperators_PhysicalInjection;
Inj_DroneDigitalNetworkPath1:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Emiss:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF332_Dysfunctional:Functions_BasicFunctions_InOutFunction_HiLo;
SF332_AllNeeded:Functions_BasicOperators_AND_complexHiLo;
Inj_Acq2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq1:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
assert
GroundSpeed = Inj_Emiss.output,
Inj_DroneDigitalNetworkPath2.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath2.input = VideoFlux,
Inj_DroneDigitalNetworkPath1.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath1.input = GroundAltitude,
Inj_Emiss.alloc = Alloc_VideoProcEmission,
Inj_Emiss.input = Inj_Comp.output,
Inj_Comp.alloc = Alloc_VideoProcComputation,
Inj_Comp.input = SF332_Dysfunctional.output,
SF332_Dysfunctional.input = SF332_AllNeeded.output,
SF332_AllNeeded.input_1 = Inj_Acq2.output,
SF332_AllNeeded.input_2 = Inj_Acq1.output,
Inj_Acq2.alloc = Alloc_VideoProcAcquisition,
Inj_Acq2.input = Inj_DroneDigitalNetworkPath2.output,
Inj_Acq1.alloc = Alloc_VideoProcAcquisition,
Inj_Acq1.input = Inj_DroneDigitalNetworkPath1.output;
edon
node eq_AIDASystem_Physical_Path_PilotPayloadControl
flow
RemoteCommunication:Physical_BasicPhysical_BasicPhysicalStatus:in;
RadioController:Physical_BasicPhysical_BasicPhysicalStatus:in;
MainDigitalNetwork:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_PilotPayloadControlPath:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
AND_Physical_disymetric2:Functions_PhysicalOperators_AND_Physical_disymetric;
AND_Physical_disymetric1:Functions_PhysicalOperators_AND_Physical_disymetric;
assert
Alloc_PilotPayloadControlPath = AND_Physical_disymetric2.output,
AND_Physical_disymetric2.minorInput = AND_Physical_disymetric1.output,
AND_Physical_disymetric2.majorInput = MainDigitalNetwork,
AND_Physical_disymetric1.minorInput = RemoteCommunication,
AND_Physical_disymetric1.majorInput = RadioController;
edon
node eq_AIDASystem_Physical_Path_DronePhotosAndVideos
flow
WifiController:Physical_BasicPhysical_BasicPhysicalStatus:in;
MainDigitalNetwork:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DronePhotosAndVideosPath:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
AND_Physical_disymetric1:Functions_PhysicalOperators_AND_Physical_disymetric;
assert
Alloc_DronePhotosAndVideosPath = AND_Physical_disymetric1.output,
AND_Physical_disymetric1.minorInput = MainDigitalNetwork,
AND_Physical_disymetric1.majorInput = WifiController;
edon
node eq_AIDASystem_Physical_Path_DroneMissionData
flow
MainDigitalNetwork:Physical_BasicPhysical_BasicPhysicalStatus:in;
WifiController_transmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
WifiController_reception:Physical_BasicPhysical_BasicPhysicalStatus:in;
DroneMissionDataPath_ControlDesk2Drone:Physical_BasicPhysical_BasicPhysicalStatus:out;
DroneMissionDataPath_Drone2ControlDesk:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
AND_Physical_disymetric2:Functions_PhysicalOperators_AND_Physical_disymetric;
AND_Physical_disymetric1:Functions_PhysicalOperators_AND_Physical_disymetric;
assert
DroneMissionDataPath_ControlDesk2Drone = AND_Physical_disymetric1.output,
DroneMissionDataPath_Drone2ControlDesk = AND_Physical_disymetric2.output,
AND_Physical_disymetric2.minorInput = MainDigitalNetwork,
AND_Physical_disymetric2.majorInput = WifiController_transmission,
AND_Physical_disymetric1.minorInput = WifiController_reception,
AND_Physical_disymetric1.majorInput = MainDigitalNetwork;
edon
node eq_AIDASystem_Physical_Path_PilotDroneControl
flow
RemoteCommunication:Physical_BasicPhysical_BasicPhysicalStatus:in;
RadioController:Physical_BasicPhysical_BasicPhysicalStatus:in;
MainDigitalNetwork:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_PilotDroneControlPath:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
AND_Physical_disymetric2:Functions_PhysicalOperators_AND_Physical_disymetric;
AND_Physical_disymetric1:Functions_PhysicalOperators_AND_Physical_disymetric;
assert
Alloc_PilotDroneControlPath = AND_Physical_disymetric2.output,
AND_Physical_disymetric2.minorInput = AND_Physical_disymetric1.output,
AND_Physical_disymetric2.majorInput = MainDigitalNetwork,
AND_Physical_disymetric1.minorInput = RemoteCommunication,
AND_Physical_disymetric1.majorInput = RadioController;
edon
node eq_AIDASystem_Physical_RemoteControlInterface
flow
Alloc_PushButton:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_CameraControlDevice:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_LeftAndRightSideSticks:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
CameraControlDevice:Components_RemoteControl_RemoteControlInterface;
PushButton:Components_RemoteControl_RemoteControlInterface;
LeftAndRightSideSticks:Components_RemoteControl_RemoteControlInterface;
assert
Alloc_PushButton = PushButton.output,
Alloc_CameraControlDevice = CameraControlDevice.output,
Alloc_LeftAndRightSideSticks = LeftAndRightSideSticks.output;
edon
node eq_AIDASystem_Physical_MainProcessor
flow
oProcessor^Acquisition:Physical_BasicPhysical_BasicPhysicalStatus:out;
oProcessor^Emission:Physical_BasicPhysical_BasicPhysicalStatus:out;
oProcessor^Computation:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
PowerSupplyMonitoring:Components_Sensors_PowerSupplyMonitoring;
Computation:Components_Computers_Computation;
Acquisition:Components_Computers_AcquisitionEmission;
Emission:Components_Computers_AcquisitionEmission;
assert
oProcessor^Acquisition = Acquisition.output,
oProcessor^Emission = Emission.output,
oProcessor^Computation = Computation.output,
PowerSupplyMonitoring.Power = Power,
Computation.Power = PowerSupplyMonitoring.MonitoredPower,
Acquisition.Power = PowerSupplyMonitoring.MonitoredPower,
Emission.Power = PowerSupplyMonitoring.MonitoredPower;
edon
node eq_AIDASystem_Functions_SF64_DisplayDroneFollowUpData
flow
icone:[1,2]:private;
iControlMode^Mode:Functions_BasicFunctions_ModeSelection:in;
iControlMode^IsErroneous:bool:in;
iFlightPlanProgress:Physical_BasicPhysical_BasicPhysicalStatus:in;
oControlMode:Functions_BasicFunctions_ModeSelection:out;
oFlightPlanProgress:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_DroneMissionDataPath_Drone2ControlDesk2:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneControlDesk_reception:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneMissionDataPath_Drone2ControlDesk2:Functions_PhysicalOperators_PhysicalInjection;
Inj_DroneMissionDataPath_Drone2ControlDesk1:Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status;
Inj_DroneControlDesk_reception1:Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status;
Inj_DroneControlDesk_reception2:Functions_PhysicalOperators_PhysicalInjection;
SF64_FlightPlanProgress:Functions_BasicFunctions_InOutFunction;
SF64_ControlMode:Functions_BasicFunctions_InOutModeFunction;
assert
icone = case {
((SF64_ControlMode.status # OK) or (SF64_FlightPlanProgress.status # OK)) : 2,
else 1
},
oControlMode = Inj_DroneControlDesk_reception1.output,
oFlightPlanProgress = Inj_DroneControlDesk_reception2.output,
Inj_DroneMissionDataPath_Drone2ControlDesk2.alloc = Alloc_DroneMissionDataPath_Drone2ControlDesk2,
Inj_DroneMissionDataPath_Drone2ControlDesk2.input = iFlightPlanProgress,
Inj_DroneMissionDataPath_Drone2ControlDesk1.alloc = Alloc_DroneMissionDataPath_Drone2ControlDesk2,
Inj_DroneMissionDataPath_Drone2ControlDesk1.isAlreadyErroneous = iControlMode^IsErroneous,
Inj_DroneMissionDataPath_Drone2ControlDesk1.input = iControlMode^Mode,
Inj_DroneControlDesk_reception1.alloc = Alloc_DroneControlDesk_reception,
Inj_DroneControlDesk_reception1.isAlreadyErroneous = Inj_DroneMissionDataPath_Drone2ControlDesk1.isErroneous,
Inj_DroneControlDesk_reception1.input = SF64_ControlMode.outputMode,
Inj_DroneControlDesk_reception2.alloc = Alloc_DroneControlDesk_reception,
Inj_DroneControlDesk_reception2.input = SF64_FlightPlanProgress.output,
SF64_FlightPlanProgress.input = Inj_DroneMissionDataPath_Drone2ControlDesk2.output,
SF64_ControlMode.inputMode = Inj_DroneMissionDataPath_Drone2ControlDesk1.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF72_ComputeAltitudeMON
flow
icone:[1,2]:private;
Alloc_MonProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_TelemetricSensorMON:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_PressureSensorMON:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_DroneMonitoringDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
GroundAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:out;
VerticalSpeed:Physical_BasicPhysical_BasicPhysicalStatus:out;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
SF725_ComputeAltitudeAndVerticalSpeedMON:eq_AIDASystem_FunctionsWithPhysical_forInj_SF725_ComputeAltitudeAndVerticalSpeedMON;
SF724_ComputeGroundAltitudeMON:eq_AIDASystem_FunctionsWithPhysical_forInj_SF724_ComputeGroundAltitudeMON;
SF723_MeasureTelemetricSignalMON:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF723_MeasureTelemetricSignalMON;
SF721_MeasureAmbiantPressureMON:eq_AIDASystem_FunctionsWithPhysical_forInj_SF721_MeasureAmbiantPressureMON;
SF722_ComputeBarometricAltitudeMON:eq_AIDASystem_FunctionsWithPhysical_forInj_SF722_ComputeBarometricAltitudeMON;
assert
icone = case {
(((((SF721_MeasureAmbiantPressureMON.SF721_Dysfunctional.status # OK) or (SF722_ComputeBarometricAltitudeMON.SF722_Dysfunctional.status # OK)) or (SF723_MeasureTelemetricSignalMON.SF723_Dysfunctional.status # OK)) or (SF724_ComputeGroundAltitudeMON.SF724_Dysfunctional.status # OK)) or (SF725_ComputeAltitudeAndVerticalSpeedMON.SF725_Dysfunctional.status # OK)) : 2,
else 1
},
GroundAltitude = SF724_ComputeGroundAltitudeMON.GroundAltitude,
VerticalSpeed = SF725_ComputeAltitudeAndVerticalSpeedMON.VerticalSpeed,
Altitude = SF725_ComputeAltitudeAndVerticalSpeedMON.Altitude,
SF725_ComputeAltitudeAndVerticalSpeedMON.Alloc_MonProcComputation = Alloc_MonProcComputation,
SF725_ComputeAltitudeAndVerticalSpeedMON.GroundAltitude = SF724_ComputeGroundAltitudeMON.GroundAltitude,
SF725_ComputeAltitudeAndVerticalSpeedMON.BarometricAltitude = SF722_ComputeBarometricAltitudeMON.BarometricAltitude,
SF724_ComputeGroundAltitudeMON.Alloc_MonProcComputation = Alloc_MonProcComputation,
SF724_ComputeGroundAltitudeMON.Alloc_DroneMonitoringDigitalNetworkPath = Alloc_DroneMonitoringDigitalNetworkPath,
SF724_ComputeGroundAltitudeMON.Alloc_MonProcAcquisition = Alloc_MonProcAcquisition,
SF724_ComputeGroundAltitudeMON.Attitude = Attitude,
SF724_ComputeGroundAltitudeMON.MeasuredGroundDistance = SF723_MeasureTelemetricSignalMON.GroundDistance,
SF723_MeasureTelemetricSignalMON.Alloc_TelemetricSensorMON = Alloc_TelemetricSensorMON,
SF721_MeasureAmbiantPressureMON.Alloc_PressureSensorMON = Alloc_PressureSensorMON,
SF722_ComputeBarometricAltitudeMON.Alloc_MonProcComputation = Alloc_MonProcComputation,
SF722_ComputeBarometricAltitudeMON.Alloc_DroneMonitoringDigitalNetworkPath = Alloc_DroneMonitoringDigitalNetworkPath,
SF722_ComputeBarometricAltitudeMON.Alloc_MonProcAcquisition = Alloc_MonProcAcquisition,
SF722_ComputeBarometricAltitudeMON.MeasuredPressure = SF721_MeasureAmbiantPressureMON.Pressure;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF71_ComputeAttitudeMON
flow
icone:[1,3]:private;
Alloc_MonProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_IRSMON:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MagnetometerMON:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMonitoringDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
Inj_Acq:Functions_PhysicalOperators_PhysicalInjection;
Inj_DroneMonitoringDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection;
Inj_Sensors:Functions_PhysicalOperators_PhysicalInjection;
PhyAdd_AND:Functions_PhysicalOperators_AND_Physical;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection;
SF71_Dysfunctional:Functions_BasicFunctions_SourceFunction;
assert
icone = case {
(SF71_Dysfunctional.status = LOST) : 2,
(SF71_Dysfunctional.status = ERRONEOUS) : 3,
else 1
},
Attitude = Inj_Comp.output,
Inj_Acq.alloc = Alloc_MonProcAcquisition,
Inj_Acq.input = Inj_DroneMonitoringDigitalNetworkPath.output,
Inj_DroneMonitoringDigitalNetworkPath.alloc = Alloc_DroneMonitoringDigitalNetworkPath,
Inj_DroneMonitoringDigitalNetworkPath.input = Inj_Sensors.output,
Inj_Sensors.alloc = PhyAdd_AND.output,
Inj_Sensors.input = SF71_Dysfunctional.output,
PhyAdd_AND.input_1 = Alloc_IRSMON,
PhyAdd_AND.input_2 = Alloc_MagnetometerMON,
Inj_Comp.alloc = Alloc_MonProcComputation,
Inj_Comp.input = Inj_Acq.output;
edon
node eq_AIDASystem_Functions_SF73_ControlAttitudeAndAltitudeMON
flow
icone:[1,2]:private;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
YawConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
PitchRollConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
AltitudeConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
AttitudeAPConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
AltitudeAPConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
APEngagement^Mode:Functions_BasicFunctions_ModeSelection:in;
APEngagement^IsErroneous:bool:in;
MotorRate:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_PilotDroneControlPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
SF731_2_ControlAltitudeMON:eq_AIDASystem_FunctionsWithPhysical_forInj_SF731_2_ControlAltitudeMON;
SF733_6_ControlAttitudeMON:eq_AIDASystem_FunctionsWithPhysical_forInj_SF733_6_ControlAttitudeMON;
SF737_8_ComputeMotorRate:eq_AIDASystem_FunctionsWithPhysical_forInj_SF737_8_ComputeMotorRate;
assert
icone = case {
(((SF733_6_ControlAttitudeMON.SF734_6_ControlAttitudeMON.status = OK) and (SF731_2_ControlAltitudeMON.SF731_ComputeThrustMON.status = OK)) and (SF737_8_ComputeMotorRate.SF737_8_ControlThrust.status = OK)) : 1,
else 2
},
MotorRate = SF737_8_ComputeMotorRate.MotorRates,
SF731_2_ControlAltitudeMON.Altitude = Altitude,
SF731_2_ControlAltitudeMON.Attitude = Attitude,
SF731_2_ControlAltitudeMON.AltitudeConsign = AltitudeConsign,
SF731_2_ControlAltitudeMON.T_AP = AltitudeAPConsign,
SF731_2_ControlAltitudeMON.APEngagement^Mode = APEngagement^Mode,
SF731_2_ControlAltitudeMON.APEngagement^IsErroneous = APEngagement^IsErroneous,
SF731_2_ControlAltitudeMON.Alloc_MonProcComputation = Alloc_MonProcComputation,
SF731_2_ControlAltitudeMON.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF731_2_ControlAltitudeMON.Alloc_MonProcAcquisition = Alloc_MonProcAcquisition,
SF733_6_ControlAttitudeMON.Attitude = Attitude,
SF733_6_ControlAttitudeMON.AttitudeAPConsign = AttitudeAPConsign,
SF733_6_ControlAttitudeMON.PitchRollConsign = PitchRollConsign,
SF733_6_ControlAttitudeMON.YawConsign = YawConsign,
SF733_6_ControlAttitudeMON.APEngagement^Mode = APEngagement^Mode,
SF733_6_ControlAttitudeMON.APEngagement^IsErroneous = APEngagement^IsErroneous,
SF733_6_ControlAttitudeMON.Alloc_MonProcComputation = Alloc_MonProcComputation,
SF733_6_ControlAttitudeMON.Alloc_PilotDroneControlPath = Alloc_PilotDroneControlPath,
SF733_6_ControlAttitudeMON.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF733_6_ControlAttitudeMON.Alloc_MonProcAcquisition = Alloc_MonProcAcquisition,
SF737_8_ComputeMotorRate.Thrust = SF731_2_ControlAltitudeMON.T,
SF737_8_ComputeMotorRate.P = SF733_6_ControlAttitudeMON.P,
SF737_8_ComputeMotorRate.Alloc_MonProcComputation = Alloc_MonProcComputation;
edon
node eq_AIDASystem_Functions_SF74_MonitorParameters
flow
icone:[1,2]:private;
Alloc_MonProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
MotorRateMON:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRate:Physical_BasicPhysical_HiLoPhysicalStatus:in;
GroundAltitudeMON:Physical_BasicPhysical_HiLoPhysicalStatus:in;
GroundAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
AltitudeMON:Physical_BasicPhysical_HiLoPhysicalStatus:in;
VerticalSpeedMON:Physical_BasicPhysical_BasicPhysicalStatus:in;
VerticalSpeed:Physical_BasicPhysical_BasicPhysicalStatus:in;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
AttitudeMON:Physical_BasicPhysical_BasicPhysicalStatus:in;
MotorRateMeasured^MotorRate1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRateMeasured^MotorRate2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRateMeasured^MotorRate3:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRateMeasured^MotorRate4:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorsDisabled^Motor1:bool:out;
MotorsDisabled^IsErroneous1:bool:out;
MotorsDisabled^Motor2:bool:out;
MotorsDisabled^IsErroneous2:bool:out;
MotorsDisabled^Motor3:bool:out;
MotorsDisabled^IsErroneous3:bool:out;
MotorsDisabled^Motor4:bool:out;
MotorsDisabled^IsErroneous4:bool:out;
Alloc_MonProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMonitoringDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneDigitalNetworkPath2:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_DroneDigitalNetworkPath1:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp2:Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Origin;
Inj_Comp1:Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Origin;
Inj_Acq2:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF743_CompareMotorConsign:Functions_BasicOperators_Comparator_HiLo;
Inj_Acq1:Functions_PhysicalOperators_PhysicalInjection;
SF745_DisableDroneMotor:eq_AIDASystem_Functions_SF745_DisableDroneMotor;
SF744_MonitorMotorRate:eq_AIDASystem_Functions_SF744_CompareDroneMotorRate;
SF741_CompareAttitude:Functions_BasicOperators_Comparator;
SF742_CompareDroneAltitude:eq_AIDASystem_FunctionsWithPhysical_forInj_SF742_CompareDroneAltitude;
assert
icone = case {
(SF745_DisableDroneMotor.FailureModesOfSF74.status = OK) : 1,
else 2
},
MotorsDisabled^Motor1 = SF745_DisableDroneMotor.MotorDisabled^Motor1,
MotorsDisabled^IsErroneous1 = SF745_DisableDroneMotor.MotorDisabled^IsErroneous1,
MotorsDisabled^Motor2 = SF745_DisableDroneMotor.MotorDisabled^Motor2,
MotorsDisabled^IsErroneous2 = SF745_DisableDroneMotor.MotorDisabled^IsErroneous2,
MotorsDisabled^Motor3 = SF745_DisableDroneMotor.MotorDisabled^Motor3,
MotorsDisabled^IsErroneous3 = SF745_DisableDroneMotor.MotorDisabled^IsErroneous3,
MotorsDisabled^Motor4 = SF745_DisableDroneMotor.MotorDisabled^Motor4,
MotorsDisabled^IsErroneous4 = SF745_DisableDroneMotor.MotorDisabled^IsErroneous4,
Inj_DroneDigitalNetworkPath2.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath2.input = MotorRate,
Inj_DroneDigitalNetworkPath1.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath1.input = Attitude,
Inj_Comp2.alloc = Alloc_MonProcComputation,
Inj_Comp2.input = SF743_CompareMotorConsign.output,
Inj_Comp1.alloc = Alloc_MonProcComputation,
Inj_Comp1.input = SF741_CompareAttitude.output,
Inj_Acq2.alloc = Alloc_MonProcAcquisition,
Inj_Acq2.input = Inj_DroneDigitalNetworkPath2.output,
SF743_CompareMotorConsign.input1 = Inj_Acq2.output,
SF743_CompareMotorConsign.status_acquisition = Alloc_MonProcAcquisition,
SF743_CompareMotorConsign.input2 = MotorRateMON,
Inj_Acq1.alloc = Alloc_MonProcAcquisition,
Inj_Acq1.input = Inj_DroneDigitalNetworkPath1.output,
SF745_DisableDroneMotor.Motor1Runaway^Detected = SF744_MonitorMotorRate.Motor1Runaway^Detected,
SF745_DisableDroneMotor.Motor1Runaway^IsErroneous = SF744_MonitorMotorRate.Motor1Runaway^IsErroneous,
SF745_DisableDroneMotor.Motor2Runaway^Detected = SF744_MonitorMotorRate.Motor2Runaway^Detected,
SF745_DisableDroneMotor.Motor2Runaway^IsErroneous = SF744_MonitorMotorRate.Motor2Runaway^IsErroneous,
SF745_DisableDroneMotor.Motor3Runaway^Detected = SF744_MonitorMotorRate.Motor3Runaway^Detected,
SF745_DisableDroneMotor.Motor3Runaway^IsErroneous = SF744_MonitorMotorRate.Motor3Runaway^IsErroneous,
SF745_DisableDroneMotor.Motor4Runaway^Detected = SF744_MonitorMotorRate.Motor4Runaway^Detected,
SF745_DisableDroneMotor.Motor4Runaway^IsErroneous = SF744_MonitorMotorRate.Motor4Runaway^IsErroneous,
SF745_DisableDroneMotor.AttitudeFailureDetected^Detected = Inj_Comp1.output,
SF745_DisableDroneMotor.AttitudeFailureDetected^IsErroneous = Inj_Comp1.isErroneous,
SF745_DisableDroneMotor.AltitudeFailureDetected^Detected = SF742_CompareDroneAltitude.AltitudeFailure^Detected,
SF745_DisableDroneMotor.AltitudeFailureDetected^IsErroneous = SF742_CompareDroneAltitude.AltitudeFailure^IsErroneous,
SF745_DisableDroneMotor.MotorConsignFailureDetected^Detected = Inj_Comp2.output,
SF745_DisableDroneMotor.MotorConsignFailureDetected^IsErroneous = Inj_Comp2.isErroneous,
SF745_DisableDroneMotor.Alloc_MonProcComputation = Alloc_MonProcComputation,
SF745_DisableDroneMotor.Alloc_MonProcEmission = Alloc_MonProcEmission,
SF744_MonitorMotorRate.MotorRatesMeasured^MotorRate1 = MotorRateMeasured^MotorRate1,
SF744_MonitorMotorRate.MotorRatesMeasured^MotorRate2 = MotorRateMeasured^MotorRate2,
SF744_MonitorMotorRate.MotorRatesMeasured^MotorRate3 = MotorRateMeasured^MotorRate3,
SF744_MonitorMotorRate.MotorRatesMeasured^MotorRate4 = MotorRateMeasured^MotorRate4,
SF744_MonitorMotorRate.Alloc_MonProcComputation = Alloc_MonProcComputation,
SF744_MonitorMotorRate.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF744_MonitorMotorRate.Alloc_DroneMonitoringDigitalNetworkPath = Alloc_DroneMonitoringDigitalNetworkPath,
SF744_MonitorMotorRate.Alloc_MonProcAcquisition = Alloc_MonProcAcquisition,
SF744_MonitorMotorRate.MotorRate = MotorRate,
SF741_CompareAttitude.input1 = Inj_Acq1.output,
SF741_CompareAttitude.status_acquisition = Alloc_MonProcAcquisition,
SF741_CompareAttitude.input2 = AttitudeMON,
SF742_CompareDroneAltitude.AltitudeMON = AltitudeMON,
SF742_CompareDroneAltitude.Altitude = Altitude,
SF742_CompareDroneAltitude.GroundAltitude = GroundAltitude,
SF742_CompareDroneAltitude.GroundAltitudeMON = GroundAltitudeMON,
SF742_CompareDroneAltitude.VerticalSpeed = VerticalSpeed,
SF742_CompareDroneAltitude.VerticalSpeedMON = VerticalSpeedMON,
SF742_CompareDroneAltitude.Alloc_MonProcAcquisition = Alloc_MonProcAcquisition,
SF742_CompareDroneAltitude.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF742_CompareDroneAltitude.Alloc_MonProcComputation = Alloc_MonProcComputation;
edon
node eq_AIDASystem_FunctionsWithPhysical_ForInj_SF51_SelectCameraControl
flow
AutomaticPayloadControl:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_PilotPayloadControlPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
ManualPayloadControl^Signal:Functions_BasicFunctions_Presence:in;
ManualPayloadControl^IsErroneous:bool:in;
FileStorageFormat:Physical_BasicPhysical_BasicPhysicalStatus:out;
CameraPositionConsign_PhotoAndVideoControl:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
Inj_PilotPayloadControlPath:Functions_PhysicalOperators_PhysicalInjection_Presence_Status;
Inj_DroneDigitalNetworkPath1:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp1:Functions_PhysicalOperators_PhysicalInjection;
Inj_Emiss1:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq2:Functions_PhysicalOperators_PhysicalInjection_Presence_Status;
Inj_Acq1:Functions_PhysicalOperators_PhysicalInjection;
SF51_Switch:Functions_BasicOperators_PerfectPresenceSelectorOK;
assert
FileStorageFormat = SF51_Switch.output,
CameraPositionConsign_PhotoAndVideoControl = Inj_Emiss1.output,
Inj_PilotPayloadControlPath.alloc = Alloc_PilotPayloadControlPath,
Inj_PilotPayloadControlPath.isAlreadyErroneous = ManualPayloadControl^IsErroneous,
Inj_PilotPayloadControlPath.input = ManualPayloadControl^Signal,
Inj_DroneDigitalNetworkPath1.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath1.input = AutomaticPayloadControl,
Inj_Comp1.alloc = Alloc_VideoProcComputation,
Inj_Comp1.input = SF51_Switch.output,
Inj_Emiss1.alloc = Alloc_VideoProcEmission,
Inj_Emiss1.input = Inj_Comp1.output,
Inj_Acq2.alloc = Alloc_VideoProcAcquisition,
Inj_Acq2.isAlreadyErroneous = Inj_PilotPayloadControlPath.isErroneous,
Inj_Acq2.input = Inj_PilotPayloadControlPath.output,
Inj_Acq1.alloc = Alloc_VideoProcAcquisition,
Inj_Acq1.input = Inj_DroneDigitalNetworkPath1.output,
SF51_Switch.input = Inj_Acq1.output,
SF51_Switch.condition = Inj_Acq2.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_ForInj_SF55_AcquireManualPayloadControl
flow
icone:[1,2]:private;
iManualPayloadControl:Functions_BasicFunctions_Presence:in;
Alloc_CameraControlDevice:Physical_BasicPhysical_BasicPhysicalStatus:in;
oManualPayloadControl^Signal:Functions_BasicFunctions_Presence:out;
oManualPayloadControl^IsErroneous:bool:out;
sub
Inj_CameraControlDevice:Functions_PhysicalOperators_PhysicalInjection_Presence_Status_Origin;
SF55_Dysfunctional:Functions_BasicFunctions_AbsentPresentFunction;
assert
icone = case {
(SF55_Dysfunctional.status = LOST) : 2,
else 1
},
oManualPayloadControl^Signal = Inj_CameraControlDevice.output,
oManualPayloadControl^IsErroneous = Inj_CameraControlDevice.isErroneous,
Inj_CameraControlDevice.alloc = Alloc_CameraControlDevice,
Inj_CameraControlDevice.input = SF55_Dysfunctional.output,
SF55_Dysfunctional.input = iManualPayloadControl;
edon
node eq_AIDASystem_FunctionsWithPhysical_ForInj_SF52_ControlCameraOrientation
flow
icone:[1,3]:private;
CameraPositionConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_CameraRotarySupport:Physical_BasicPhysical_BasicPhysicalStatus:in;
CameraPosition:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
Inj_DroneDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection;
Inj_CameraRotarySupport:Functions_PhysicalOperators_PhysicalInjection;
SF52_Dysfunctional:Functions_BasicFunctions_InOutFunction;
assert
icone = case {
(SF52_Dysfunctional.status = LOST) : 2,
(SF52_Dysfunctional.status = ERRONEOUS) : 3,
else 1
},
CameraPosition = Inj_CameraRotarySupport.output,
Inj_DroneDigitalNetworkPath.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath.input = CameraPositionConsign,
Inj_CameraRotarySupport.alloc = Alloc_CameraRotarySupport,
Inj_CameraRotarySupport.input = SF52_Dysfunctional.output,
SF52_Dysfunctional.input = Inj_DroneDigitalNetworkPath.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_ForInj_SF53_MakePhotosAndVideos
flow
icone:[1,3]:private;
CameraPosition:Physical_BasicPhysical_BasicPhysicalStatus:in;
PhotoAndVideoControl:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_CameraSensor:Physical_BasicPhysical_BasicPhysicalStatus:in;
Video_Photo:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
Inj_DroneDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection;
Inj_CameraSensor:Functions_PhysicalOperators_PhysicalInjection;
SF53_Dysfunctional:Functions_BasicFunctions_InOutFunction;
SF53_NeedAll:Functions_BasicOperators_AND;
assert
icone = case {
(SF53_Dysfunctional.status = LOST) : 2,
(SF53_Dysfunctional.status = ERRONEOUS) : 3,
else 1
},
Video_Photo = Inj_CameraSensor.output,
Inj_DroneDigitalNetworkPath.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath.input = PhotoAndVideoControl,
Inj_CameraSensor.alloc = Alloc_CameraSensor,
Inj_CameraSensor.input = SF53_Dysfunctional.output,
SF53_Dysfunctional.input = SF53_NeedAll.output,
SF53_NeedAll.input_1 = CameraPosition,
SF53_NeedAll.input_2 = Inj_DroneDigitalNetworkPath.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_ForInj_SF54_DigitisePhotosAndVideos
flow
icone:[1,3]:private;
Video_Photo:Physical_BasicPhysical_BasicPhysicalStatus:in;
FileStorageFormat:Physical_BasicPhysical_BasicPhysicalStatus:in;
PhotosAndVideoFiles:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_VideoProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection;
Inj_Emiss3:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp2:Functions_PhysicalOperators_PhysicalInjection;
SF54_Dysfunctional:Functions_BasicFunctions_InOutFunction;
SF54_NeedAll:Functions_BasicOperators_AND;
Inj_Acq3:Functions_PhysicalOperators_PhysicalInjection;
assert
icone = case {
(SF54_Dysfunctional.status = LOST) : 2,
(SF54_Dysfunctional.status = ERRONEOUS) : 3,
else 1
},
PhotosAndVideoFiles = Inj_Emiss3.output,
Inj_DroneDigitalNetworkPath.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath.input = Video_Photo,
Inj_Emiss3.alloc = Alloc_VideoProcEmission,
Inj_Emiss3.input = Inj_Comp2.output,
Inj_Comp2.alloc = Alloc_VideoProcComputation,
Inj_Comp2.input = SF54_Dysfunctional.output,
SF54_Dysfunctional.input = SF54_NeedAll.output,
SF54_NeedAll.input_1 = Inj_Acq3.output,
SF54_NeedAll.input_2 = FileStorageFormat,
Inj_Acq3.alloc = Alloc_VideoProcAcquisition,
Inj_Acq3.input = Inj_DroneDigitalNetworkPath.output;
edon
node eq_AIDASystem_Functions_SF42_RunAutomaticControl
flow
FlightPlan:Physical_BasicPhysical_BasicPhysicalStatus:in;
Position:Physical_BasicPhysical_BasicPhysicalStatus:in;
FlightPlanProgress:Physical_BasicPhysical_BasicPhysicalStatus:out;
AutomaticPayloadControl:Physical_BasicPhysical_BasicPhysicalStatus:out;
SpeedConsign:Physical_BasicPhysical_BasicPhysicalStatus:out;
PositionConsign:Physical_BasicPhysical_BasicPhysicalStatus:out;
PilotControlConsigns:Physical_BasicPhysical_BasicPhysicalStatus:in;
Time:Physical_BasicPhysical_BasicPhysicalStatus:in;
FlightPlanInterruption:Functions_BasicFunctions_Presence:in;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMissionDataPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
MissionCompleted^Signal:Functions_BasicFunctions_Presence:out;
MissionCompleted^IsErroneous:bool:out;
sub
Inj_Emiss:Functions_PhysicalOperators_PhysicalInjection;
SF423_SelectAutomaticPayloadControl:Functions_BasicOperators_AND;
SF421_RunFlightPlan:eq_AIDASystem_Functions_SF421_RunFlightPlan;
SF422_RunSpeedControl:eq_AIDASystem_FunctionsWithPhysical_forInj_SF422_RunSpeedControl;
assert
FlightPlanProgress = SF421_RunFlightPlan.FlightPlanProgress,
AutomaticPayloadControl = Inj_Emiss.output,
SpeedConsign = SF422_RunSpeedControl.DroneSpeedConsign_ProgrammedPayloadControl,
PositionConsign = SF421_RunFlightPlan.PositionConsign_FlightPlanPayloadControl,
MissionCompleted^Signal = SF421_RunFlightPlan.MissionCompleted^Signal,
MissionCompleted^IsErroneous = SF421_RunFlightPlan.MissionCompleted^IsErroneous,
Inj_Emiss.alloc = Alloc_MainProcEmission,
Inj_Emiss.input = SF423_SelectAutomaticPayloadControl.output,
SF423_SelectAutomaticPayloadControl.input_1 = SF421_RunFlightPlan.PositionConsign_FlightPlanPayloadControl,
SF423_SelectAutomaticPayloadControl.input_2 = SF422_RunSpeedControl.DroneSpeedConsign_ProgrammedPayloadControl,
SF421_RunFlightPlan.Alloc_DroneMissionDataPath = Alloc_DroneMissionDataPath,
SF421_RunFlightPlan.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF421_RunFlightPlan.Alloc_MainProcEmission = Alloc_MainProcEmission,
SF421_RunFlightPlan.Alloc_MainProcComputation = Alloc_MainProcComputation,
SF421_RunFlightPlan.Alloc_MainProcAcquisition = Alloc_MainProcAcquisition,
SF421_RunFlightPlan.Time = Time,
SF421_RunFlightPlan.Position = Position,
SF421_RunFlightPlan.FlightPlan = FlightPlan,
SF421_RunFlightPlan.FlightPlanInterruption = FlightPlanInterruption,
SF422_RunSpeedControl.PilotControlConsigns = PilotControlConsigns,
SF422_RunSpeedControl.Alloc_MainProcComputation = Alloc_MainProcComputation,
SF422_RunSpeedControl.Alloc_DroneMissionDataPath = Alloc_DroneMissionDataPath,
SF422_RunSpeedControl.Alloc_MainProcAcquisition = Alloc_MainProcAcquisition;
edon
node eq_AIDASystem_Functions_SF44_AcquirePilotControlConsignAndMode
flow
icone:[1,2]:private;
AcquiredPilotControlConsigns:Physical_BasicPhysical_BasicPhysicalStatus:out;
AcquiredPilotControlMode:Functions_BasicFunctions_ModeSelection_ErroneousLost:out;
PilotControlMode:Functions_BasicFunctions_ModeSelection:in;
Alloc_DroneControlDesk_transmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneControlDesk_transmission2:Functions_PhysicalOperators_PhysicalInjection_ModeSelectionErroneousLost;
Inj_DroneControlDesk_transmission1:Functions_PhysicalOperators_PhysicalInjection;
SF44_AcquireControlConsigns:Functions_BasicFunctions_SourceFunction;
SF44_transtypage:Functions_BasicOperators_transtypageMode;
SF44_AcquireControlMode:Functions_BasicFunctions_ErroneousLostModeSelector;
assert
icone = case {
((SF44_AcquireControlConsigns.status # OK) or (SF44_AcquireControlMode.status # OK)) : 2,
else 1
},
AcquiredPilotControlConsigns = Inj_DroneControlDesk_transmission1.output,
AcquiredPilotControlMode = Inj_DroneControlDesk_transmission2.output,
Inj_DroneControlDesk_transmission2.alloc = Alloc_DroneControlDesk_transmission,
Inj_DroneControlDesk_transmission2.input = SF44_AcquireControlMode.outputMode,
Inj_DroneControlDesk_transmission1.alloc = Alloc_DroneControlDesk_transmission,
Inj_DroneControlDesk_transmission1.input = SF44_AcquireControlConsigns.output,
SF44_transtypage.I = PilotControlMode,
SF44_AcquireControlMode.inputMode = SF44_transtypage.O;
edon
node eq_AIDASystem_Functions_SF43_SelectControlMode
flow
icone:[1,2]:private;
PilotManualControl:Functions_BasicFunctions_ModeSelection_ErroneousLost:in;
IndicatedMode^Mode:Functions_BasicFunctions_ModeSelection:out;
IndicatedMode^IsErroneous:bool:out;
APEngagement_WSL^Mode:Functions_BasicFunctions_ModeSelection:out;
APEngagement_WSL^IsErroneous:bool:out;
APEngagement:Functions_BasicFunctions_ModeSelection:out;
ManualOverride:Physical_BasicPhysical_BasicPhysicalStatus:in;
MissionCompleted^Signal:Functions_BasicFunctions_Presence:in;
MissionCompleted^IsErroneous:bool:in;
FlightPlanInterruption:Functions_BasicFunctions_Presence:out;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMissionDataPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_PilotDroneControlPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneMissionDataPath:Functions_PhysicalOperators_PhysicalInjection_ModeSelectionErroneousLost;
Inj_PilotDroneControlPath:Functions_PhysicalOperators_PhysicalInjection_detection;
SF431_Detection:Functions_BasicOperators_detectionOfErroneous;
Inj_Comp1:Functions_PhysicalOperators_PhysicalInjection_ModeSelectionErroneousLost_Status;
Inj_Comp4:Functions_PhysicalOperators_PhysicalInjection_Presence_Status;
Inj_Emiss2:Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status;
Inj_Emiss1:Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status;
Inj_Comp3:Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status;
Inj_Comp2:Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status;
Inj_Acq2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq1:Functions_PhysicalOperators_PhysicalInjection_ModeSelectionErroneousLost;
SF431_SelectControlMode:Functions_BasicFunctions_ErroneousLostPresentModeSelector;
SF433_IndicateControlMode:Functions_BasicFunctions_InOutModeFunction;
SF432_PassivateEngagementOscillation:Functions_BasicFunctions_FaultyManualModeSelector_LossType;
assert
APEngagement = Inj_Comp2.output,
icone = case {
(APEngagement = AUTO) : 1,
else 2
},
IndicatedMode^Mode = Inj_Emiss2.output,
IndicatedMode^IsErroneous = Inj_Emiss2.isErroneous,
APEngagement_WSL^Mode = Inj_Emiss1.output,
APEngagement_WSL^IsErroneous = Inj_Emiss1.isErroneous,
FlightPlanInterruption = Inj_Comp4.output,
Inj_DroneMissionDataPath.alloc = Alloc_DroneMissionDataPath,
Inj_DroneMissionDataPath.input = PilotManualControl,
Inj_PilotDroneControlPath.alloc = Alloc_PilotDroneControlPath,
Inj_PilotDroneControlPath.input = ManualOverride,
SF431_Detection.input = Inj_Acq2.output,
Inj_Comp1.alloc = Alloc_MainProcComputation,
Inj_Comp1.isAlreadyErroneous = MissionCompleted^IsErroneous,
Inj_Comp1.input = SF431_SelectControlMode.outputMode,
Inj_Comp4.alloc = Alloc_MainProcComputation,
Inj_Comp4.isAlreadyErroneous = Inj_Comp1.isErroneous,
Inj_Comp4.input = SF432_PassivateEngagementOscillation.FlightPlanInterruption,
Inj_Emiss2.alloc = Alloc_MainProcEmission,
Inj_Emiss2.isAlreadyErroneous = Inj_Comp3.isErroneous,
Inj_Emiss2.input = Inj_Comp3.output,
Inj_Emiss1.alloc = Alloc_MainProcEmission,
Inj_Emiss1.isAlreadyErroneous = Inj_Comp2.isErroneous,
Inj_Emiss1.input = Inj_Comp2.output,
Inj_Comp3.alloc = Alloc_MainProcComputation,
Inj_Comp3.isAlreadyErroneous = Inj_Comp2.isErroneous,
Inj_Comp3.input = SF433_IndicateControlMode.outputMode,
Inj_Comp2.alloc = Alloc_MainProcComputation,
Inj_Comp2.isAlreadyErroneous = Inj_Comp1.isErroneous,
Inj_Comp2.input = SF432_PassivateEngagementOscillation.outputMode,
Inj_Acq2.alloc = Alloc_MainProcAcquisition,
Inj_Acq2.input = Inj_PilotDroneControlPath.output,
Inj_Acq1.alloc = Alloc_MainProcAcquisition,
Inj_Acq1.input = Inj_DroneMissionDataPath.output,
SF431_SelectControlMode.inputMode = Inj_Acq1.output,
SF431_SelectControlMode.ManualOverride = SF431_Detection.output,
SF431_SelectControlMode.MissionCompleted = MissionCompleted^Signal,
SF433_IndicateControlMode.inputMode = Inj_Comp2.output,
SF432_PassivateEngagementOscillation.inputMode = Inj_Comp1.output;
edon
node eq_AIDASystem_Functions_SF1i_ControlHelix_2
flow
icone:[1,2]:private;
MotorDisabled_IsErroneous:bool:in;
MotorDisabled:bool:in;
MotorRateMeasured:Physical_BasicPhysical_HiLoPhysicalStatus:out;
ThrustAndTorque:Physical_BasicPhysical_HiLoPhysicalStatus:out;
MotorRate:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_PowerDistribution:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_MotorAndVariator:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMonitoringDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_Propeller:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_DroneMonitoringDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection_boolean_Status;
Inj_PowerDistribution:Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Actuators;
SF1i6_DepowerMotor:Boolean_Boolean_BooleanInOutFunction;
Inj_Propeller:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF1i3_CreateThrustAndTorque:Functions_BasicFunctions_InOutFunction_HiLo;
SF1i1_5_PerfectSelectorLOST:Functions_BasicOperators_PerfectConditionalSelectorLOST_HiLo;
Inj_Actuator:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF1i1_5_CreateMotionAndMeasure:Functions_BasicFunctions_InOutFunction_HiLo;
assert
icone = case {
(((SF1i1_5_CreateMotionAndMeasure.status = OK) and (SF1i3_CreateThrustAndTorque.status = OK)) and (SF1i6_DepowerMotor.status = OK)) : 1,
else 2
},
MotorRateMeasured = Inj_Actuator.output,
ThrustAndTorque = Inj_Propeller.output,
Inj_DroneDigitalNetworkPath.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath.input = MotorRate,
Inj_DroneMonitoringDigitalNetworkPath.alloc = Alloc_DroneMonitoringDigitalNetworkPath,
Inj_DroneMonitoringDigitalNetworkPath.input = MotorDisabled,
Inj_DroneMonitoringDigitalNetworkPath.isAlreadyErroneous = MotorDisabled_IsErroneous,
Inj_PowerDistribution.alloc = Alloc_PowerDistribution,
Inj_PowerDistribution.input = SF1i6_DepowerMotor.output,
Inj_PowerDistribution.isAlreadyErroneous = Inj_DroneMonitoringDigitalNetworkPath.isErroneous,
SF1i6_DepowerMotor.input = Inj_DroneMonitoringDigitalNetworkPath.output,
Inj_Propeller.alloc = Alloc_Propeller,
Inj_Propeller.input = SF1i3_CreateThrustAndTorque.output,
SF1i3_CreateThrustAndTorque.input = SF1i1_5_PerfectSelectorLOST.output,
SF1i1_5_PerfectSelectorLOST.input = Inj_Actuator.output,
SF1i1_5_PerfectSelectorLOST.condition = Inj_PowerDistribution.output,
Inj_Actuator.alloc = Alloc_MotorAndVariator,
Inj_Actuator.input = SF1i1_5_CreateMotionAndMeasure.output,
SF1i1_5_CreateMotionAndMeasure.input = Inj_DroneDigitalNetworkPath.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF24_ControlAltitude
flow
icone:[1,3]:private;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
AltitudeConsign:Physical_BasicPhysical_BasicPhysicalStatus:out;
VerticalSpeedConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
Thrust_AP:Physical_BasicPhysical_BasicPhysicalStatus:in;
APEngagement:Functions_BasicFunctions_ModeSelection:in;
Thrust:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_PilotDroneControlPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_PilotDroneControlPath:Functions_PhysicalOperators_PhysicalInjection_detection;
SF241_Detection:Functions_BasicOperators_detectionOfErroneous;
SF241_ComputeAltitudeConsign:Functions_BasicFunctions_InOutFunction;
Inj_Comp2:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF242_3_ComputeTotalThrust:Functions_BasicFunctions_InOutFunction_HiLoReverse;
SF242_3_SelectTotalThrustConsign:Functions_BasicOperators_ErrConditionalSelector_2_ComplexHiLo;
SF242_3_AND2:Functions_BasicOperators_AND_complexHiLo;
SF242_3_AND1:Functions_BasicOperators_AND_complexHiLo;
Inj_Emiss:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp1:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq:Functions_PhysicalOperators_PhysicalInjection;
assert
icone = case {
((SF241_ComputeAltitudeConsign.status = LOST) or (SF242_3_ComputeTotalThrust.status = LOST)) : 3,
((SF241_ComputeAltitudeConsign.status = ERRONEOUS) or (SF242_3_ComputeTotalThrust.status = ERRONEOUS)) : 2,
else 1
},
AltitudeConsign = Inj_Emiss.output,
Thrust = Inj_Comp2.output,
Inj_PilotDroneControlPath.alloc = Alloc_PilotDroneControlPath,
Inj_PilotDroneControlPath.input = VerticalSpeedConsign,
SF241_Detection.input = Inj_Acq.output,
SF241_ComputeAltitudeConsign.input = SF241_Detection.output,
Inj_Comp2.alloc = Alloc_MainProcComputation,
Inj_Comp2.input = SF242_3_ComputeTotalThrust.output,
SF242_3_ComputeTotalThrust.input = SF242_3_SelectTotalThrustConsign.output,
SF242_3_SelectTotalThrustConsign.inputAUTO = Thrust_AP,
SF242_3_SelectTotalThrustConsign.inputMANUAL = SF242_3_AND2.output,
SF242_3_SelectTotalThrustConsign.condition = APEngagement,
SF242_3_AND2.input_1 = Inj_Comp1.output,
SF242_3_AND2.input_2 = SF242_3_AND1.output,
SF242_3_AND1.input_1 = Attitude,
SF242_3_AND1.input_2 = Altitude,
Inj_Emiss.alloc = Alloc_MainProcEmission,
Inj_Emiss.input = Inj_Comp1.output,
Inj_Comp1.alloc = Alloc_MainProcComputation,
Inj_Comp1.input = SF241_ComputeAltitudeConsign.output,
Inj_Acq.alloc = Alloc_MainProcAcquisition,
Inj_Acq.input = Inj_PilotDroneControlPath.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF23_ControlAttitude
flow
icone:[1,3]:private;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
AttitudeAPConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
PitchRollConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
YawRateConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
APEngagement:Functions_BasicFunctions_ModeSelection:in;
YawConsign:Physical_BasicPhysical_BasicPhysicalStatus:out;
P:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_PilotDroneControlPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_PilotDroneControlPath1:Functions_PhysicalOperators_PhysicalInjection_detection;
Inj_PilotDroneControlPath2:Functions_PhysicalOperators_PhysicalInjection_detection;
SF232_5_Detection:Functions_BasicOperators_detectionOfErroneous;
SF231_Detection:Functions_BasicOperators_detectionOfErroneous;
Inj_Comp2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Emiss:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp1:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq:Functions_PhysicalOperators_PhysicalInjection;
SF231_ComputeYawConsign:Functions_BasicFunctions_InOutFunction;
SF232_5_AND3:Functions_BasicOperators_AND;
SF_232_5_ControlAttitudeAngle:Functions_BasicFunctions_InOutFunction;
SF232_5_SelectAttitudeConsign:Functions_BasicOperators_ErrConditionalSelector_2;
SF232_5_AND2:Functions_BasicOperators_AND;
SF232_5_AND1:Functions_BasicOperators_AND;
assert
icone = case {
((SF231_ComputeYawConsign.status = LOST) or (SF_232_5_ControlAttitudeAngle.status = LOST)) : 3,
((SF231_ComputeYawConsign.status = ERRONEOUS) or (SF_232_5_ControlAttitudeAngle.status = ERRONEOUS)) : 2,
else 1
},
YawConsign = Inj_Emiss.output,
P = Inj_Comp2.output,
Inj_PilotDroneControlPath1.alloc = Alloc_PilotDroneControlPath,
Inj_PilotDroneControlPath1.input = PitchRollConsign,
Inj_PilotDroneControlPath2.alloc = Alloc_PilotDroneControlPath,
Inj_PilotDroneControlPath2.input = YawRateConsign,
SF232_5_Detection.input = Inj_Acq2.output,
SF231_Detection.input = Inj_Acq.output,
Inj_Comp2.alloc = Alloc_MainProcComputation,
Inj_Comp2.input = SF_232_5_ControlAttitudeAngle.output,
Inj_Emiss.alloc = Alloc_MainProcEmission,
Inj_Emiss.input = Inj_Comp1.output,
Inj_Comp1.alloc = Alloc_MainProcComputation,
Inj_Comp1.input = SF231_ComputeYawConsign.output,
Inj_Acq2.alloc = Alloc_MainProcAcquisition,
Inj_Acq2.input = Inj_PilotDroneControlPath1.output,
Inj_Acq.alloc = Alloc_MainProcAcquisition,
Inj_Acq.input = Inj_PilotDroneControlPath2.output,
SF231_ComputeYawConsign.input = SF231_Detection.output,
SF232_5_AND3.input_1 = SF232_5_Detection.output,
SF232_5_AND3.input_2 = Inj_Comp1.output,
SF_232_5_ControlAttitudeAngle.input = SF232_5_SelectAttitudeConsign.output,
SF232_5_SelectAttitudeConsign.inputAUTO = SF232_5_AND2.output,
SF232_5_SelectAttitudeConsign.inputMANUAL = SF232_5_AND1.output,
SF232_5_SelectAttitudeConsign.condition = APEngagement,
SF232_5_AND2.input_1 = AttitudeAPConsign,
SF232_5_AND2.input_2 = Attitude,
SF232_5_AND1.input_1 = SF232_5_AND3.output,
SF232_5_AND1.input_2 = Attitude;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF22_AcquirePilotOrders
flow
icone:[1,3]:private;
ManualOverride:Physical_BasicPhysical_BasicPhysicalStatus:out;
Consigns:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_PushButton:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_LeftAndRightSideSticks:Physical_BasicPhysical_BasicPhysicalStatus:in;
PilotOrders:Functions_BasicFunctions_Presence:in;
sub
Inj_PushButton:Functions_PhysicalOperators_PhysicalInjection;
SF225_Dysfunctional:Functions_BasicFunctions_InOutPresentFunction;
SF221_4_Dysfunctional:Functions_BasicFunctions_InOutPresentFunction;
Inj_LeftAndRightSideSticks:Functions_PhysicalOperators_PhysicalInjection;
assert
icone = case {
((SF221_4_Dysfunctional.status = OK) and (SF225_Dysfunctional.status = OK)) : 1,
else 2
},
ManualOverride = Inj_PushButton.output,
Consigns = Inj_LeftAndRightSideSticks.output,
Inj_PushButton.alloc = Alloc_PushButton,
Inj_PushButton.input = SF225_Dysfunctional.output,
SF225_Dysfunctional.input = PilotOrders,
SF221_4_Dysfunctional.input = PilotOrders,
Inj_LeftAndRightSideSticks.alloc = Alloc_LeftAndRightSideSticks,
Inj_LeftAndRightSideSticks.input = SF221_4_Dysfunctional.output;
edon
node eq_AIDASystem_Functions_SF21_ControlPosition
flow
icone:[1,3]:private;
Position:Physical_BasicPhysical_BasicPhysicalStatus:in;
VerticalSpeed:Physical_BasicPhysical_BasicPhysicalStatus:in;
Speed:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
PositionConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
SpeedConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
Attitude_Thrust_APConsign_WSL:Physical_BasicPhysical_BasicPhysicalStatus:out;
Attitude_Thrust_APConsign:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneDigitalNetworkPath2:Functions_PhysicalOperators_PhysicalInjection;
Inj_DroneDigitalNetworkPath1:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF21_AND4:Functions_BasicOperators_AND_simpleHiLo;
Inj_Emiss:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection;
SF21_AND5:Functions_BasicOperators_AND;
SF21_Dysfunctional:Functions_BasicFunctions_InOutFunction;
SF21_AND2:Functions_BasicOperators_AND;
SF21_AND1:Functions_BasicOperators_AND;
SF21_AND3:Functions_BasicOperators_AND;
assert
icone = (if (SF21_Dysfunctional.status = OK) then 1 else (if (SF21_Dysfunctional.status = LOST) then 3 else 2)),
Attitude_Thrust_APConsign_WSL = Inj_Emiss.output,
Attitude_Thrust_APConsign = Inj_Comp.output,
Inj_DroneDigitalNetworkPath2.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath2.input = Position,
Inj_DroneDigitalNetworkPath1.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath1.input = Speed,
SF21_AND4.input_1 = VerticalSpeed,
SF21_AND4.input_2 = Inj_DroneDigitalNetworkPath1.output,
Inj_Emiss.alloc = Alloc_MainProcEmission,
Inj_Emiss.input = Inj_Comp.output,
Inj_Comp.alloc = Alloc_MainProcComputation,
Inj_Comp.input = SF21_Dysfunctional.output,
SF21_AND5.input_1 = Attitude,
SF21_AND5.input_2 = SF21_AND3.output,
SF21_Dysfunctional.input = SF21_AND5.output,
SF21_AND2.input_1 = SpeedConsign,
SF21_AND2.input_2 = SF21_AND1.output,
SF21_AND1.input_1 = PositionConsign,
SF21_AND1.input_2 = Inj_DroneDigitalNetworkPath2.output,
SF21_AND3.input_1 = SF21_AND4.output,
SF21_AND3.input_2 = SF21_AND2.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF25_ControlThrust
flow
icone:[1,3]:private;
P:Physical_BasicPhysical_BasicPhysicalStatus:in;
Thrust:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_MainProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
MotorRates:Physical_BasicPhysical_HiLoPhysicalStatus:out;
sub
Inj_Emiss:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
SF25_Dysfunctional:Functions_BasicFunctions_InOutFunction_HiLo;
SF25_AllNeeded:Functions_BasicOperators_AND_complexHiLo;
assert
icone = case {
(SF25_Dysfunctional.status = OK) : 1,
(SF25_Dysfunctional.status = LOST) : 2,
else 3
},
MotorRates = Inj_Emiss.output,
Inj_Emiss.alloc = Alloc_MainProcEmission,
Inj_Emiss.input = Inj_Comp.output,
Inj_Comp.alloc = Alloc_MainProcComputation,
Inj_Comp.input = SF25_Dysfunctional.output,
SF25_Dysfunctional.input = SF25_AllNeeded.output,
SF25_AllNeeded.input_1 = P,
SF25_AllNeeded.input_2 = Thrust;
edon
node eq_AIDASystem_FunctionsWithPhysical_Alloc_SF32_ComputeAltitude
flow
icone:[1,2]:private;
Alloc_MainProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_TelemetricSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_PressureSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Altitude_WSL:Physical_BasicPhysical_HiLoPhysicalStatus:out;
VerticalSpeed_WSL:Physical_BasicPhysical_BasicPhysicalStatus:out;
VerticalSpeed:Physical_BasicPhysical_BasicPhysicalStatus:out;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
GroundAltitude_WSL:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_MainProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
SF325_ComputeAltitudeAndVerticalSpeed:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF325_ComputeAltitudeAndVerticalSpeed;
SF324_ComputeGroundAltitude:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF324_ComputeGroundAltitude;
SF323_MeasureTelemetricSignal:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF323_MeasureTelemetricSignal;
SF321_MeasureAmbiantPressure:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF321_MeasureAmbiantPressure;
SF322_ComputeBarometricAltitude:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF322_ComputeBarometricAltitude;
assert
icone = case {
(((((SF321_MeasureAmbiantPressure.SF321_Dysfunctional.status = OK) and (SF322_ComputeBarometricAltitude.SF322_Dysfunctional.status = OK)) and (SF323_MeasureTelemetricSignal.SF323_Dysfunctional.status = OK)) and (SF324_ComputeGroundAltitude.SF324_Dysfunctional.status = OK)) and (SF325_ComputeAltitudeAndVerticalSpeed.SF325_Dysfunctional.status = OK)) : 1,
else 2
},
Altitude_WSL = SF325_ComputeAltitudeAndVerticalSpeed.Altitude_WSL,
VerticalSpeed_WSL = SF325_ComputeAltitudeAndVerticalSpeed.VerticalSpeed_WSL,
VerticalSpeed = SF325_ComputeAltitudeAndVerticalSpeed.VerticalSpeed,
Altitude = SF325_ComputeAltitudeAndVerticalSpeed.Altitude,
GroundAltitude_WSL = SF324_ComputeGroundAltitude.GroundAltitude_WSL,
SF325_ComputeAltitudeAndVerticalSpeed.Alloc_MainProcComputation = Alloc_MainProcComputation,
SF325_ComputeAltitudeAndVerticalSpeed.Alloc_MainProcEmission = Alloc_MainProcEmission,
SF325_ComputeAltitudeAndVerticalSpeed.GroundAltitude = SF324_ComputeGroundAltitude.GroundAltitude,
SF325_ComputeAltitudeAndVerticalSpeed.BarometricAltitude = SF322_ComputeBarometricAltitude.BarometricAltitude,
SF324_ComputeGroundAltitude.Alloc_MainProcComputation = Alloc_MainProcComputation,
SF324_ComputeGroundAltitude.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF324_ComputeGroundAltitude.Alloc_MainProcEmission = Alloc_MainProcEmission,
SF324_ComputeGroundAltitude.Alloc_MainProcAcquisition = Alloc_MainProcAcquisition,
SF324_ComputeGroundAltitude.Attitude = Attitude,
SF324_ComputeGroundAltitude.MeasuredGroundDistance = SF323_MeasureTelemetricSignal.GroundDistance,
SF323_MeasureTelemetricSignal.Alloc_TelemetricSensor = Alloc_TelemetricSensor,
SF321_MeasureAmbiantPressure.Alloc_PressureSensor = Alloc_PressureSensor,
SF322_ComputeBarometricAltitude.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF322_ComputeBarometricAltitude.Alloc_MainProcComputation = Alloc_MainProcComputation,
SF322_ComputeBarometricAltitude.Alloc_MainProcAcquisition = Alloc_MainProcAcquisition,
SF322_ComputeBarometricAltitude.MeasuredPressure = SF321_MeasureAmbiantPressure.Pressure;
edon
node eq_AIDASystem_Functions_SF33_ComputeDroneSpeed
flow
icone:[1,2]:private;
GroundAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Speed_WSL:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_LateralSpeedCamera:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
SF331_FilmGround:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF331_FilmGround;
SF332_ComputeGroundSpeed:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF332_ComputeGroundSpeed;
assert
icone = case {
((SF331_FilmGround.SF331_Dysfunctional.status = OK) and (SF332_ComputeGroundSpeed.SF332_Dysfunctional.status = OK)) : 1,
else 2
},
Speed_WSL = SF332_ComputeGroundSpeed.GroundSpeed,
SF331_FilmGround.Alloc_LateralSpeedCamera = Alloc_LateralSpeedCamera,
SF332_ComputeGroundSpeed.GroundAltitude = GroundAltitude,
SF332_ComputeGroundSpeed.VideoFlux = SF331_FilmGround.VideoFlux,
SF332_ComputeGroundSpeed.Alloc_VideoProcAcquisition = Alloc_VideoProcAcquisition,
SF332_ComputeGroundSpeed.Alloc_VideoProcComputation = Alloc_VideoProcComputation,
SF332_ComputeGroundSpeed.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF332_ComputeGroundSpeed.Alloc_VideoProcEmission = Alloc_VideoProcEmission;
edon
node eq_AIDASystem_FunctionsWithPhysical_Alloc_SF31_ComputeAttitude
flow
icone:[1,2]:private;
Alloc_MainProcEmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcAcquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcComputation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_IRS:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_Magnetometer:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Attitude_WSL:Physical_BasicPhysical_BasicPhysicalStatus:out;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
SF314_6_AllNeeded:Functions_BasicOperators_AND;
Inj_Acq2:Functions_PhysicalOperators_PhysicalInjection;
Inj_DroneDigitalNetworkPath2:Functions_PhysicalOperators_PhysicalInjection;
Inj_Magnetometer:Functions_PhysicalOperators_PhysicalInjection;
SF313_Dysfunctional:Functions_BasicFunctions_SourceFunction;
SF314_6_Dysfunctional:Functions_BasicFunctions_InOutFunction;
Inj_Emiss:Functions_PhysicalOperators_PhysicalInjection;
Inj_Acq1:Functions_PhysicalOperators_PhysicalInjection;
Inj_DroneDigitalNetworkPath1:Functions_PhysicalOperators_PhysicalInjection;
Inj_IRS:Functions_PhysicalOperators_PhysicalInjection;
Inj_Comp:Functions_PhysicalOperators_PhysicalInjection;
SF311_2_Dysfunctional:Functions_BasicFunctions_SourceFunction;
assert
icone = case {
(((SF311_2_Dysfunctional.status = OK) and (SF313_Dysfunctional.status = OK)) and (SF314_6_Dysfunctional.status = OK)) : 1,
else 2
},
Attitude_WSL = Inj_Emiss.output,
Attitude = Inj_Comp.output,
SF314_6_AllNeeded.input_1 = Inj_Acq1.output,
SF314_6_AllNeeded.input_2 = Inj_Acq2.output,
Inj_Acq2.alloc = Alloc_MainProcAcquisition,
Inj_Acq2.input = Inj_DroneDigitalNetworkPath2.output,
Inj_DroneDigitalNetworkPath2.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath2.input = Inj_Magnetometer.output,
Inj_Magnetometer.alloc = Alloc_Magnetometer,
Inj_Magnetometer.input = SF313_Dysfunctional.output,
SF314_6_Dysfunctional.input = SF314_6_AllNeeded.output,
Inj_Emiss.alloc = Alloc_MainProcEmission,
Inj_Emiss.input = Inj_Comp.output,
Inj_Acq1.alloc = Alloc_MainProcAcquisition,
Inj_Acq1.input = Inj_DroneDigitalNetworkPath1.output,
Inj_DroneDigitalNetworkPath1.alloc = Alloc_DroneDigitalNetworkPath,
Inj_DroneDigitalNetworkPath1.input = Inj_IRS.output,
Inj_IRS.alloc = Alloc_IRS,
Inj_IRS.input = SF311_2_Dysfunctional.output,
Inj_Comp.alloc = Alloc_MainProcComputation,
Inj_Comp.input = SF314_6_Dysfunctional.output;
edon
node eq_AIDASystem_FunctionsWithPhysical_Alloc_SF34_ComputePositionAndTime
flow
icone:[1,2]:private;
Alloc_PositionSensor:Physical_BasicPhysical_BasicPhysicalStatus:in;
PositionAndTime:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
Inj_PositionSensor:Functions_PhysicalOperators_PhysicalInjection;
SF34_Dysfunctional:Functions_BasicFunctions_SourceFunction;
assert
icone = case {
(SF34_Dysfunctional.status = OK) : 1,
else 2
},
PositionAndTime = Inj_PositionSensor.output,
Inj_PositionSensor.alloc = Alloc_PositionSensor,
Inj_PositionSensor.input = SF34_Dysfunctional.output;
edon
node eq_AIDASystem_Physical_PowerDistribution
flow
PowerInput:Physical_BasicPhysical_HiLoPhysicalStatus:in;
oDistribToIRS:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToMagnetometer:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToPressureSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToTelemetricSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToLateralSpeedCamera:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToPositionSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToVideoProcessor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToMainProcessor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToActuator1:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToActuator2:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToActuator3:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToActuator4:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToCameraSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToCameraRotarySupport:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToWifiController:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToRadioController:Physical_BasicPhysical_HiLoPhysicalStatus:out;
sub
DistribToCameraSensor:Components_Links_EPL;
DistribToCameraRotarySupport:Components_Links_EPL;
DistribToWifiController:Components_Links_EPL;
DistribToRadioController:Components_Links_EPL;
DistribToIRS:Components_Links_EPL;
DistribToVideoProcessor:Components_Links_EPL;
Bar:Components_PowerSupply_PowerDistribution;
DistribToActuator1:Components_Links_EPL;
DistribToActuator2:Components_Links_EPL;
DistribToActuator3:Components_Links_EPL;
DistribToActuator4:Components_Links_EPL;
DistribToMainProcessor:Components_Links_EPL;
DistribToMagnetometer:Components_Links_EPL;
DistribToPressureSensor:Components_Links_EPL;
DistribToTelemetricSensor:Components_Links_EPL;
DistribToLateralSpeedCamera:Components_Links_EPL;
DistribToPositionSensor:Components_Links_EPL;
assert
oDistribToIRS = DistribToIRS.output,
oDistribToMagnetometer = DistribToMagnetometer.output,
oDistribToPressureSensor = DistribToPressureSensor.output,
oDistribToTelemetricSensor = DistribToTelemetricSensor.output,
oDistribToLateralSpeedCamera = DistribToLateralSpeedCamera.output,
oDistribToPositionSensor = DistribToPositionSensor.output,
oDistribToVideoProcessor = DistribToVideoProcessor.output,
oDistribToMainProcessor = DistribToMainProcessor.output,
oDistribToActuator1 = DistribToActuator1.output,
oDistribToActuator2 = DistribToActuator2.output,
oDistribToActuator3 = DistribToActuator3.output,
oDistribToActuator4 = DistribToActuator4.output,
oDistribToCameraSensor = DistribToCameraSensor.output,
oDistribToCameraRotarySupport = DistribToCameraRotarySupport.output,
oDistribToWifiController = DistribToWifiController.output,
oDistribToRadioController = DistribToRadioController.output,
DistribToCameraSensor.input = Bar.output,
DistribToCameraRotarySupport.input = Bar.output,
DistribToWifiController.input = Bar.output,
DistribToRadioController.input = Bar.output,
DistribToIRS.input = Bar.output,
DistribToVideoProcessor.input = Bar.output,
Bar.input = PowerInput,
DistribToActuator1.input = Bar.output,
DistribToActuator2.input = Bar.output,
DistribToActuator3.input = Bar.output,
DistribToActuator4.input = Bar.output,
DistribToMainProcessor.input = Bar.output,
DistribToMagnetometer.input = Bar.output,
DistribToPressureSensor.input = Bar.output,
DistribToTelemetricSensor.input = Bar.output,
DistribToLateralSpeedCamera.input = Bar.output,
DistribToPositionSensor.input = Bar.output;
edon
node eq_AIDASystem_Physical_PowerDistribution_MON
flow
PowerInput_MON:Physical_BasicPhysical_HiLoPhysicalStatus:in;
oDistribToIRS_MON:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToMagnetometer_MON:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToPressureSensor_MON:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToTelemetricSensor_MON:Physical_BasicPhysical_HiLoPhysicalStatus:out;
oDistribToMonitoringProcessor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
sub
DistribToMonitoringProcessor:Components_Links_EPL;
DistribToTelemetricSensor_MON:Components_Links_EPL;
DistribToPressureSensor_MON:Components_Links_EPL;
DistribToMagnetometer_MON:Components_Links_EPL;
DistribToIRS_MON:Components_Links_EPL;
Bar_MON:Components_PowerSupply_PowerDistribution;
assert
oDistribToIRS_MON = DistribToIRS_MON.output,
oDistribToMagnetometer_MON = DistribToMagnetometer_MON.output,
oDistribToPressureSensor_MON = DistribToPressureSensor_MON.output,
oDistribToTelemetricSensor_MON = DistribToTelemetricSensor_MON.output,
oDistribToMonitoringProcessor = DistribToMonitoringProcessor.output,
DistribToMonitoringProcessor.input = Bar_MON.output,
DistribToTelemetricSensor_MON.input = Bar_MON.output,
DistribToPressureSensor_MON.input = Bar_MON.output,
DistribToMagnetometer_MON.input = Bar_MON.output,
DistribToIRS_MON.input = Bar_MON.output,
Bar_MON.input = PowerInput_MON;
edon
node eq_AIDASystem_Physical_Payload
flow
Alloc_CameraSensor:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power_CameraSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_CameraRotarySupport:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power_CameraRotarySupport:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
CameraSensor:Components_Payload_CameraSensor;
CameraRotarySupport:Components_Payload_CameraRotarySupport;
assert
Alloc_CameraSensor = CameraSensor.output,
Alloc_CameraRotarySupport = CameraRotarySupport.output,
CameraSensor.Power = Power_CameraSensor,
CameraRotarySupport.Power = Power_CameraRotarySupport;
edon
node eq_AIDASystem_Physical_Paths
flow
Alloc_DroneMonitoringDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_DroneMissionDataPath_Drone2ControlDesk:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_DronePhotosAndVideosPath:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_DroneMissionDataPath_ControlDesk2Drone:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_PilotPayloadControlPath:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:out;
WifiController_transmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
WifiController_reception:Physical_BasicPhysical_BasicPhysicalStatus:in;
RadioController:Physical_BasicPhysical_BasicPhysicalStatus:in;
RemoteCommunication:Physical_BasicPhysical_BasicPhysicalStatus:in;
MonitoringDigitalNetwork:Physical_BasicPhysical_BasicPhysicalStatus:in;
MainDigitalNetwork:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_PilotDroneControlPath:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
Path_PilotPayloadControl:eq_AIDASystem_Physical_Path_PilotPayloadControl;
DroneMonitoringDigitalNetworkPath:Functions_PhysicalOperators_AND_Physical_unaire;
DroneDigitalNetworkPath:Functions_PhysicalOperators_AND_Physical_unaire;
Path_DronePhotosAndVideos:eq_AIDASystem_Physical_Path_DronePhotosAndVideos;
Path_DroneMissionData:eq_AIDASystem_Physical_Path_DroneMissionData;
Path_PilotDroneControl_PilotConsigns:eq_AIDASystem_Physical_Path_PilotDroneControl;
assert
Alloc_DroneMonitoringDigitalNetworkPath = DroneMonitoringDigitalNetworkPath.output,
Alloc_DroneMissionDataPath_Drone2ControlDesk = Path_DroneMissionData.DroneMissionDataPath_Drone2ControlDesk,
Alloc_DronePhotosAndVideosPath = Path_DronePhotosAndVideos.Alloc_DronePhotosAndVideosPath,
Alloc_DroneMissionDataPath_ControlDesk2Drone = Path_DroneMissionData.DroneMissionDataPath_ControlDesk2Drone,
Alloc_PilotPayloadControlPath = Path_PilotPayloadControl.Alloc_PilotPayloadControlPath,
Alloc_DroneDigitalNetworkPath = DroneDigitalNetworkPath.output,
Alloc_PilotDroneControlPath = Path_PilotDroneControl_PilotConsigns.Alloc_PilotDroneControlPath,
Path_PilotPayloadControl.RemoteCommunication = RemoteCommunication,
Path_PilotPayloadControl.RadioController = RadioController,
Path_PilotPayloadControl.MainDigitalNetwork = MainDigitalNetwork,
DroneMonitoringDigitalNetworkPath.input = MonitoringDigitalNetwork,
DroneDigitalNetworkPath.input = MainDigitalNetwork,
Path_DronePhotosAndVideos.WifiController = WifiController_transmission,
Path_DronePhotosAndVideos.MainDigitalNetwork = MainDigitalNetwork,
Path_DroneMissionData.MainDigitalNetwork = MainDigitalNetwork,
Path_DroneMissionData.WifiController_transmission = WifiController_transmission,
Path_DroneMissionData.WifiController_reception = WifiController_reception,
Path_PilotDroneControl_PilotConsigns.RemoteCommunication = RemoteCommunication,
Path_PilotDroneControl_PilotConsigns.RadioController = RadioController,
Path_PilotDroneControl_PilotConsigns.MainDigitalNetwork = MainDigitalNetwork;
edon
node eq_AIDASystem_Physical_CommunicationDevices
flow
oWifiController_transmission:Physical_BasicPhysical_BasicPhysicalStatus:out;
oWifiController_reception:Physical_BasicPhysical_BasicPhysicalStatus:out;
oRadioController:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power_WifiController:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power_RadioController:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
RadioController:Components_CommunicationDevices_CommunicationDevice;
WifiController_reception:Components_CommunicationDevices_CommunicationDevice;
WifiController_transmission:Components_CommunicationDevices_CommunicationDevice;
assert
oWifiController_transmission = WifiController_transmission.output,
oWifiController_reception = WifiController_reception.output,
oRadioController = RadioController.output,
RadioController.Power = Power_RadioController,
WifiController_reception.Power = Power_WifiController,
WifiController_transmission.Power = Power_WifiController;
edon
node eq_AIDASystem_Physical_Remotecontrol
flow
Alloc_PushButton:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_CameraControlDevice:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_LeftAndRightSideSticks:Physical_BasicPhysical_BasicPhysicalStatus:out;
oRemoteCommunication:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
RemoteCommunication:Components_RemoteControl_RemoteCommunication;
RemoteBattery:Components_PowerSupply_PowerGeneration;
RemoteSwitch:Components_RemoteControl_RemoteSwitch;
DistribToRemoteSwitch:Components_Links_EPL;
DistribToRemoteCommunication:Components_Links_EPL;
RemoteControlInterface:eq_AIDASystem_Physical_RemoteControlInterface;
assert
Alloc_PushButton = RemoteControlInterface.Alloc_PushButton,
Alloc_CameraControlDevice = RemoteControlInterface.Alloc_CameraControlDevice,
Alloc_LeftAndRightSideSticks = RemoteControlInterface.Alloc_LeftAndRightSideSticks,
oRemoteCommunication = RemoteCommunication.output,
RemoteCommunication.Power = DistribToRemoteCommunication.output,
RemoteSwitch.Power = DistribToRemoteSwitch.output,
DistribToRemoteSwitch.input = RemoteBattery.output,
DistribToRemoteCommunication.input = RemoteSwitch.output;
edon
node eq_AIDASystem_Physical_Networks
flow
Alloc_MonitoringDN:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_MainDN:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
MonitoringDigitalNetwork:Components_Networks_DigitalNetwork;
MainDigitalNetwork:Components_Networks_DigitalNetwork;
assert
Alloc_MonitoringDN = MonitoringDigitalNetwork.output,
Alloc_MainDN = MainDigitalNetwork.output;
edon
node eq_AIDASystem_Physical_Sensors
flow
Alloc_Sensors_MON^IRS:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_Sensors_MON^Magnetometer:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_Sensors_MON^PressureSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_Sensors_MON^TelemetricSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_Sensors_Main^IRS:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_Sensors_Main^Magnetometer:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_Sensors_Main^PressureSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_Sensors_Main^TelemetricSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_Sensors_Main^LateralSpeedCamera:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_Sensors_Main^PositionSensor:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power_MON^IRS:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power_MON^Magnetometer:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power_MON^PressureSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power_MON^TelemetricSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power^IRS:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power^Magnetometer:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power^PressureSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power^TelemetricSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power^PositionSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power^LateralSpeedCamera:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
TelemetricSensor_MON:Components_Sensors_SimpleSensor;
PressureSensor_MON:Components_Sensors_SimpleSensor;
Magnetometer_MON:Components_Sensors_ComplexSensor;
InertialReferenceSensors_MON:Components_Sensors_ComplexSensor;
PositionSensor:Components_Sensors_ComplexSensor;
LateralSpeedCamera:Components_Sensors_ComplexSensor;
TelemetricSensor:Components_Sensors_SimpleSensor;
PressureSensor:Components_Sensors_SimpleSensor;
Magnetometer:Components_Sensors_ComplexSensor;
InertialReferenceSensors:Components_Sensors_ComplexSensor;
assert
Alloc_Sensors_MON^IRS = InertialReferenceSensors_MON.output,
Alloc_Sensors_MON^Magnetometer = Magnetometer_MON.output,
Alloc_Sensors_MON^PressureSensor = PressureSensor_MON.output,
Alloc_Sensors_MON^TelemetricSensor = TelemetricSensor_MON.output,
Alloc_Sensors_Main^IRS = InertialReferenceSensors.output,
Alloc_Sensors_Main^Magnetometer = Magnetometer.output,
Alloc_Sensors_Main^PressureSensor = PressureSensor.output,
Alloc_Sensors_Main^TelemetricSensor = TelemetricSensor.output,
Alloc_Sensors_Main^LateralSpeedCamera = LateralSpeedCamera.output,
Alloc_Sensors_Main^PositionSensor = PositionSensor.output,
TelemetricSensor_MON.Power = Power_MON^TelemetricSensor,
PressureSensor_MON.Power = Power_MON^PressureSensor,
Magnetometer_MON.Power = Power_MON^Magnetometer,
InertialReferenceSensors_MON.Power = Power_MON^IRS,
PositionSensor.Power = Power^PositionSensor,
LateralSpeedCamera.Power = Power^LateralSpeedCamera,
TelemetricSensor.Power = Power^TelemetricSensor,
PressureSensor.Power = Power^PressureSensor,
Magnetometer.Power = Power^Magnetometer,
InertialReferenceSensors.Power = Power^IRS;
edon
node eq_AIDASystem_Physical_Computers
flow
Alloc_MonitoringProcessor^Acquisition:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_MonitoringProcessor^Emission:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_MonitoringProcessor^Computation:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_MainProcessor^Acquisition:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_MainProcessor^Emission:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_MainProcessor^Computation:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power_MonitoringProcessor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power_MainProcessor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_VideoProcessor^Acquisition:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_VideoProcessor^Emission:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_VideoProcessor^Computation:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power_VideoProcessor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
MonitoringProcessor:eq_AIDASystem_Physical_MainProcessor;
VideoProcessor:eq_AIDASystem_Physical_MainProcessor;
MainProcessor:eq_AIDASystem_Physical_MainProcessor;
assert
Alloc_MonitoringProcessor^Acquisition = MonitoringProcessor.oProcessor^Acquisition,
Alloc_MonitoringProcessor^Emission = MonitoringProcessor.oProcessor^Emission,
Alloc_MonitoringProcessor^Computation = MonitoringProcessor.oProcessor^Computation,
Alloc_MainProcessor^Acquisition = MainProcessor.oProcessor^Acquisition,
Alloc_MainProcessor^Emission = MainProcessor.oProcessor^Emission,
Alloc_MainProcessor^Computation = MainProcessor.oProcessor^Computation,
Alloc_VideoProcessor^Acquisition = VideoProcessor.oProcessor^Acquisition,
Alloc_VideoProcessor^Emission = VideoProcessor.oProcessor^Emission,
Alloc_VideoProcessor^Computation = VideoProcessor.oProcessor^Computation,
MonitoringProcessor.Power = Power_MonitoringProcessor,
VideoProcessor.Power = Power_VideoProcessor,
MainProcessor.Power = Power_MainProcessor;
edon
node eq_AIDASystem_Functions_SF6_ManageMission
flow
icone:[1,2]:private;
oFlightPlanProgress:Physical_BasicPhysical_BasicPhysicalStatus:out;
iFlightPlanProgress:Physical_BasicPhysical_BasicPhysicalStatus:in;
iFlightPlan:Physical_BasicPhysical_BasicPhysicalStatus:in;
oFlightPlan:Physical_BasicPhysical_BasicPhysicalStatus:out;
iDroneControlMode^Mode:Functions_BasicFunctions_ModeSelection:in;
iDroneControlMode^IsErroneous:bool:in;
oDroneControlMode:Functions_BasicFunctions_ModeSelection:out;
Alloc_DroneMissionDataPath_Drone2ControlDesk:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneControlDesk_transmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneControlDesk_reception:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneControlDesk_transmission:Functions_PhysicalOperators_PhysicalInjection;
SF61_ComputeFlightPlanAndZone:Functions_BasicFunctions_InOutFunction;
SF64_DisplayDroneFollowUpData:eq_AIDASystem_Functions_SF64_DisplayDroneFollowUpData;
assert
icone = case {
(((SF61_ComputeFlightPlanAndZone.status = OK) and (SF64_DisplayDroneFollowUpData.SF64_ControlMode.status = OK)) and (SF64_DisplayDroneFollowUpData.SF64_FlightPlanProgress.status = OK)) : 1,
else 2
},
oFlightPlanProgress = SF64_DisplayDroneFollowUpData.oFlightPlanProgress,
oFlightPlan = Inj_DroneControlDesk_transmission.output,
oDroneControlMode = SF64_DisplayDroneFollowUpData.oControlMode,
Inj_DroneControlDesk_transmission.alloc = Alloc_DroneControlDesk_transmission,
Inj_DroneControlDesk_transmission.input = SF61_ComputeFlightPlanAndZone.output,
SF61_ComputeFlightPlanAndZone.input = iFlightPlan,
SF64_DisplayDroneFollowUpData.iControlMode^Mode = iDroneControlMode^Mode,
SF64_DisplayDroneFollowUpData.iControlMode^IsErroneous = iDroneControlMode^IsErroneous,
SF64_DisplayDroneFollowUpData.iFlightPlanProgress = iFlightPlanProgress,
SF64_DisplayDroneFollowUpData.Alloc_DroneMissionDataPath_Drone2ControlDesk2 = Alloc_DroneMissionDataPath_Drone2ControlDesk,
SF64_DisplayDroneFollowUpData.Alloc_DroneControlDesk_reception = Alloc_DroneControlDesk_reception;
edon
node eq_AIDASystem_Functions_SF7_MonitorDroneControl_v042
flow
icone:[1,2]:private;
APEngagement^Mode:Functions_BasicFunctions_ModeSelection:in;
APEngagement^IsErroneous:bool:in;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
GroundAltitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
VerticalSpeed:Physical_BasicPhysical_BasicPhysicalStatus:in;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRate:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRatesMeasured^MotorRate1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRatesMeasured^MotorRate2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRatesMeasured^MotorRate3:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRatesMeasured^MotorRate4:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorDisabled^Motor1:bool:out;
MotorDisabled^IsErroneous1:bool:out;
MotorDisabled^Motor2:bool:out;
MotorDisabled^IsErroneous2:bool:out;
MotorDisabled^Motor3:bool:out;
MotorDisabled^IsErroneous3:bool:out;
MotorDisabled^Motor4:bool:out;
MotorDisabled^IsErroneous4:bool:out;
Consigns^AltitudeManualConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
Consigns^YawManualConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
Consigns^PitchRollManualConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
Consigns^AltitudeAndAttitudeAPConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_PilotDroneControlPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_SensorsMON^IRS:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_SensorsMON^Magnetometer:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_SensorsMON^PressureSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_SensorsMON^TelemetricSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_MonitoringProcessor^Acquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonitoringProcessor^Emission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MonitoringProcessor^Computation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMonitoringDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
SF72_ComputeDroneAltitudeMON:eq_AIDASystem_FunctionsWithPhysical_forInj_SF72_ComputeAltitudeMON;
SF71_ComputeAttitudeMON:eq_AIDASystem_FunctionsWithPhysical_forInj_SF71_ComputeAttitudeMON;
SF73_ControlAttitudeAndAltitudeMON:eq_AIDASystem_Functions_SF73_ControlAttitudeAndAltitudeMON;
SF74_MonitorParameters:eq_AIDASystem_Functions_SF74_MonitorParameters;
assert
icone = case {
((((((((((SF74_MonitorParameters.SF745_DisableDroneMotor.FailureModesOfSF74.status = OK) and (SF71_ComputeAttitudeMON.SF71_Dysfunctional.status = OK)) and (SF72_ComputeDroneAltitudeMON.SF721_MeasureAmbiantPressureMON.SF721_Dysfunctional.status = OK)) and (SF72_ComputeDroneAltitudeMON.SF722_ComputeBarometricAltitudeMON.SF722_Dysfunctional.status = OK)) and (SF72_ComputeDroneAltitudeMON.SF723_MeasureTelemetricSignalMON.SF723_Dysfunctional.status = OK)) and (SF72_ComputeDroneAltitudeMON.SF724_ComputeGroundAltitudeMON.SF724_Dysfunctional.status = OK)) and (SF72_ComputeDroneAltitudeMON.SF725_ComputeAltitudeAndVerticalSpeedMON.SF725_Dysfunctional.status = OK)) and (SF73_ControlAttitudeAndAltitudeMON.SF731_2_ControlAltitudeMON.SF731_ComputeThrustMON.status = OK)) and (SF73_ControlAttitudeAndAltitudeMON.SF733_6_ControlAttitudeMON.SF734_6_ControlAttitudeMON.status = OK)) and (SF73_ControlAttitudeAndAltitudeMON.SF737_8_ComputeMotorRate.SF737_8_ControlThrust.status = OK)) : 1,
else 2
},
MotorDisabled^Motor1 = SF74_MonitorParameters.MotorsDisabled^Motor1,
MotorDisabled^IsErroneous1 = SF74_MonitorParameters.MotorsDisabled^IsErroneous1,
MotorDisabled^Motor2 = SF74_MonitorParameters.MotorsDisabled^Motor2,
MotorDisabled^IsErroneous2 = SF74_MonitorParameters.MotorsDisabled^IsErroneous2,
MotorDisabled^Motor3 = SF74_MonitorParameters.MotorsDisabled^Motor3,
MotorDisabled^IsErroneous3 = SF74_MonitorParameters.MotorsDisabled^IsErroneous3,
MotorDisabled^Motor4 = SF74_MonitorParameters.MotorsDisabled^Motor4,
MotorDisabled^IsErroneous4 = SF74_MonitorParameters.MotorsDisabled^IsErroneous4,
SF72_ComputeDroneAltitudeMON.Alloc_MonProcAcquisition = Alloc_MonitoringProcessor^Acquisition,
SF72_ComputeDroneAltitudeMON.Alloc_MonProcComputation = Alloc_MonitoringProcessor^Computation,
SF72_ComputeDroneAltitudeMON.Alloc_TelemetricSensorMON = Alloc_SensorsMON^TelemetricSensor,
SF72_ComputeDroneAltitudeMON.Alloc_PressureSensorMON = Alloc_SensorsMON^PressureSensor,
SF72_ComputeDroneAltitudeMON.Alloc_DroneMonitoringDigitalNetworkPath = Alloc_DroneMonitoringDigitalNetworkPath,
SF72_ComputeDroneAltitudeMON.Attitude = SF71_ComputeAttitudeMON.Attitude,
SF71_ComputeAttitudeMON.Alloc_MonProcAcquisition = Alloc_MonitoringProcessor^Acquisition,
SF71_ComputeAttitudeMON.Alloc_MonProcComputation = Alloc_MonitoringProcessor^Computation,
SF71_ComputeAttitudeMON.Alloc_IRSMON = Alloc_SensorsMON^IRS,
SF71_ComputeAttitudeMON.Alloc_MagnetometerMON = Alloc_SensorsMON^Magnetometer,
SF71_ComputeAttitudeMON.Alloc_DroneMonitoringDigitalNetworkPath = Alloc_DroneMonitoringDigitalNetworkPath,
SF73_ControlAttitudeAndAltitudeMON.Altitude = Altitude,
SF73_ControlAttitudeAndAltitudeMON.Attitude = Attitude,
SF73_ControlAttitudeAndAltitudeMON.YawConsign = Consigns^YawManualConsign,
SF73_ControlAttitudeAndAltitudeMON.PitchRollConsign = Consigns^PitchRollManualConsign,
SF73_ControlAttitudeAndAltitudeMON.AltitudeConsign = Consigns^AltitudeManualConsign,
SF73_ControlAttitudeAndAltitudeMON.AttitudeAPConsign = Consigns^AltitudeAndAttitudeAPConsign,
SF73_ControlAttitudeAndAltitudeMON.AltitudeAPConsign = Consigns^AltitudeAndAttitudeAPConsign,
SF73_ControlAttitudeAndAltitudeMON.APEngagement^Mode = APEngagement^Mode,
SF73_ControlAttitudeAndAltitudeMON.APEngagement^IsErroneous = APEngagement^IsErroneous,
SF73_ControlAttitudeAndAltitudeMON.Alloc_PilotDroneControlPath = Alloc_PilotDroneControlPath,
SF73_ControlAttitudeAndAltitudeMON.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF73_ControlAttitudeAndAltitudeMON.Alloc_MonProcAcquisition = Alloc_MonitoringProcessor^Acquisition,
SF73_ControlAttitudeAndAltitudeMON.Alloc_MonProcComputation = Alloc_MonitoringProcessor^Computation,
SF74_MonitorParameters.Alloc_MonProcAcquisition = Alloc_MonitoringProcessor^Acquisition,
SF74_MonitorParameters.Alloc_MonProcComputation = Alloc_MonitoringProcessor^Computation,
SF74_MonitorParameters.MotorRateMON = SF73_ControlAttitudeAndAltitudeMON.MotorRate,
SF74_MonitorParameters.MotorRate = MotorRate,
SF74_MonitorParameters.GroundAltitudeMON = SF72_ComputeDroneAltitudeMON.GroundAltitude,
SF74_MonitorParameters.GroundAltitude = GroundAltitude,
SF74_MonitorParameters.Altitude = Altitude,
SF74_MonitorParameters.AltitudeMON = SF72_ComputeDroneAltitudeMON.Altitude,
SF74_MonitorParameters.VerticalSpeedMON = SF72_ComputeDroneAltitudeMON.VerticalSpeed,
SF74_MonitorParameters.VerticalSpeed = VerticalSpeed,
SF74_MonitorParameters.Attitude = Attitude,
SF74_MonitorParameters.AttitudeMON = SF71_ComputeAttitudeMON.Attitude,
SF74_MonitorParameters.MotorRateMeasured^MotorRate1 = MotorRatesMeasured^MotorRate1,
SF74_MonitorParameters.MotorRateMeasured^MotorRate2 = MotorRatesMeasured^MotorRate2,
SF74_MonitorParameters.MotorRateMeasured^MotorRate3 = MotorRatesMeasured^MotorRate3,
SF74_MonitorParameters.MotorRateMeasured^MotorRate4 = MotorRatesMeasured^MotorRate4,
SF74_MonitorParameters.Alloc_MonProcEmission = Alloc_MonitoringProcessor^Emission,
SF74_MonitorParameters.Alloc_DroneMonitoringDigitalNetworkPath = Alloc_DroneMonitoringDigitalNetworkPath,
SF74_MonitorParameters.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath;
edon
node eq_AIDASystem_Observers_Observer_v44
flow
Thrust1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Thrust2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Thrust3:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Thrust4:Physical_BasicPhysical_HiLoPhysicalStatus:in;
APEngagement:Functions_BasicFunctions_ModeSelection:in;
PilotInconsistentControl:bool:in;
PilotManualControl:Functions_BasicFunctions_ModeSelection:in;
LostHelixesControl:bool:out;
sub
PilotRequiresManualMode:Quadcopter_Observers_PilotRequiresManualMode;
LossOfSelectedManualModeFiltered:Boolean_Boolean_filter;
filter4:Boolean_Boolean_filter;
filter3:Boolean_Boolean_filter;
filter2:Boolean_Boolean_filter;
StuckModeManual:Quadcopter_Observers_StuckModeMAN_v03;
ControlledCrash:Boolean_Boolean_or2;
StuckModeAutoOrErr:Quadcopter_Observers_StuckMode_v03;
FC03_MAJ:Boolean_Boolean_intermediate;
TotalLossOfControl:Boolean_Boolean_and2;
UncontrolledCrashInAuthorizedArea:Boolean_Boolean_or2;
LossOfSelectedManualMode:Boolean_Boolean_and2;
UncontrolledCrashInNonAuthorizedArea:Boolean_Boolean_or2;
FC02_HAZ:Boolean_Boolean_intermediate;
FC01_CAT:Boolean_Boolean_intermediate;
ErroneousControlOfOneHelix:Quadcopter_Observers_ErroneousControlOfOneHelix;
TotalLossOfHelixesControl:Quadcopter_Observers_TotalLossOfHelixesControl;
LossOfAtMost3HelixesControl:Quadcopter_Observers_LossOfAtMost3HelixesControl;
assert
LostHelixesControl = LossOfAtMost3HelixesControl.output,
PilotRequiresManualMode.input = PilotManualControl,
LossOfSelectedManualModeFiltered.filterCriterion = PilotInconsistentControl,
LossOfSelectedManualModeFiltered.input = LossOfSelectedManualMode.O,
filter4.filterCriterion = PilotInconsistentControl,
filter4.input = ControlledCrash.O,
filter3.filterCriterion = PilotInconsistentControl,
filter3.input = UncontrolledCrashInAuthorizedArea.O,
filter2.filterCriterion = PilotInconsistentControl,
filter2.input = UncontrolledCrashInNonAuthorizedArea.O,
StuckModeManual.PilotAPEngagementOrder = PilotManualControl,
StuckModeManual.AppliedAPEngagement = APEngagement,
ControlledCrash.I1 = PilotRequiresManualMode.output,
ControlledCrash.I2 = StuckModeManual.output,
StuckModeAutoOrErr.input = APEngagement,
FC03_MAJ.I = filter4.output,
TotalLossOfControl.I1 = LossOfAtMost3HelixesControl.output,
TotalLossOfControl.I2 = LossOfSelectedManualMode.O,
UncontrolledCrashInAuthorizedArea.I1 = TotalLossOfHelixesControl.output,
UncontrolledCrashInAuthorizedArea.I2 = LossOfAtMost3HelixesControl.output,
LossOfSelectedManualMode.I1 = StuckModeAutoOrErr.output,
LossOfSelectedManualMode.I2 = PilotRequiresManualMode.output,
UncontrolledCrashInNonAuthorizedArea.I1 = ErroneousControlOfOneHelix.output,
UncontrolledCrashInNonAuthorizedArea.I2 = TotalLossOfControl.O,
FC02_HAZ.I = filter3.output,
FC01_CAT.I = filter2.output,
ErroneousControlOfOneHelix.in1 = Thrust1,
ErroneousControlOfOneHelix.in2 = Thrust2,
ErroneousControlOfOneHelix.in3 = Thrust4,
ErroneousControlOfOneHelix.in4 = Thrust3,
TotalLossOfHelixesControl.in1 = Thrust1,
TotalLossOfHelixesControl.in2 = Thrust2,
TotalLossOfHelixesControl.in3 = Thrust4,
TotalLossOfHelixesControl.in4 = Thrust3,
LossOfAtMost3HelixesControl.in1 = Thrust1,
LossOfAtMost3HelixesControl.in2 = Thrust2,
LossOfAtMost3HelixesControl.in3 = Thrust4,
LossOfAtMost3HelixesControl.in4 = Thrust3;
edon
node eq_AIDASystem_Functions_SF5_MakeAndRecordVideo
flow
icone:[1,2]:private;
ManualPayloadControl:Functions_BasicFunctions_Presence:in;
AutomaticPayloadControl:Physical_BasicPhysical_BasicPhysicalStatus:in;
VideoFlux:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_VideoProcessor^Acquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcessor^Emission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcessor^Computation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_PilotPayloadControlPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_CameraSensor:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_CameraRotarySupport:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_CameraControlDevice:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
SF51_SelectCameraControl:eq_AIDASystem_FunctionsWithPhysical_ForInj_SF51_SelectCameraControl;
SF55_AcquireManualPayloadControl:eq_AIDASystem_FunctionsWithPhysical_ForInj_SF55_AcquireManualPayloadControl;
SF52_ControlCameraOrientation:eq_AIDASystem_FunctionsWithPhysical_ForInj_SF52_ControlCameraOrientation;
SF53_MakePhotosAndVideos:eq_AIDASystem_FunctionsWithPhysical_ForInj_SF53_MakePhotosAndVideos;
SF54_DigitisePhotosAndVideos:eq_AIDASystem_FunctionsWithPhysical_ForInj_SF54_DigitisePhotosAndVideos;
assert
icone = case {
((((SF55_AcquireManualPayloadControl.SF55_Dysfunctional.status = OK) and (SF52_ControlCameraOrientation.SF52_Dysfunctional.status = OK)) and (SF53_MakePhotosAndVideos.SF53_Dysfunctional.status = OK)) and (SF54_DigitisePhotosAndVideos.SF54_Dysfunctional.status = OK)) : 1,
else 2
},
VideoFlux = SF54_DigitisePhotosAndVideos.PhotosAndVideoFiles,
SF51_SelectCameraControl.AutomaticPayloadControl = AutomaticPayloadControl,
SF51_SelectCameraControl.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF51_SelectCameraControl.Alloc_PilotPayloadControlPath = Alloc_PilotPayloadControlPath,
SF51_SelectCameraControl.Alloc_VideoProcEmission = Alloc_VideoProcessor^Emission,
SF51_SelectCameraControl.Alloc_VideoProcComputation = Alloc_VideoProcessor^Computation,
SF51_SelectCameraControl.Alloc_VideoProcAcquisition = Alloc_VideoProcessor^Acquisition,
SF51_SelectCameraControl.ManualPayloadControl^Signal = SF55_AcquireManualPayloadControl.oManualPayloadControl^Signal,
SF51_SelectCameraControl.ManualPayloadControl^IsErroneous = SF55_AcquireManualPayloadControl.oManualPayloadControl^IsErroneous,
SF55_AcquireManualPayloadControl.iManualPayloadControl = ManualPayloadControl,
SF55_AcquireManualPayloadControl.Alloc_CameraControlDevice = Alloc_CameraControlDevice,
SF52_ControlCameraOrientation.CameraPositionConsign = SF51_SelectCameraControl.CameraPositionConsign_PhotoAndVideoControl,
SF52_ControlCameraOrientation.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF52_ControlCameraOrientation.Alloc_CameraRotarySupport = Alloc_CameraRotarySupport,
SF53_MakePhotosAndVideos.CameraPosition = SF52_ControlCameraOrientation.CameraPosition,
SF53_MakePhotosAndVideos.PhotoAndVideoControl = SF51_SelectCameraControl.CameraPositionConsign_PhotoAndVideoControl,
SF53_MakePhotosAndVideos.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF53_MakePhotosAndVideos.Alloc_CameraSensor = Alloc_CameraSensor,
SF54_DigitisePhotosAndVideos.Video_Photo = SF53_MakePhotosAndVideos.Video_Photo,
SF54_DigitisePhotosAndVideos.FileStorageFormat = SF51_SelectCameraControl.FileStorageFormat,
SF54_DigitisePhotosAndVideos.Alloc_VideoProcComputation = Alloc_VideoProcessor^Computation,
SF54_DigitisePhotosAndVideos.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF54_DigitisePhotosAndVideos.Alloc_VideoProcEmission = Alloc_VideoProcessor^Emission,
SF54_DigitisePhotosAndVideos.Alloc_VideoProcAcquisition = Alloc_VideoProcessor^Acquisition;
edon
node eq_AIDASystem_Functions_SF4_ControlDroneNavigation
flow
Position:Physical_BasicPhysical_BasicPhysicalStatus:in;
Time:Physical_BasicPhysical_BasicPhysicalStatus:in;
PositionConsign:Physical_BasicPhysical_BasicPhysicalStatus:out;
SpeedConsign:Physical_BasicPhysical_BasicPhysicalStatus:out;
FlightPlan:Physical_BasicPhysical_BasicPhysicalStatus:in;
APEngagement_WSL^Mode:Functions_BasicFunctions_ModeSelection:out;
APEngagement_WSL^IsErroneous:bool:out;
APEngagement:Functions_BasicFunctions_ModeSelection:out;
IndicatedMode^Mode:Functions_BasicFunctions_ModeSelection:out;
IndicatedMode^IsErroneous:bool:out;
PilotManualControl:Functions_BasicFunctions_ModeSelection:in;
FlightPlanProgress:Physical_BasicPhysical_BasicPhysicalStatus:out;
AutomaticPayloadControl:Physical_BasicPhysical_BasicPhysicalStatus:out;
ManualOverride:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcessor^Acquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcessor^Emission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcessor^Computation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_PilotDroneControlPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMissionDataPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneControlDesk_transmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
Inj_DroneControlDesk_transmission:Functions_PhysicalOperators_PhysicalInjection;
SF42_RunAutomaticControl:eq_AIDASystem_Functions_SF42_RunAutomaticControl;
SF44_AcquirePilotControlConsignAndMode:eq_AIDASystem_Functions_SF44_AcquirePilotControlConsignAndMode;
SF43_SelectControlMode:eq_AIDASystem_Functions_SF43_SelectControlMode;
SF41_AcquireAndStoreFlightPlan:Functions_BasicFunctions_InOutFunction;
assert
PositionConsign = SF42_RunAutomaticControl.PositionConsign,
SpeedConsign = SF42_RunAutomaticControl.SpeedConsign,
APEngagement_WSL^Mode = SF43_SelectControlMode.APEngagement_WSL^Mode,
APEngagement_WSL^IsErroneous = SF43_SelectControlMode.APEngagement_WSL^IsErroneous,
APEngagement = SF43_SelectControlMode.APEngagement,
IndicatedMode^Mode = SF43_SelectControlMode.IndicatedMode^Mode,
IndicatedMode^IsErroneous = SF43_SelectControlMode.IndicatedMode^IsErroneous,
FlightPlanProgress = SF42_RunAutomaticControl.FlightPlanProgress,
AutomaticPayloadControl = SF42_RunAutomaticControl.AutomaticPayloadControl,
Inj_DroneControlDesk_transmission.alloc = Alloc_DroneControlDesk_transmission,
Inj_DroneControlDesk_transmission.input = SF41_AcquireAndStoreFlightPlan.output,
SF42_RunAutomaticControl.FlightPlan = Inj_DroneControlDesk_transmission.output,
SF42_RunAutomaticControl.Position = Position,
SF42_RunAutomaticControl.PilotControlConsigns = SF44_AcquirePilotControlConsignAndMode.AcquiredPilotControlConsigns,
SF42_RunAutomaticControl.Time = Time,
SF42_RunAutomaticControl.FlightPlanInterruption = SF43_SelectControlMode.FlightPlanInterruption,
SF42_RunAutomaticControl.Alloc_MainProcComputation = Alloc_MainProcessor^Computation,
SF42_RunAutomaticControl.Alloc_MainProcEmission = Alloc_MainProcessor^Emission,
SF42_RunAutomaticControl.Alloc_DroneMissionDataPath = Alloc_DroneMissionDataPath,
SF42_RunAutomaticControl.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF42_RunAutomaticControl.Alloc_MainProcAcquisition = Alloc_MainProcessor^Acquisition,
SF44_AcquirePilotControlConsignAndMode.PilotControlMode = PilotManualControl,
SF44_AcquirePilotControlConsignAndMode.Alloc_DroneControlDesk_transmission = Alloc_DroneControlDesk_transmission,
SF43_SelectControlMode.PilotManualControl = SF44_AcquirePilotControlConsignAndMode.AcquiredPilotControlMode,
SF43_SelectControlMode.ManualOverride = ManualOverride,
SF43_SelectControlMode.MissionCompleted^Signal = SF42_RunAutomaticControl.MissionCompleted^Signal,
SF43_SelectControlMode.MissionCompleted^IsErroneous = SF42_RunAutomaticControl.MissionCompleted^IsErroneous,
SF43_SelectControlMode.Alloc_MainProcComputation = Alloc_MainProcessor^Computation,
SF43_SelectControlMode.Alloc_MainProcEmission = Alloc_MainProcessor^Emission,
SF43_SelectControlMode.Alloc_DroneMissionDataPath = Alloc_DroneMissionDataPath,
SF43_SelectControlMode.Alloc_PilotDroneControlPath = Alloc_PilotDroneControlPath,
SF43_SelectControlMode.Alloc_MainProcAcquisition = Alloc_MainProcessor^Acquisition,
SF41_AcquireAndStoreFlightPlan.input = FlightPlan;
edon
node eq_AIDASystem_Functions_SF1_ControlDroneHelixes_2
flow
icone:[1,2]:private;
MotorRatesMeasured^MotorRate1:Physical_BasicPhysical_HiLoPhysicalStatus:out;
MotorRatesMeasured^MotorRate2:Physical_BasicPhysical_HiLoPhysicalStatus:out;
MotorRatesMeasured^MotorRate3:Physical_BasicPhysical_HiLoPhysicalStatus:out;
MotorRatesMeasured^MotorRate4:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_PowerDistribution^EPL_Act1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_PowerDistribution^EPL_Act2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_PowerDistribution^EPL_Act3:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_PowerDistribution^EPL_Act4:Physical_BasicPhysical_HiLoPhysicalStatus:in;
MotorRate:Physical_BasicPhysical_HiLoPhysicalStatus:in;
ThrustAndTorque1:Physical_BasicPhysical_HiLoPhysicalStatus:out;
ThrustAndTorque2:Physical_BasicPhysical_HiLoPhysicalStatus:out;
ThrustAndTorque3:Physical_BasicPhysical_HiLoPhysicalStatus:out;
ThrustAndTorque4:Physical_BasicPhysical_HiLoPhysicalStatus:out;
MotorDisabled^Motor1:bool:in;
MotorDisabled^IsErroneous1:bool:in;
MotorDisabled^Motor2:bool:in;
MotorDisabled^IsErroneous2:bool:in;
MotorDisabled^Motor3:bool:in;
MotorDisabled^IsErroneous3:bool:in;
MotorDisabled^Motor4:bool:in;
MotorDisabled^IsErroneous4:bool:in;
Alloc_MotorsAndVariators^MotorAndVariator1:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MotorsAndVariators^MotorAndVariator2:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MotorsAndVariators^MotorAndVariator3:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MotorsAndVariators^MotorAndVariator4:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneMonitoringDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_Propellers^Propeller1:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_Propellers^Propeller2:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_Propellers^Propeller3:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_Propellers^Propeller4:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
SF14_ControlHelix4:eq_AIDASystem_Functions_SF1i_ControlHelix_2;
SF13_ControlHelix3:eq_AIDASystem_Functions_SF1i_ControlHelix_2;
SF12_ControlHelix2:eq_AIDASystem_Functions_SF1i_ControlHelix_2;
SF11_ControlHelix1:eq_AIDASystem_Functions_SF1i_ControlHelix_2;
assert
icone = case {
((((((((((((SF11_ControlHelix1.SF1i1_5_CreateMotionAndMeasure.status = OK) and (SF11_ControlHelix1.SF1i3_CreateThrustAndTorque.status = OK)) and (SF11_ControlHelix1.SF1i6_DepowerMotor.status = OK)) and (SF12_ControlHelix2.SF1i1_5_CreateMotionAndMeasure.status = OK)) and (SF12_ControlHelix2.SF1i3_CreateThrustAndTorque.status = OK)) and (SF12_ControlHelix2.SF1i6_DepowerMotor.status = OK)) and (SF13_ControlHelix3.SF1i1_5_CreateMotionAndMeasure.status = OK)) and (SF13_ControlHelix3.SF1i3_CreateThrustAndTorque.status = OK)) and (SF13_ControlHelix3.SF1i6_DepowerMotor.status = OK)) and (SF14_ControlHelix4.SF1i1_5_CreateMotionAndMeasure.status = OK)) and (SF14_ControlHelix4.SF1i3_CreateThrustAndTorque.status = OK)) and (SF14_ControlHelix4.SF1i6_DepowerMotor.status = OK)) : 1,
else 2
},
MotorRatesMeasured^MotorRate1 = SF11_ControlHelix1.MotorRateMeasured,
MotorRatesMeasured^MotorRate2 = SF12_ControlHelix2.MotorRateMeasured,
MotorRatesMeasured^MotorRate3 = SF13_ControlHelix3.MotorRateMeasured,
MotorRatesMeasured^MotorRate4 = SF14_ControlHelix4.MotorRateMeasured,
ThrustAndTorque1 = SF11_ControlHelix1.ThrustAndTorque,
ThrustAndTorque2 = SF12_ControlHelix2.ThrustAndTorque,
ThrustAndTorque3 = SF13_ControlHelix3.ThrustAndTorque,
ThrustAndTorque4 = SF14_ControlHelix4.ThrustAndTorque,
SF14_ControlHelix4.MotorDisabled_IsErroneous = MotorDisabled^IsErroneous4,
SF14_ControlHelix4.MotorDisabled = MotorDisabled^Motor4,
SF14_ControlHelix4.MotorRate = MotorRate,
SF14_ControlHelix4.Alloc_PowerDistribution = Alloc_PowerDistribution^EPL_Act4,
SF14_ControlHelix4.Alloc_MotorAndVariator = Alloc_MotorsAndVariators^MotorAndVariator4,
SF14_ControlHelix4.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF14_ControlHelix4.Alloc_DroneMonitoringDigitalNetworkPath = Alloc_DroneMonitoringDigitalNetworkPath,
SF14_ControlHelix4.Alloc_Propeller = Alloc_Propellers^Propeller4,
SF13_ControlHelix3.MotorDisabled_IsErroneous = MotorDisabled^IsErroneous3,
SF13_ControlHelix3.MotorDisabled = MotorDisabled^Motor3,
SF13_ControlHelix3.MotorRate = MotorRate,
SF13_ControlHelix3.Alloc_PowerDistribution = Alloc_PowerDistribution^EPL_Act3,
SF13_ControlHelix3.Alloc_MotorAndVariator = Alloc_MotorsAndVariators^MotorAndVariator3,
SF13_ControlHelix3.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF13_ControlHelix3.Alloc_DroneMonitoringDigitalNetworkPath = Alloc_DroneMonitoringDigitalNetworkPath,
SF13_ControlHelix3.Alloc_Propeller = Alloc_Propellers^Propeller3,
SF12_ControlHelix2.MotorDisabled_IsErroneous = MotorDisabled^IsErroneous2,
SF12_ControlHelix2.MotorDisabled = MotorDisabled^Motor2,
SF12_ControlHelix2.MotorRate = MotorRate,
SF12_ControlHelix2.Alloc_PowerDistribution = Alloc_PowerDistribution^EPL_Act2,
SF12_ControlHelix2.Alloc_MotorAndVariator = Alloc_MotorsAndVariators^MotorAndVariator2,
SF12_ControlHelix2.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF12_ControlHelix2.Alloc_DroneMonitoringDigitalNetworkPath = Alloc_DroneMonitoringDigitalNetworkPath,
SF12_ControlHelix2.Alloc_Propeller = Alloc_Propellers^Propeller2,
SF11_ControlHelix1.MotorDisabled_IsErroneous = MotorDisabled^IsErroneous1,
SF11_ControlHelix1.MotorDisabled = MotorDisabled^Motor1,
SF11_ControlHelix1.MotorRate = MotorRate,
SF11_ControlHelix1.Alloc_PowerDistribution = Alloc_PowerDistribution^EPL_Act1,
SF11_ControlHelix1.Alloc_MotorAndVariator = Alloc_MotorsAndVariators^MotorAndVariator1,
SF11_ControlHelix1.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF11_ControlHelix1.Alloc_DroneMonitoringDigitalNetworkPath = Alloc_DroneMonitoringDigitalNetworkPath,
SF11_ControlHelix1.Alloc_Propeller = Alloc_Propellers^Propeller1;
edon
node eq_AIDASystem_Functions_SF2_ControlDroneAttitudeAndPosition
flow
icone:[1,2]:private;
VerticalSpeed:Physical_BasicPhysical_BasicPhysicalStatus:in;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:in;
Position:Physical_BasicPhysical_BasicPhysicalStatus:in;
Speed:Physical_BasicPhysical_HiLoPhysicalStatus:in;
PositionConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
SpeedConsign:Physical_BasicPhysical_BasicPhysicalStatus:in;
APEngagement:Functions_BasicFunctions_ModeSelection:in;
MotorRate:Physical_BasicPhysical_HiLoPhysicalStatus:out;
DetectControlDronePosition:Physical_BasicPhysical_BasicPhysicalStatus:out;
Consigns^AltitudeManualConsign:Physical_BasicPhysical_BasicPhysicalStatus:out;
Consigns^YawManualConsign:Physical_BasicPhysical_BasicPhysicalStatus:out;
Consigns^PitchRollManualConsign:Physical_BasicPhysical_BasicPhysicalStatus:out;
Consigns^AltitudeAndAttitudeAPConsign:Physical_BasicPhysical_BasicPhysicalStatus:out;
PilotOrders:Functions_BasicFunctions_Presence:in;
ManualOverride:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_MainProcessor^Acquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcessor^Emission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcessor^Computation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_PilotDroneControlPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_PushButton:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_LeftAndRightSideSticks:Physical_BasicPhysical_BasicPhysicalStatus:in;
sub
SF24_ControlAltitude:eq_AIDASystem_FunctionsWithPhysical_forInj_SF24_ControlAltitude;
SF23_ControlAttitude:eq_AIDASystem_FunctionsWithPhysical_forInj_SF23_ControlAttitude;
SF22_AcquirePilotOrders:eq_AIDASystem_FunctionsWithPhysical_forInj_SF22_AcquirePilotOrders;
SF21_ControlPosition:eq_AIDASystem_Functions_SF21_ControlPosition;
SF25_ControlThrust:eq_AIDASystem_FunctionsWithPhysical_forInj_SF25_ControlThrust;
assert
icone = case {
((((((((SF21_ControlPosition.SF21_Dysfunctional.status # OK) or (SF22_AcquirePilotOrders.SF221_4_Dysfunctional.status # OK)) or (SF22_AcquirePilotOrders.SF225_Dysfunctional.status # OK)) or (SF23_ControlAttitude.SF231_ComputeYawConsign.status # OK)) or (SF23_ControlAttitude.SF_232_5_ControlAttitudeAngle.status # OK)) or (SF24_ControlAltitude.SF241_ComputeAltitudeConsign.status # OK)) or (SF24_ControlAltitude.SF242_3_ComputeTotalThrust.status # OK)) or (SF25_ControlThrust.SF25_Dysfunctional.status # OK)) : 2,
else 1
},
MotorRate = SF25_ControlThrust.MotorRates,
DetectControlDronePosition = SF21_ControlPosition.Attitude_Thrust_APConsign,
Consigns^AltitudeManualConsign = SF24_ControlAltitude.AltitudeConsign,
Consigns^YawManualConsign = SF23_ControlAttitude.YawConsign,
Consigns^PitchRollManualConsign = SF22_AcquirePilotOrders.Consigns,
Consigns^AltitudeAndAttitudeAPConsign = SF21_ControlPosition.Attitude_Thrust_APConsign_WSL,
ManualOverride = SF22_AcquirePilotOrders.ManualOverride,
SF24_ControlAltitude.Altitude = Altitude,
SF24_ControlAltitude.Attitude = Attitude,
SF24_ControlAltitude.VerticalSpeedConsign = SF22_AcquirePilotOrders.Consigns,
SF24_ControlAltitude.Thrust_AP = SF21_ControlPosition.Attitude_Thrust_APConsign,
SF24_ControlAltitude.APEngagement = APEngagement,
SF24_ControlAltitude.Alloc_PilotDroneControlPath = Alloc_PilotDroneControlPath,
SF24_ControlAltitude.Alloc_MainProcEmission = Alloc_MainProcessor^Emission,
SF24_ControlAltitude.Alloc_MainProcAcquisition = Alloc_MainProcessor^Acquisition,
SF24_ControlAltitude.Alloc_MainProcComputation = Alloc_MainProcessor^Computation,
SF23_ControlAttitude.Attitude = Attitude,
SF23_ControlAttitude.AttitudeAPConsign = SF21_ControlPosition.Attitude_Thrust_APConsign,
SF23_ControlAttitude.PitchRollConsign = SF22_AcquirePilotOrders.Consigns,
SF23_ControlAttitude.YawRateConsign = SF22_AcquirePilotOrders.Consigns,
SF23_ControlAttitude.APEngagement = APEngagement,
SF23_ControlAttitude.Alloc_PilotDroneControlPath = Alloc_PilotDroneControlPath,
SF23_ControlAttitude.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF23_ControlAttitude.Alloc_MainProcEmission = Alloc_MainProcessor^Emission,
SF23_ControlAttitude.Alloc_MainProcAcquisition = Alloc_MainProcessor^Acquisition,
SF23_ControlAttitude.Alloc_MainProcComputation = Alloc_MainProcessor^Computation,
SF22_AcquirePilotOrders.Alloc_PushButton = Alloc_PushButton,
SF22_AcquirePilotOrders.Alloc_LeftAndRightSideSticks = Alloc_LeftAndRightSideSticks,
SF22_AcquirePilotOrders.PilotOrders = PilotOrders,
SF21_ControlPosition.Position = Position,
SF21_ControlPosition.VerticalSpeed = VerticalSpeed,
SF21_ControlPosition.Speed = Speed,
SF21_ControlPosition.Attitude = Attitude,
SF21_ControlPosition.PositionConsign = PositionConsign,
SF21_ControlPosition.SpeedConsign = SpeedConsign,
SF21_ControlPosition.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF21_ControlPosition.Alloc_MainProcEmission = Alloc_MainProcessor^Emission,
SF21_ControlPosition.Alloc_MainProcComputation = Alloc_MainProcessor^Computation,
SF25_ControlThrust.P = SF23_ControlAttitude.P,
SF25_ControlThrust.Thrust = SF24_ControlAltitude.Thrust,
SF25_ControlThrust.Alloc_MainProcEmission = Alloc_MainProcessor^Emission,
SF25_ControlThrust.Alloc_MainProcComputation = Alloc_MainProcessor^Computation;
edon
node eq_AIDASystem_Functions_SF3_ComputeDronePositionAndSpeed
flow
icone:[1,2]:private;
VerticalSpeed_WSL:Physical_BasicPhysical_BasicPhysicalStatus:out;
Altitude_WSL:Physical_BasicPhysical_HiLoPhysicalStatus:out;
VerticalSpeed:Physical_BasicPhysical_BasicPhysicalStatus:out;
Altitude:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Attitude_WSL:Physical_BasicPhysical_BasicPhysicalStatus:out;
Attitude:Physical_BasicPhysical_BasicPhysicalStatus:out;
Position:Physical_BasicPhysical_BasicPhysicalStatus:out;
Speed:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Time:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_VideoProcessor^Acquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcessor^Emission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_VideoProcessor^Computation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcessor^Acquisition:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcessor^Emission:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_MainProcessor^Computation:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_Sensors^IRS:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_Sensors^Magnetometer:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_Sensors^PressureSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_Sensors^TelemetricSensor:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Alloc_Sensors^LateralSpeedCamera:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_Sensors^PositionSensor:Physical_BasicPhysical_BasicPhysicalStatus:in;
Alloc_DroneDigitalNetworkPath:Physical_BasicPhysical_BasicPhysicalStatus:in;
GroundAltitude_WSL:Physical_BasicPhysical_HiLoPhysicalStatus:out;
sub
SF32_ComputeAltitude:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF32_ComputeAltitude;
SF33_ComputeDroneSpeed:eq_AIDASystem_Functions_SF33_ComputeDroneSpeed;
SF31_ComputeAttitude:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF31_ComputeAttitude;
SF34_ComputePositionAndTime:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF34_ComputePositionAndTime;
assert
icone = case {
(((((((((((SF31_ComputeAttitude.SF311_2_Dysfunctional.status = OK) and (SF31_ComputeAttitude.SF313_Dysfunctional.status = OK)) and (SF31_ComputeAttitude.SF314_6_Dysfunctional.status = OK)) and (SF32_ComputeAltitude.SF321_MeasureAmbiantPressure.SF321_Dysfunctional.status = OK)) and (SF32_ComputeAltitude.SF322_ComputeBarometricAltitude.SF322_Dysfunctional.status = OK)) and (SF32_ComputeAltitude.SF323_MeasureTelemetricSignal.SF323_Dysfunctional.status = OK)) and (SF32_ComputeAltitude.SF324_ComputeGroundAltitude.SF324_Dysfunctional.status = OK)) and (SF32_ComputeAltitude.SF325_ComputeAltitudeAndVerticalSpeed.SF325_Dysfunctional.status = OK)) and (SF33_ComputeDroneSpeed.SF331_FilmGround.SF331_Dysfunctional.status = OK)) and (SF33_ComputeDroneSpeed.SF332_ComputeGroundSpeed.SF332_Dysfunctional.status = OK)) and (SF34_ComputePositionAndTime.SF34_Dysfunctional.status = OK)) : 1,
else 2
},
VerticalSpeed_WSL = SF32_ComputeAltitude.VerticalSpeed_WSL,
Altitude_WSL = SF32_ComputeAltitude.Altitude_WSL,
VerticalSpeed = SF32_ComputeAltitude.VerticalSpeed,
Altitude = SF32_ComputeAltitude.Altitude,
Attitude_WSL = SF31_ComputeAttitude.Attitude_WSL,
Attitude = SF31_ComputeAttitude.Attitude,
Position = SF34_ComputePositionAndTime.PositionAndTime,
Speed = SF33_ComputeDroneSpeed.Speed_WSL,
Time = SF34_ComputePositionAndTime.PositionAndTime,
GroundAltitude_WSL = SF32_ComputeAltitude.GroundAltitude_WSL,
SF32_ComputeAltitude.Alloc_MainProcAcquisition = Alloc_MainProcessor^Acquisition,
SF32_ComputeAltitude.Alloc_MainProcComputation = Alloc_MainProcessor^Computation,
SF32_ComputeAltitude.Alloc_TelemetricSensor = Alloc_Sensors^TelemetricSensor,
SF32_ComputeAltitude.Alloc_PressureSensor = Alloc_Sensors^PressureSensor,
SF32_ComputeAltitude.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF32_ComputeAltitude.Attitude = SF31_ComputeAttitude.Attitude,
SF32_ComputeAltitude.Alloc_MainProcEmission = Alloc_MainProcessor^Emission,
SF33_ComputeDroneSpeed.GroundAltitude = SF32_ComputeAltitude.GroundAltitude_WSL,
SF33_ComputeDroneSpeed.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF33_ComputeDroneSpeed.Alloc_LateralSpeedCamera = Alloc_Sensors^LateralSpeedCamera,
SF33_ComputeDroneSpeed.Alloc_VideoProcAcquisition = Alloc_VideoProcessor^Acquisition,
SF33_ComputeDroneSpeed.Alloc_VideoProcEmission = Alloc_VideoProcessor^Emission,
SF33_ComputeDroneSpeed.Alloc_VideoProcComputation = Alloc_VideoProcessor^Computation,
SF31_ComputeAttitude.Alloc_MainProcEmission = Alloc_MainProcessor^Emission,
SF31_ComputeAttitude.Alloc_MainProcAcquisition = Alloc_MainProcessor^Acquisition,
SF31_ComputeAttitude.Alloc_MainProcComputation = Alloc_MainProcessor^Computation,
SF31_ComputeAttitude.Alloc_IRS = Alloc_Sensors^IRS,
SF31_ComputeAttitude.Alloc_Magnetometer = Alloc_Sensors^Magnetometer,
SF31_ComputeAttitude.Alloc_DroneDigitalNetworkPath = Alloc_DroneDigitalNetworkPath,
SF34_ComputePositionAndTime.Alloc_PositionSensor = Alloc_Sensors^PositionSensor;
edon
node eq_AIDASystem_Physical_Propellers
flow
Alloc_Propellers^Propeller1:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_Propellers^Propeller2:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_Propellers^Propeller3:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_Propellers^Propeller4:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
Propeller4:Components_Propellers_Propeller;
Propeller3:Components_Propellers_Propeller;
Propeller2:Components_Propellers_Propeller;
Propeller1:Components_Propellers_Propeller;
assert
Alloc_Propellers^Propeller1 = Propeller1.output,
Alloc_Propellers^Propeller2 = Propeller2.output,
Alloc_Propellers^Propeller3 = Propeller3.output,
Alloc_Propellers^Propeller4 = Propeller4.output;
edon
node eq_AIDASystem_Physical_PowerSupply
flow
Power_MonitoringProcessor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_MainProcessor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_Actuators^EPL_Act1:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_Actuators^EPL_Act2:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_Actuators^EPL_Act3:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Alloc_Actuators^EPL_Act4:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_CameraSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_CameraRotarySupport:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_WifiController:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_RadioController:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_VideoProcessor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_Sensors_MON^IRS:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_Sensors_MON^Magnetometer:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_Sensors_MON^PressureSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_Sensors_MON^TelemetricSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_Sensors_Main^IRS:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_Sensors_Main^Magnetometer:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_Sensors_Main^PressureSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_Sensors_Main^TelemetricSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_Sensors_Main^PositionSensor:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power_Sensors_Main^LateralSpeedCamera:Physical_BasicPhysical_HiLoPhysicalStatus:out;
sub
DroneBattery:Components_PowerSupply_PowerGeneration;
PowerDistribution:eq_AIDASystem_Physical_PowerDistribution;
PowerDistribution_MON:eq_AIDASystem_Physical_PowerDistribution_MON;
assert
Power_MonitoringProcessor = PowerDistribution_MON.oDistribToMonitoringProcessor,
Power_MainProcessor = PowerDistribution.oDistribToMainProcessor,
Alloc_Actuators^EPL_Act1 = PowerDistribution.oDistribToActuator1,
Alloc_Actuators^EPL_Act2 = PowerDistribution.oDistribToActuator2,
Alloc_Actuators^EPL_Act3 = PowerDistribution.oDistribToActuator3,
Alloc_Actuators^EPL_Act4 = PowerDistribution.oDistribToActuator4,
Power_CameraSensor = PowerDistribution.oDistribToCameraSensor,
Power_CameraRotarySupport = PowerDistribution.oDistribToCameraRotarySupport,
Power_WifiController = PowerDistribution.oDistribToWifiController,
Power_RadioController = PowerDistribution.oDistribToRadioController,
Power_VideoProcessor = PowerDistribution.oDistribToVideoProcessor,
Power_Sensors_MON^IRS = PowerDistribution_MON.oDistribToIRS_MON,
Power_Sensors_MON^Magnetometer = PowerDistribution_MON.oDistribToMagnetometer_MON,
Power_Sensors_MON^PressureSensor = PowerDistribution_MON.oDistribToPressureSensor_MON,
Power_Sensors_MON^TelemetricSensor = PowerDistribution_MON.oDistribToTelemetricSensor_MON,
Power_Sensors_Main^IRS = PowerDistribution.oDistribToIRS,
Power_Sensors_Main^Magnetometer = PowerDistribution.oDistribToMagnetometer,
Power_Sensors_Main^PressureSensor = PowerDistribution.oDistribToPressureSensor,
Power_Sensors_Main^TelemetricSensor = PowerDistribution.oDistribToTelemetricSensor,
Power_Sensors_Main^PositionSensor = PowerDistribution.oDistribToPositionSensor,
Power_Sensors_Main^LateralSpeedCamera = PowerDistribution.oDistribToLateralSpeedCamera,
PowerDistribution.PowerInput = DroneBattery.output,
PowerDistribution_MON.PowerInput_MON = DroneBattery.output;
edon
node eq_AIDASystem_Physical_Actuators
flow
Alloc_MotorsAndVariators^MotorAndVariator1:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_MotorsAndVariators^MotorAndVariator2:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_MotorsAndVariators^MotorAndVariator3:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_MotorsAndVariators^MotorAndVariator4:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power^EPL_Act1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power^EPL_Act2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power^EPL_Act3:Physical_BasicPhysical_HiLoPhysicalStatus:in;
Power^EPL_Act4:Physical_BasicPhysical_HiLoPhysicalStatus:in;
sub
MotorAndVariator4:Components_Actuators_MotorAndVariator;
MotorAndVariator3:Components_Actuators_MotorAndVariator;
MotorAndVariator2:Components_Actuators_MotorAndVariator;
MotorAndVariator1:Components_Actuators_MotorAndVariator;
assert
Alloc_MotorsAndVariators^MotorAndVariator1 = MotorAndVariator1.output,
Alloc_MotorsAndVariators^MotorAndVariator2 = MotorAndVariator2.output,
Alloc_MotorsAndVariators^MotorAndVariator3 = MotorAndVariator3.output,
Alloc_MotorsAndVariators^MotorAndVariator4 = MotorAndVariator4.output,
MotorAndVariator4.Power = Power^EPL_Act4,
MotorAndVariator3.Power = Power^EPL_Act3,
MotorAndVariator2.Power = Power^EPL_Act2,
MotorAndVariator1.Power = Power^EPL_Act1;
edon
node eq_AIDASystem_Physical_DroneControlDesk
flow
Alloc_DroneControlDesk_transmission:Physical_BasicPhysical_BasicPhysicalStatus:out;
Alloc_DroneControlDesk_reception:Physical_BasicPhysical_BasicPhysicalStatus:out;
sub
DroneControlDesk_reception:Components_DroneControlDesk_DroneControlDesk;
DroneControlDesk_transmission:Components_DroneControlDesk_DroneControlDesk;
assert
Alloc_DroneControlDesk_transmission = DroneControlDesk_transmission.Alloc_DroneControlDesk,
Alloc_DroneControlDesk_reception = DroneControlDesk_reception.Alloc_DroneControlDesk;
edon
node main
sub
Payload:eq_AIDASystem_Physical_Payload;
Paths:eq_AIDASystem_Physical_Paths;
CommunicationDevices:eq_AIDASystem_Physical_CommunicationDevices;
Remotecontrol:eq_AIDASystem_Physical_Remotecontrol;
Networks:eq_AIDASystem_Physical_Networks;
Sensors:eq_AIDASystem_Physical_Sensors;
Computers:eq_AIDASystem_Physical_Computers;
SF6:eq_AIDASystem_Functions_SF6_ManageMission;
EXT_Database_UploadPredefinedFlightZoneBoarders:Functions_BasicFunctions_SourceFunction;
EXT_PilotDetection:AIDASystem_Functions_Detection_v44;
SF7:eq_AIDASystem_Functions_SF7_MonitorDroneControl_v042;
FailureConditions:eq_AIDASystem_Observers_Observer_v44;
SF5:eq_AIDASystem_Functions_SF5_MakeAndRecordVideo;
SF4:eq_AIDASystem_Functions_SF4_ControlDroneNavigation;
SF1:eq_AIDASystem_Functions_SF1_ControlDroneHelixes_2;
SF2:eq_AIDASystem_Functions_SF2_ControlDroneAttitudeAndPosition;
SF3:eq_AIDASystem_Functions_SF3_ComputeDronePositionAndSpeed;
Propellers:eq_AIDASystem_Physical_Propellers;
PowerSupply:eq_AIDASystem_Physical_PowerSupply;
Actuators:eq_AIDASystem_Physical_Actuators;
DroneControlDesk:eq_AIDASystem_Physical_DroneControlDesk;
assert
Payload.Power_CameraSensor = PowerSupply.Power_CameraSensor,
Payload.Power_CameraRotarySupport = PowerSupply.Power_CameraRotarySupport,
Paths.WifiController_transmission = CommunicationDevices.oWifiController_transmission,
Paths.WifiController_reception = CommunicationDevices.oWifiController_reception,
Paths.RadioController = CommunicationDevices.oRadioController,
Paths.RemoteCommunication = Remotecontrol.oRemoteCommunication,
Paths.MonitoringDigitalNetwork = Networks.Alloc_MonitoringDN,
Paths.MainDigitalNetwork = Networks.Alloc_MainDN,
CommunicationDevices.Power_WifiController = PowerSupply.Power_WifiController,
CommunicationDevices.Power_RadioController = PowerSupply.Power_RadioController,
Sensors.Power_MON^IRS = PowerSupply.Power_Sensors_MON^IRS,
Sensors.Power_MON^Magnetometer = PowerSupply.Power_Sensors_MON^Magnetometer,
Sensors.Power_MON^PressureSensor = PowerSupply.Power_Sensors_MON^PressureSensor,
Sensors.Power_MON^TelemetricSensor = PowerSupply.Power_Sensors_MON^TelemetricSensor,
Sensors.Power^IRS = PowerSupply.Power_Sensors_Main^IRS,
Sensors.Power^Magnetometer = PowerSupply.Power_Sensors_Main^Magnetometer,
Sensors.Power^PressureSensor = PowerSupply.Power_Sensors_Main^PressureSensor,
Sensors.Power^TelemetricSensor = PowerSupply.Power_Sensors_Main^TelemetricSensor,
Sensors.Power^PositionSensor = PowerSupply.Power_Sensors_Main^PositionSensor,
Sensors.Power^LateralSpeedCamera = PowerSupply.Power_Sensors_Main^LateralSpeedCamera,
Computers.Power_MonitoringProcessor = PowerSupply.Power_MonitoringProcessor,
Computers.Power_MainProcessor = PowerSupply.Power_MainProcessor,
Computers.Power_VideoProcessor = PowerSupply.Power_VideoProcessor,
SF6.iFlightPlanProgress = SF4.FlightPlanProgress,
SF6.iFlightPlan = EXT_Database_UploadPredefinedFlightZoneBoarders.output,
SF6.iDroneControlMode^Mode = SF4.IndicatedMode^Mode,
SF6.iDroneControlMode^IsErroneous = SF4.IndicatedMode^IsErroneous,
SF6.Alloc_DroneMissionDataPath_Drone2ControlDesk = Paths.Alloc_DroneMissionDataPath_ControlDesk2Drone,
SF6.Alloc_DroneControlDesk_transmission = DroneControlDesk.Alloc_DroneControlDesk_transmission,
SF6.Alloc_DroneControlDesk_reception = DroneControlDesk.Alloc_DroneControlDesk_reception,
EXT_PilotDetection.inputFlightPlan = SF6.oFlightPlanProgress,
EXT_PilotDetection.inputPosition = SF3.Position,
EXT_PilotDetection.inputSpeed = SF3.Speed,
EXT_PilotDetection.inputControlPosition = SF2.DetectControlDronePosition,
EXT_PilotDetection.inputLostHelixesControl = FailureConditions.LostHelixesControl,
EXT_PilotDetection.inputIndicatedMode = SF6.oDroneControlMode,
SF7.APEngagement^Mode = SF4.APEngagement_WSL^Mode,
SF7.APEngagement^IsErroneous = SF4.APEngagement_WSL^IsErroneous,
SF7.Attitude = SF3.Attitude_WSL,
SF7.GroundAltitude = SF3.GroundAltitude_WSL,
SF7.VerticalSpeed = SF3.VerticalSpeed_WSL,
SF7.Altitude = SF3.Altitude_WSL,
SF7.MotorRate = SF2.MotorRate,
SF7.MotorRatesMeasured^MotorRate1 = SF1.MotorRatesMeasured^MotorRate1,
SF7.MotorRatesMeasured^MotorRate2 = SF1.MotorRatesMeasured^MotorRate2,
SF7.MotorRatesMeasured^MotorRate3 = SF1.MotorRatesMeasured^MotorRate3,
SF7.MotorRatesMeasured^MotorRate4 = SF1.MotorRatesMeasured^MotorRate4,
SF7.Consigns^AltitudeManualConsign = SF2.Consigns^AltitudeManualConsign,
SF7.Consigns^YawManualConsign = SF2.Consigns^YawManualConsign,
SF7.Consigns^PitchRollManualConsign = SF2.Consigns^PitchRollManualConsign,
SF7.Consigns^AltitudeAndAttitudeAPConsign = SF2.Consigns^AltitudeAndAttitudeAPConsign,
SF7.Alloc_PilotDroneControlPath = Paths.Alloc_PilotDroneControlPath,
SF7.Alloc_SensorsMON^IRS = Sensors.Alloc_Sensors_MON^IRS,
SF7.Alloc_SensorsMON^Magnetometer = Sensors.Alloc_Sensors_MON^Magnetometer,
SF7.Alloc_SensorsMON^PressureSensor = Sensors.Alloc_Sensors_MON^PressureSensor,
SF7.Alloc_SensorsMON^TelemetricSensor = Sensors.Alloc_Sensors_MON^TelemetricSensor,
SF7.Alloc_MonitoringProcessor^Acquisition = Computers.Alloc_MonitoringProcessor^Acquisition,
SF7.Alloc_MonitoringProcessor^Emission = Computers.Alloc_MonitoringProcessor^Emission,
SF7.Alloc_MonitoringProcessor^Computation = Computers.Alloc_MonitoringProcessor^Computation,
SF7.Alloc_DroneDigitalNetworkPath = Paths.Alloc_DroneDigitalNetworkPath,
SF7.Alloc_DroneMonitoringDigitalNetworkPath = Paths.Alloc_DroneMonitoringDigitalNetworkPath,
FailureConditions.Thrust1 = SF1.ThrustAndTorque1,
FailureConditions.Thrust2 = SF1.ThrustAndTorque2,
FailureConditions.Thrust3 = SF1.ThrustAndTorque3,
FailureConditions.Thrust4 = SF1.ThrustAndTorque4,
FailureConditions.APEngagement = SF4.APEngagement,
FailureConditions.PilotInconsistentControl = EXT_PilotDetection.PilotInconsistentControl,
FailureConditions.PilotManualControl = EXT_PilotDetection.PilotSelectedMode,
SF5.ManualPayloadControl = EXT_PilotDetection.ManualPayloadControl,
SF5.AutomaticPayloadControl = SF4.AutomaticPayloadControl,
SF5.Alloc_VideoProcessor^Acquisition = Computers.Alloc_VideoProcessor^Acquisition,
SF5.Alloc_VideoProcessor^Emission = Computers.Alloc_VideoProcessor^Emission,
SF5.Alloc_VideoProcessor^Computation = Computers.Alloc_VideoProcessor^Computation,
SF5.Alloc_PilotPayloadControlPath = Paths.Alloc_PilotPayloadControlPath,
SF5.Alloc_CameraSensor = Payload.Alloc_CameraSensor,
SF5.Alloc_CameraRotarySupport = Payload.Alloc_CameraRotarySupport,
SF5.Alloc_DroneDigitalNetworkPath = Paths.Alloc_DroneDigitalNetworkPath,
SF5.Alloc_CameraControlDevice = Remotecontrol.Alloc_CameraControlDevice,
SF4.Position = SF3.Position,
SF4.Time = SF3.Time,
SF4.FlightPlan = SF6.oFlightPlan,
SF4.PilotManualControl = EXT_PilotDetection.PilotSelectedMode,
SF4.ManualOverride = SF2.ManualOverride,
SF4.Alloc_MainProcessor^Acquisition = Computers.Alloc_MainProcessor^Acquisition,
SF4.Alloc_MainProcessor^Emission = Computers.Alloc_MainProcessor^Emission,
SF4.Alloc_MainProcessor^Computation = Computers.Alloc_MainProcessor^Computation,
SF4.Alloc_PilotDroneControlPath = Paths.Alloc_PilotDroneControlPath,
SF4.Alloc_DroneDigitalNetworkPath = Paths.Alloc_DroneDigitalNetworkPath,
SF4.Alloc_DroneMissionDataPath = Paths.Alloc_DroneMissionDataPath_ControlDesk2Drone,
SF4.Alloc_DroneControlDesk_transmission = DroneControlDesk.Alloc_DroneControlDesk_transmission,
SF1.Alloc_PowerDistribution^EPL_Act1 = PowerSupply.Alloc_Actuators^EPL_Act1,
SF1.Alloc_PowerDistribution^EPL_Act2 = PowerSupply.Alloc_Actuators^EPL_Act2,
SF1.Alloc_PowerDistribution^EPL_Act3 = PowerSupply.Alloc_Actuators^EPL_Act3,
SF1.Alloc_PowerDistribution^EPL_Act4 = PowerSupply.Alloc_Actuators^EPL_Act4,
SF1.MotorRate = SF2.MotorRate,
SF1.MotorDisabled^Motor1 = SF7.MotorDisabled^Motor1,
SF1.MotorDisabled^IsErroneous1 = SF7.MotorDisabled^IsErroneous1,
SF1.MotorDisabled^Motor2 = SF7.MotorDisabled^Motor2,
SF1.MotorDisabled^IsErroneous2 = SF7.MotorDisabled^IsErroneous2,
SF1.MotorDisabled^Motor3 = SF7.MotorDisabled^Motor3,
SF1.MotorDisabled^IsErroneous3 = SF7.MotorDisabled^IsErroneous3,
SF1.MotorDisabled^Motor4 = SF7.MotorDisabled^Motor4,
SF1.MotorDisabled^IsErroneous4 = SF7.MotorDisabled^IsErroneous4,
SF1.Alloc_MotorsAndVariators^MotorAndVariator1 = Actuators.Alloc_MotorsAndVariators^MotorAndVariator1,
SF1.Alloc_MotorsAndVariators^MotorAndVariator2 = Actuators.Alloc_MotorsAndVariators^MotorAndVariator2,
SF1.Alloc_MotorsAndVariators^MotorAndVariator3 = Actuators.Alloc_MotorsAndVariators^MotorAndVariator3,
SF1.Alloc_MotorsAndVariators^MotorAndVariator4 = Actuators.Alloc_MotorsAndVariators^MotorAndVariator4,
SF1.Alloc_DroneDigitalNetworkPath = Paths.Alloc_DroneDigitalNetworkPath,
SF1.Alloc_DroneMonitoringDigitalNetworkPath = Paths.Alloc_DroneMonitoringDigitalNetworkPath,
SF1.Alloc_Propellers^Propeller1 = Propellers.Alloc_Propellers^Propeller1,
SF1.Alloc_Propellers^Propeller2 = Propellers.Alloc_Propellers^Propeller2,
SF1.Alloc_Propellers^Propeller3 = Propellers.Alloc_Propellers^Propeller3,
SF1.Alloc_Propellers^Propeller4 = Propellers.Alloc_Propellers^Propeller4,
SF2.VerticalSpeed = SF3.VerticalSpeed,
SF2.Altitude = SF3.Altitude,
SF2.Attitude = SF3.Attitude,
SF2.Position = SF3.Position,
SF2.Speed = SF3.Speed,
SF2.PositionConsign = SF4.PositionConsign,
SF2.SpeedConsign = SF4.SpeedConsign,
SF2.APEngagement = SF4.APEngagement,
SF2.PilotOrders = EXT_PilotDetection.PilotOrders,
SF2.Alloc_MainProcessor^Acquisition = Computers.Alloc_MainProcessor^Acquisition,
SF2.Alloc_MainProcessor^Emission = Computers.Alloc_MainProcessor^Emission,
SF2.Alloc_MainProcessor^Computation = Computers.Alloc_MainProcessor^Computation,
SF2.Alloc_DroneDigitalNetworkPath = Paths.Alloc_DroneDigitalNetworkPath,
SF2.Alloc_PilotDroneControlPath = Paths.Alloc_PilotDroneControlPath,
SF2.Alloc_PushButton = Remotecontrol.Alloc_PushButton,
SF2.Alloc_LeftAndRightSideSticks = Remotecontrol.Alloc_LeftAndRightSideSticks,
SF3.Alloc_VideoProcessor^Acquisition = Computers.Alloc_VideoProcessor^Acquisition,
SF3.Alloc_VideoProcessor^Emission = Computers.Alloc_VideoProcessor^Emission,
SF3.Alloc_VideoProcessor^Computation = Computers.Alloc_VideoProcessor^Computation,
SF3.Alloc_MainProcessor^Acquisition = Computers.Alloc_MainProcessor^Acquisition,
SF3.Alloc_MainProcessor^Emission = Computers.Alloc_MainProcessor^Emission,
SF3.Alloc_MainProcessor^Computation = Computers.Alloc_MainProcessor^Computation,
SF3.Alloc_Sensors^IRS = Sensors.Alloc_Sensors_Main^IRS,
SF3.Alloc_Sensors^Magnetometer = Sensors.Alloc_Sensors_Main^Magnetometer,
SF3.Alloc_Sensors^PressureSensor = Sensors.Alloc_Sensors_Main^PressureSensor,
SF3.Alloc_Sensors^TelemetricSensor = Sensors.Alloc_Sensors_Main^TelemetricSensor,
SF3.Alloc_Sensors^LateralSpeedCamera = Sensors.Alloc_Sensors_Main^LateralSpeedCamera,
SF3.Alloc_Sensors^PositionSensor = Sensors.Alloc_Sensors_Main^PositionSensor,
SF3.Alloc_DroneDigitalNetworkPath = Paths.Alloc_DroneDigitalNetworkPath,
Actuators.Power^EPL_Act1 = PowerSupply.Alloc_Actuators^EPL_Act1,
Actuators.Power^EPL_Act2 = PowerSupply.Alloc_Actuators^EPL_Act2,
Actuators.Power^EPL_Act3 = PowerSupply.Alloc_Actuators^EPL_Act3,
Actuators.Power^EPL_Act4 = PowerSupply.Alloc_Actuators^EPL_Act4;
extern
nodeproperty <global projectName> = "AIDASystem/AIDASystem/AIDA0_4_4";
nodeproperty <global projectVersion> = "1";
nodeproperty <global projectConfig> = "default";
nodeproperty <global currentDate> = "2019-04-01 10:02:08";
edon