/* 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