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

4961 lines
236 KiB

/* Date : 1 avr. 2019 */
6 years ago
/* 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};
6 years ago
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
6 years ago
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
6 years ago
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
6 years ago
event
fail_loss,
fail_err;
6 years ago
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;
6 years ago
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,
6 years ago
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
6 years ago
},
output = case {
((Power = LOST) or (status = LOST)) : LOST,
((((Power = ERRONEOUS) or (Power = LOW_ERRONEOUS)) or (Power = HIGH_ERRONEOUS)) or (status = ERRONEOUS)) : ERRONEOUS,
else OK
6 years ago
};
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";
6 years ago
edon
node Components_RemoteControl_RemoteCommunication
6 years ago
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
6 years ago
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
6 years ago
event
fail_transm_err,
fail_transm_loss;
6 years ago
trans
(status = OK) |- fail_transm_loss -> status := LOST;
(status = OK) |- fail_transm_err -> status := ERRONEOUS;
6 years ago
assert
icone = case {
(status = LOST) : 2,
else 1
6 years ago
},
output = case {
((Power = LOST) or (status = LOST)) : LOST,
((((Power = ERRONEOUS) or (Power = LOW_ERRONEOUS)) or (Power = HIGH_ERRONEOUS)) or (status = ERRONEOUS)) : ERRONEOUS,
else OK
};
6 years ago
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";
6 years ago
edon
node Components_PowerSupply_PowerGeneration
6 years ago
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
6 years ago
state
status:Physical_BasicPhysical_HiLoPhysicalStatus;
6 years ago
event
fail_err,
fail_unsuff,
fail_over,
fail_loss;
6 years ago
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;
6 years ago
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";
6 years ago
edon
node Components_RemoteControl_RemoteSwitch
6 years ago
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
Power:Physical_BasicPhysical_HiLoPhysicalStatus:in;
6 years ago
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
6 years ago
event
fail_loss,
fail_err;
6 years ago
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_err -> status := ERRONEOUS;
6 years ago
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
};
6 years ago
init
status := OK;
6 years ago
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";
6 years ago
edon
node Components_Links_EPL
6 years ago
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;
6 years ago
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";
6 years ago
edon
node Components_RemoteControl_RemoteControlInterface
6 years ago
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;
6 years ago
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";
6 years ago
edon
node Components_Networks_DigitalNetwork
6 years ago
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;
6 years ago
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";
6 years ago
edon
node Components_Sensors_SimpleSensor
6 years ago
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;
6 years ago
assert
icone = case {
(status = LOST) : 2,
(status = HIGH_ERRONEOUS) : 3,
(status = LOW_ERRONEOUS) : 3,
else 1
6 years ago
},
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";
6 years ago
edon
node Components_Sensors_ComplexSensor
6 years ago
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;
6 years ago
assert
icone = case {
(status = LOST) : 2,
(status = ERRONEOUS) : 3,
else 1
},
6 years ago
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
6 years ago
};
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";
6 years ago
edon
node Components_Sensors_PowerSupplyMonitoring
6 years ago
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;
6 years ago
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";
6 years ago
edon
node Components_Computers_Computation
6 years ago
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;
6 years ago
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";
6 years ago
edon
node Components_Computers_AcquisitionEmission
6 years ago
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;
6 years ago
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";
6 years ago
edon
node Functions_PhysicalOperators_PhysicalInjection
6 years ago
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
input:Physical_BasicPhysical_BasicPhysicalStatus:in;
6 years ago
assert
icone = case {
(alloc = OK) : 1,
(alloc = LOST) : 2,
else 3
6 years ago
},
output = case {
(alloc # OK) : alloc,
else input
};
6 years ago
edon
node Functions_BasicFunctions_InOutFunction
6 years ago
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;
6 years ago
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";
6 years ago
edon
node Functions_PhysicalOperators_PhysicalInjection_ModeSelection_Status
6 years ago
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;
6 years ago
assert
icone = case {
(alloc = OK) : 1,
(alloc = ERRONEOUS) : 3,
6 years ago
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
};
6 years ago
edon
node Functions_BasicFunctions_InOutModeFunction
6 years ago
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;
6 years ago
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";
6 years ago
edon
node Functions_BasicFunctions_SourceFunction
6 years ago
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;
6 years ago
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";
6 years ago
edon
node AIDASystem_Functions_Detection_v44
6 years ago
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;
6 years ago
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;
6 years ago
edon
node Functions_PhysicalOperators_PhysicalInjection_bothHiLo
6 years ago
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
input:Physical_BasicPhysical_HiLoPhysicalStatus:in;
6 years ago
assert
icone = case {
(alloc = OK) : 1,
(alloc = LOST) : 2,
else 3
},
output = case {
(alloc = LOST) : LOST,
(alloc = ERRONEOUS) : ERRONEOUS,
else input
};
6 years ago
edon
node Functions_BasicFunctions_InOutFunction_Hilo_SF325
6 years ago
flow
icone:[1,3]:private;
input:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output_2:Physical_BasicPhysical_BasicPhysicalStatus:out;
output_1:Physical_BasicPhysical_HiLoPhysicalStatus:out;
6 years ago
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
6 years ago
event
fail_loss,
fail_error;
6 years ago
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_error -> status := ERRONEOUS;
6 years ago
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
6 years ago
},
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
6 years ago
};
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";
6 years ago
edon
node Functions_BasicOperators_AND_fullHiLo
6 years ago
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
input_1:Physical_BasicPhysical_HiLoPhysicalStatus:in;
input_2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
6 years ago
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
};
6 years ago
edon
node Functions_BasicFunctions_InOutFunction_HiLo
6 years ago
flow
icone:[1,3]:private;
input:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
6 years ago
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
6 years ago
event
fail_loss,
fail_error;
6 years ago
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_error -> status := ERRONEOUS;
6 years ago
assert
icone = case {
(status = OK) : 1,
(status = LOST) : 2,
else 3
6 years ago
},
output = case {
(status = LOST) : LOST,
(status = ERRONEOUS) : ERRONEOUS,
else input
};
6 years ago
init
status := OK;
6 years ago
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";
6 years ago
edon
node Functions_BasicOperators_AND_complexHiLo
6 years ago
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
input_1:Physical_BasicPhysical_BasicPhysicalStatus:in;
input_2:Physical_BasicPhysical_HiLoPhysicalStatus:in;
6 years ago
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
};
6 years ago
edon
node Functions_PhysicalOperators_PhysicalInjection_HiLo
6 years ago
flow
icone:[1,3]:private;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
alloc:Physical_BasicPhysical_HiLoPhysicalStatus:in;
input:Physical_BasicPhysical_BasicPhysicalStatus:in;
6 years ago
assert
icone = case {
(alloc = OK) : 1,
(alloc = LOST) : 2,
else 3
6 years ago
},
output = case {
(alloc # OK) : alloc,
(input = OK) : OK,
(input = LOST) : LOST,
else ERRONEOUS
};
6 years ago
edon
node Functions_BasicFunctions_InOutFunction_HiLoReverse
6 years ago
flow
icone:[1,3]:private;
input:Physical_BasicPhysical_HiLoPhysicalStatus:in;
output:Physical_BasicPhysical_HiLoPhysicalStatus:out;
6 years ago
state
status:Physical_BasicPhysical_BasicPhysicalStatus;
6 years ago
event
fail_loss,
fail_error;
6 years ago
trans
(status = OK) |- fail_loss -> status := LOST;
(status = OK) |- fail_error -> status := ERRONEOUS;
6 years ago
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
6 years ago
};
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";
6 years ago
edon
node Functions_PhysicalOperators_AND_Physical
6 years ago
flow
icone:[1,2]:private;
output:Physical_BasicPhysical_BasicPhysicalStatus:out;
input_1:Physical_BasicPhysical_BasicPhysicalStatus:in;
input_2:Physical_BasicPhysical_BasicPhysicalStatus:in;
6 years ago
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)),
6 years ago
icone = case {
(output = OK) : 1,
6 years ago
else 2
};
edon
node Functions_BasicOperators_ErrConditionalSelector_2_ComplexHiLo
6 years ago
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;
6 years ago
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
6 years ago
},
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)),
6 years ago
icone = case {
(output = OK) : 1,
6 years ago
else 2
};
edon
node Functions_BasicOperators_ErrConditionalSelector_2
6 years ago
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;
6 years ago
assert
icone = (if (condition = AUTO) then 1 else 2),
output = (if (condition = AUTO) then inputAUTO else inputMANUAL);
6 years ago
edon
node Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Origin
6 years ago
flow
icone:[1,3]:private;
output:bool:out;
alloc:Physical_BasicPhysical_BasicPhysicalStatus:in;
6 years ago
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;
6 years ago
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;
6 years ago
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,
6 years ago
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),
6 years ago
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,
6 years ago
else true
};
edon
node Functions_BasicOperators_OR_3
6 years ago
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;
6 years ago
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;
6 years ago
edon
node eq_AIDASystem_Physical_Path_PilotDroneControl
6 years ago
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
6 years ago
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;
6 years ago
sub
PowerSupplyMonitoring:Components_Sensors_PowerSupplyMonitoring;
Computation:Components_Computers_Computation;
Acquisition:Components_Computers_AcquisitionEmission;
Emission:Components_Computers_AcquisitionEmission;
6 years ago
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;
6 years ago
edon
node eq_AIDASystem_Functions_SF64_DisplayDroneFollowUpData
6 years ago
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;
6 years ago
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;
6 years ago
assert
icone = case {
((SF64_ControlMode.status # OK) or (SF64_FlightPlanProgress.status # OK)) : 2,
else 1
6 years ago
},
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;
6 years ago
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF72_ComputeAltitudeMON
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
edon
node eq_AIDASystem_FunctionsWithPhysical_forInj_SF71_ComputeAttitudeMON
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
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,
6 years ago
else 2
},
MotorRate = SF737_8_ComputeMotorRate.MotorRates,
6 years ago
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;
6 years ago
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;
6 years ago
MotorsDisabled^Motor1:bool:out;
MotorsDisabled^IsErroneous1:bool:out;
6 years ago
MotorsDisabled^Motor2:bool:out;
MotorsDisabled^IsErroneous2:bool:out;
6 years ago
MotorsDisabled^Motor3:bool:out;
MotorsDisabled^IsErroneous3:bool:out;
6 years ago
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;
6 years ago
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;
6 years ago
assert
icone = case {
(SF745_DisableDroneMotor.FailureModesOfSF74.status = OK) : 1,
else 2
},
MotorsDisabled^Motor1 = SF745_DisableDroneMotor.MotorDisabled^Motor1,
MotorsDisabled^IsErroneous1 = SF745_DisableDroneMotor.MotorDisabled^IsErroneous1,
6 years ago
MotorsDisabled^Motor2 = SF745_DisableDroneMotor.MotorDisabled^Motor2,
MotorsDisabled^IsErroneous2 = SF745_DisableDroneMotor.MotorDisabled^IsErroneous2,
6 years ago
MotorsDisabled^Motor3 = SF745_DisableDroneMotor.MotorDisabled^Motor3,
MotorsDisabled^IsErroneous3 = SF745_DisableDroneMotor.MotorDisabled^IsErroneous3,
6 years ago
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,
6 years ago
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,
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
sub
Inj_Emiss:Functions_PhysicalOperators_PhysicalInjection;
6 years ago
SF423_SelectAutomaticPayloadControl:Functions_BasicOperators_AND;
SF421_RunFlightPlan:eq_AIDASystem_Functions_SF421_RunFlightPlan;
SF422_RunSpeedControl:eq_AIDASystem_FunctionsWithPhysical_forInj_SF422_RunSpeedControl;
6 years ago
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,
6 years ago
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;
6 years ago
edon
node eq_AIDASystem_Functions_SF44_AcquirePilotControlConsignAndMode
flow
icone:[1,2]:private;
AcquiredPilotControlConsigns:Physical_BasicPhysical_BasicPhysicalStatus:out;
6 years ago
AcquiredPilotControlMode:Functions_BasicFunctions_ModeSelection_ErroneousLost:out;
PilotControlMode:Functions_BasicFunctions_ModeSelection:in;
Alloc_DroneControlDesk_transmission:Physical_BasicPhysical_BasicPhysicalStatus:in;
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
APEngagement:Functions_BasicFunctions_ModeSelection:out;
ManualOverride:Physical_BasicPhysical_BasicPhysicalStatus:in;
MissionCompleted^Signal:Functions_BasicFunctions_Presence:in;
MissionCompleted^IsErroneous:bool:in;
6 years ago
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;
6 years ago
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;
6 years ago
SF431_SelectControlMode:Functions_BasicFunctions_ErroneousLostPresentModeSelector;
SF433_IndicateControlMode:Functions_BasicFunctions_InOutModeFunction;
SF432_PassivateEngagementOscillation:Functions_BasicFunctions_FaultyManualModeSelector_LossType;
assert
APEngagement = Inj_Comp2.output,
6 years ago
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;
6 years ago
edon
node eq_AIDASystem_Functions_SF1i_ControlHelix_2
flow
icone:[1,2]:private;
MotorDisabled_IsErroneous:bool:in;
6 years ago
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;
6 years ago
sub
Inj_DroneDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection_bothHiLo;
Inj_DroneMonitoringDigitalNetworkPath:Functions_PhysicalOperators_PhysicalInjection_boolean_Status;
Inj_PowerDistribution:Functions_PhysicalOperators_PhysicalInjection_boolean_Status_Actuators;
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
sub
SF331_FilmGround:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF331_FilmGround;
SF332_ComputeGroundSpeed:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF332_ComputeGroundSpeed;
6 years ago
assert
icone = case {
((SF331_FilmGround.SF331_Dysfunctional.status = OK) and (SF332_ComputeGroundSpeed.SF332_Dysfunctional.status = OK)) : 1,
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
sub
Inj_DroneControlDesk_transmission:Functions_PhysicalOperators_PhysicalInjection;
6 years ago
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,
6 years ago
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;
6 years ago
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;
6 years ago
MotorDisabled^Motor1:bool:out;
MotorDisabled^IsErroneous1:bool:out;
6 years ago
MotorDisabled^Motor2:bool:out;
MotorDisabled^IsErroneous2:bool:out;
6 years ago
MotorDisabled^Motor3:bool:out;
MotorDisabled^IsErroneous3:bool:out;
6 years ago
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;
6 years ago
sub
SF72_ComputeDroneAltitudeMON:eq_AIDASystem_FunctionsWithPhysical_forInj_SF72_ComputeAltitudeMON;
SF71_ComputeAttitudeMON:eq_AIDASystem_FunctionsWithPhysical_forInj_SF71_ComputeAttitudeMON;
6 years ago
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,
6 years ago
else 2
},
MotorDisabled^Motor1 = SF74_MonitorParameters.MotorsDisabled^Motor1,
MotorDisabled^IsErroneous1 = SF74_MonitorParameters.MotorsDisabled^IsErroneous1,
6 years ago
MotorDisabled^Motor2 = SF74_MonitorParameters.MotorsDisabled^Motor2,
MotorDisabled^IsErroneous2 = SF74_MonitorParameters.MotorsDisabled^IsErroneous2,
6 years ago
MotorDisabled^Motor3 = SF74_MonitorParameters.MotorsDisabled^Motor3,
MotorDisabled^IsErroneous3 = SF74_MonitorParameters.MotorsDisabled^IsErroneous3,
6 years ago
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,
6 years ago
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,
6 years ago
SF74_MonitorParameters.MotorRateMON = SF73_ControlAttitudeAndAltitudeMON.MotorRate,
SF74_MonitorParameters.MotorRate = MotorRate,
SF74_MonitorParameters.GroundAltitudeMON = SF72_ComputeDroneAltitudeMON.GroundAltitude,
SF74_MonitorParameters.GroundAltitude = GroundAltitude,
6 years ago
SF74_MonitorParameters.Altitude = Altitude,
SF74_MonitorParameters.AltitudeMON = SF72_ComputeDroneAltitudeMON.Altitude,
SF74_MonitorParameters.VerticalSpeedMON = SF72_ComputeDroneAltitudeMON.VerticalSpeed,
SF74_MonitorParameters.VerticalSpeed = VerticalSpeed,
6 years ago
SF74_MonitorParameters.Attitude = Attitude,
SF74_MonitorParameters.AttitudeMON = SF71_ComputeAttitudeMON.Attitude,
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
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,
6 years ago
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;
6 years ago
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;
6 years ago
APEngagement:Functions_BasicFunctions_ModeSelection:out;
IndicatedMode^Mode:Functions_BasicFunctions_ModeSelection:out;
IndicatedMode^IsErroneous:bool:out;
6 years ago
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;
6 years ago
sub
Inj_DroneControlDesk_transmission:Functions_PhysicalOperators_PhysicalInjection;
6 years ago
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,
6 years ago
APEngagement = SF43_SelectControlMode.APEngagement,
IndicatedMode^Mode = SF43_SelectControlMode.IndicatedMode^Mode,
IndicatedMode^IsErroneous = SF43_SelectControlMode.IndicatedMode^IsErroneous,
6 years ago
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,
6 years ago
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,
6 years ago
SF44_AcquirePilotControlConsignAndMode.PilotControlMode = PilotManualControl,
SF44_AcquirePilotControlConsignAndMode.Alloc_DroneControlDesk_transmission = Alloc_DroneControlDesk_transmission,
6 years ago
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,
6 years ago
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;
6 years ago
MotorDisabled^Motor1:bool:in;
MotorDisabled^IsErroneous1:bool:in;
6 years ago
MotorDisabled^Motor2:bool:in;
MotorDisabled^IsErroneous2:bool:in;
6 years ago
MotorDisabled^Motor3:bool:in;
MotorDisabled^IsErroneous3:bool:in;
6 years ago
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;
6 years ago
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
},
6 years ago
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,
6 years ago
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,
6 years ago
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,
6 years ago
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,
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
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,
6 years ago
SF21_ControlPosition.Position = Position,
SF21_ControlPosition.VerticalSpeed = VerticalSpeed,
6 years ago
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;
6 years ago
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;
6 years ago
SF33_ComputeDroneSpeed:eq_AIDASystem_Functions_SF33_ComputeDroneSpeed;
SF31_ComputeAttitude:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF31_ComputeAttitude;
SF34_ComputePositionAndTime:eq_AIDASystem_FunctionsWithPhysical_Alloc_SF34_ComputePositionAndTime;
6 years ago
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,
6 years ago
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;
6 years ago
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;
6 years ago
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;
6 years ago
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,
6 years ago
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,
6 years ago
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,
6 years ago
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,
6 years ago
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,
6 years ago
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,
6 years ago
SF1.MotorRate = SF2.MotorRate,
SF1.MotorDisabled^Motor1 = SF7.MotorDisabled^Motor1,
SF1.MotorDisabled^IsErroneous1 = SF7.MotorDisabled^IsErroneous1,
6 years ago
SF1.MotorDisabled^Motor2 = SF7.MotorDisabled^Motor2,
SF1.MotorDisabled^IsErroneous2 = SF7.MotorDisabled^IsErroneous2,
6 years ago
SF1.MotorDisabled^Motor3 = SF7.MotorDisabled^Motor3,
SF1.MotorDisabled^IsErroneous3 = SF7.MotorDisabled^IsErroneous3,
6 years ago
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,
6 years ago
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;
6 years ago
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";
6 years ago
edon