Commit d085ad04 authored by Jean-Claude BAU's avatar Jean-Claude BAU

HAL: Force all ports to go up at the same time

After a reboot, all ports a waiting few seconds to try to be UP at the
same time. This is done to avoid PPSi (BMCA) to change all the time its
port states
parent 1abc36e7
......@@ -101,6 +101,8 @@ typedef struct {
int isSupported; /* Set if Low Phase Drift Calibration is supported */
fsm_t txSetupFSM;
fsm_t rxSetupFSM;
int rebootDone;
timeout_t minCalibRx_timeout;
halPortLpdcTx_t *txSetup;
halPortLpdcRx_t *rxSetup;
halGlobalLPDC_t *globalLpdc;
......
......@@ -43,6 +43,7 @@
/* external prototypes */
static int port_rx_setup_fsm_build_events(fsm_t *fsm);
static int _hal_port_rx_setup_state_init(fsm_t *fsm, int eventMsk, int isNewState);
static int _hal_port_rx_setup_state_start(fsm_t *fsm, int eventMsk, int isNewState);
static int _hal_port_rx_setup_state_reset_pcs(fsm_t *fsm, int ventMsk, int isNewState);
static int _hal_port_rx_setup_state_wait_lock(fsm_t *fsm, int ventMsk, int isNewState);
......@@ -53,6 +54,10 @@ static int _hal_port_rx_setup_state_done(fsm_t *fsm, int ventMsk, int isNewState
static fsm_state_table_entry_t port_rx_setup_fsm_states[] =
{
{ .state=HAL_PORT_RX_SETUP_STATE_INIT,
.stateName="INIT",
FSM_SET_FCT_NAME(_hal_port_rx_setup_state_init)
},
{ .state=HAL_PORT_RX_SETUP_STATE_START,
.stateName="START",
FSM_SET_FCT_NAME(_hal_port_rx_setup_state_start)
......@@ -110,6 +115,35 @@ static inline void updatePllState(struct hal_port_state * ps) {
rts_get_state(&_pll_state);
}
/* INIT state
* (Hypothesis: LPDC support has already been determined before )
*
* This state is used to start the minCalib RX timer
*/
static int _hal_port_rx_setup_state_init(fsm_t *fsm, int eventMsk, int isNewState) {
struct hal_port_state * ps = (struct hal_port_state*) fsm->priv;
if ( ps->lpdc.globalLpdc->numberOfLpdcPorts ) {
if ( !ps->lpdc.rebootDone ) {
/**
* This time-out is used to impose the same minimum of RX calibration time
* on all ports (including port without LPDC. This is done to try to have
* all ports going to state UP at the same time after a reboot.
* It is is not done, PPSi (with BMCA) will take a long time to stabilize
* its port states
*/
libwr_tmo_init(&ps->lpdc.minCalibRx_timeout,20000,0); // Timeout set to 20s
}
} else {
/** No LCPD ports. We don't need to try synchronize the ports */
ps->lpdc.rebootDone=1;
}
fsm_fire_state(fsm, HAL_PORT_RX_SETUP_STATE_START);
return 0;
}
/* START state
* (Hypothesis: LPDC support has already been determined before )
*
......@@ -298,8 +332,7 @@ static int _hal_port_rx_setup_state_restart(fsm_t *fsm, int eventMsk, int isNewS
*
*/
static int _hal_port_rx_setup_state_done(fsm_t *fsm, int eventMsk, int isNewState) {
struct hal_port_state * ps = (struct hal_port_state*) fsm->priv;
struct hal_port_state * ps = (struct hal_port_state*) fsm->priv;
int early_up = _isHalRxSetupEventEarlyLinkUp(eventMsk);
int link_up = _isHalRxSetupEventLinkUp(eventMsk);
......@@ -328,6 +361,11 @@ static int _hal_port_rx_setup_state_done(fsm_t *fsm, int eventMsk, int isNewStat
}
}
if ( !ps->lpdc.rebootDone ) {
if ( libwr_tmo_expired(&ps->lpdc.minCalibRx_timeout) )
ps->lpdc.rebootDone=1;
return link_up && ps->lpdc.rebootDone ? 1 : 0;
}
return link_up ? 1 : 0;
}
......@@ -408,7 +446,7 @@ void hal_port_rx_setup_fsm_init(struct hal_port_state * ps ) {
libwr_tmo_init(&rxSetup->align_timeout, 1, 1);
}
fsm_fire_state( &ps->lpdc.rxSetupFSM, HAL_PORT_RX_SETUP_STATE_START );
fsm_fire_state( &ps->lpdc.rxSetupFSM, HAL_PORT_RX_SETUP_STATE_INIT );
}
/* FSM state machine for RX setup on a given port
......@@ -424,8 +462,3 @@ int hal_port_rx_setup_fsm_run( struct hal_port_state * ps ) {
return fsm_generic_run( &ps->lpdc.rxSetupFSM );
}
void hal_port_rx_setup_fsm_reset(struct hal_port_state * ps )
{
fsm_set_state( &ps->lpdc.rxSetupFSM, -1 ); // reset state
fsm_fire_state( &ps->lpdc.rxSetupFSM, HAL_PORT_RX_SETUP_STATE_START );
}
......@@ -14,7 +14,8 @@
#include <libwr/generic_fsm.h>
typedef enum {
HAL_PORT_RX_SETUP_STATE_START=0,
HAL_PORT_RX_SETUP_STATE_INIT=0,
HAL_PORT_RX_SETUP_STATE_START,
HAL_PORT_RX_SETUP_STATE_RESET_PCS,
HAL_PORT_RX_SETUP_STATE_WAIT_LOCK,
HAL_PORT_RX_SETUP_STATE_VALIDATE,
......
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
<sgraph:Statechart xmi:id="_ZzvGUOW2Eemz3sNhLSa3gA" specification="@EventDriven&#xA;// Use the event driven execution model.&#xA;// Runs a run-to-completion step&#xA;// each time an event is raised.&#xA;// Switch to cycle based behavior&#xA;// by specifying '@CycleBased(200)'&#xA;// instead.&#xA;&#xA;@ChildFirstExecution&#xA;// In composite states, execute&#xA;// child states first.&#xA;// @ParentFirstExecution does the opposite.&#xA;&#xA;import: &quot;hal.h&quot;&#xA;&#xA;// Common interface&#xA;interface :&#xA;&#x9;in event timer&#xA;&#x9;var sfpPresent:Boolean&#xA;&#x9;var powerDown:Boolean&#xA;&#x9;var linkUp:Boolean&#xA;&#x9;var earlyLkUp:Boolean&#xA;&#x9;var reset:Boolean&#xA;&#x9;var lpdcSupport : Boolean&#xA;&#xA;interface port:&#xA;&#x9;var rxCalibrationRunning: Boolean&#xA;&#xA;&#xA;interface pll:&#xA;&#x9;in event lock&#xA;&#x9;in event locked&#xA;&#x9;in event unlocked&#xA;&#x9;in event disable&#xA;&#xA;interface tx :&#xA;&#x9;var locked:Boolean&#xA;&#x9;var validated:Boolean&#xA;&#x9;var txReseted:Boolean&#xA;&#x9;var phaseWithinRange:Boolean&#xA;&#x9;var allPortsCalibrated:Boolean&#xA;&#x9;var calibTmo: timeOut_t&#xA;&#x9;var pmeasDone:Boolean&#xA;&#x9;var calibTmoExpired: Boolean&#xA;&#x9;&#xA;interface rx :&#xA;&#x9;var aligned:Boolean&#xA; &#x9;var calibrationDone:Boolean&#xA; &#x9;var alignTmoExpired:Boolean&#xA; &#x9;var alignTmo:timeOut_t&#xA; &#x9;var linkTmoExpired:Boolean&#xA; &#x9;var linkTmo:timeOut_t&#xA; &#x9;var alignToLinkTmoExpired:Boolean&#xA; &#x9;var alignToLinkTmo:timeOut_t&#xA; &#x9;var restartTmoExpired:Boolean&#xA; &#x9;var restartTmo:timeOut_t&#xA; &#x9;var earlyUpTmo:timeOut_t&#xA; &#x9;var earlyUpTmoExpired:Boolean&#xA; &#x9;var validated:Boolean&#xA; &#x9;var portCalibrated:Boolean&#xA;&#x9;var pmeasDone:Boolean" name="hal_C" domainID="com.yakindu.domain.c">
<sgraph:Statechart xmi:id="_ZzvGUOW2Eemz3sNhLSa3gA" specification="@EventDriven&#xA;// Use the event driven execution model.&#xA;// Runs a run-to-completion step&#xA;// each time an event is raised.&#xA;// Switch to cycle based behavior&#xA;// by specifying '@CycleBased(200)'&#xA;// instead.&#xA;&#xA;@ChildFirstExecution&#xA;// In composite states, execute&#xA;// child states first.&#xA;// @ParentFirstExecution does the opposite.&#xA;&#xA;import: &quot;hal.h&quot;&#xA;&#xA;// Common interface&#xA;interface :&#xA;&#x9;in event timer&#xA;&#x9;var sfpPresent:Boolean&#xA;&#x9;var powerDown:Boolean&#xA;&#x9;var linkUp:Boolean&#xA;&#x9;var earlyLkUp:Boolean&#xA;&#x9;var reset:Boolean&#xA;&#x9;var lpdcSupport : Boolean&#xA;&#xA;interface port:&#xA;&#x9;var rxCalibrationRunning: Boolean&#xA;&#xA;&#xA;interface pll:&#xA;&#x9;in event lock&#xA;&#x9;in event locked&#xA;&#x9;in event unlocked&#xA;&#x9;in event disable&#xA;&#xA;interface tx :&#xA;&#x9;var locked:Boolean&#xA;&#x9;var validated:Boolean&#xA;&#x9;var txReseted:Boolean&#xA;&#x9;var phaseWithinRange:Boolean&#xA;&#x9;var allPortsCalibrated:Boolean&#xA;&#x9;var calibTmo: timeOut_t&#xA;&#x9;var pmeasDone:Boolean&#xA;&#x9;var calibTmoExpired: Boolean&#xA;&#x9;&#xA;interface rx :&#xA;&#x9;var aligned:Boolean&#xA; &#x9;var calibrationDone:Boolean&#xA; &#x9;var alignTmoExpired:Boolean&#xA; &#x9;var alignTmo:timeOut_t&#xA; &#x9;var minCalibTmo:timeOut_t&#xA; &#x9;var minCalibTmoExpired:Boolean&#xA; &#x9;var linkTmoExpired:Boolean&#xA; &#x9;var linkTmo:timeOut_t&#xA; &#x9;var alignToLinkTmoExpired:Boolean&#xA; &#x9;var alignToLinkTmo:timeOut_t&#xA; &#x9;var restartTmoExpired:Boolean&#xA; &#x9;var restartTmo:timeOut_t&#xA; &#x9;var earlyUpTmo:timeOut_t&#xA; &#x9;var earlyUpTmoExpired:Boolean&#xA; &#x9;var validated:Boolean&#xA; &#x9;var portCalibrated:Boolean&#xA;&#x9;var pmeasDone:Boolean" name="hal_C" domainID="com.yakindu.domain.c">
<regions xmi:id="_iQAIAOW2Eemz3sNhLSa3gA" name="Port FSM">
<vertices xsi:type="sgraph:Entry" xmi:id="_iQAIAeW2Eemz3sNhLSa3gA">
<outgoingTransitions xmi:id="_iQAIAuW2Eemz3sNhLSa3gA" specification="" target="_iQAIA-W2Eemz3sNhLSa3gA"/>
......@@ -66,14 +66,13 @@
<outgoingTransitions xmi:id="_iQDyYeW2Eemz3sNhLSa3gA" specification="#LINK_UP_PORT_RX_CALIBRATED >" target="_iQCkVeW2Eemz3sNhLSa3gA"/>
<regions xmi:id="_iQDyY-W2Eemz3sNhLSa3gA" name="RX_SETUP">
<vertices xsi:type="sgraph:Entry" xmi:id="_iQDyZOW2Eemz3sNhLSa3gA">
<outgoingTransitions xmi:id="_iQDyZeW2Eemz3sNhLSa3gA" specification="&#xA;" target="_iQDyZuW2Eemz3sNhLSa3gA"/>
<outgoingTransitions xmi:id="_iQDyZeW2Eemz3sNhLSa3gA" specification="&#xA;" target="_vIo_QPGnEemt_N1FuMDczw"/>
</vertices>
<vertices xsi:type="sgraph:State" xmi:id="_iQDyZuW2Eemz3sNhLSa3gA" specification="entry [lpdcSupport==1] / timer_init(rx.earlyUpTmo)&#xA;always[lpdcSupport==1]/&#xA;rx.earlyUpTmoExpired=is_timer_expired(rx.earlyUpTmo)&#xA;always [rx.earlyUpTmoExpired==1]/&#xA;pcs_write(ENABLE_TX + DMTD_SRC_RXRECCLK)&#xA;always[rx.earlyUpTmoExpired==1 &amp;&amp; earlyLkUp==1] / &#xA;rts_disable_ptracker()&#xA;always[rx.earlyUpTmoExpired==1 &amp;&amp; earlyLkUp==0] /&#xA; timer_init(rx.earlyUpTmo)" name="START" incomingTransitions="_iQDyZeW2Eemz3sNhLSa3gA _iQFAgOW2Eemz3sNhLSa3gA _iQFAkuW2Eemz3sNhLSa3gA _NQJJcOXjEemz3sNhLSa3gA">
<outgoingTransitions xmi:id="_iQDyaOW2Eemz3sNhLSa3gA" specification="timer[lpdcSupport==0]" target="_iQDydeW2Eemz3sNhLSa3gA"/>
<vertices xsi:type="sgraph:State" xmi:id="_iQDyZuW2Eemz3sNhLSa3gA" specification="entry [lpdcSupport==1] / timer_init(rx.earlyUpTmo)&#xA;always[lpdcSupport==1]/&#xA;rx.earlyUpTmoExpired=is_timer_expired(rx.earlyUpTmo)&#xA;always [rx.earlyUpTmoExpired==1]/&#xA;pcs_write(ENABLE_TX + DMTD_SRC_RXRECCLK)&#xA;always[rx.earlyUpTmoExpired==1 &amp;&amp; earlyLkUp==1] / &#xA;rts_disable_ptracker()&#xA;always[rx.earlyUpTmoExpired==1 &amp;&amp; earlyLkUp==0] /&#xA; timer_init(rx.earlyUpTmo)" name="START" incomingTransitions="_iQFAgOW2Eemz3sNhLSa3gA _iQFAkuW2Eemz3sNhLSa3gA _NQJJcOXjEemz3sNhLSa3gA __XMcEPGoEemt_N1FuMDczw">
<outgoingTransitions xmi:id="_iQDyb-W2Eemz3sNhLSa3gA" specification="timer[lpdcSupport==1 &amp;&amp; earlyLkUp==1 &amp;&amp; rx.earlyUpTmoExpired==1]" target="_iQEZkOW2Eemz3sNhLSa3gA"/>
</vertices>
<vertices xsi:type="sgraph:State" xmi:id="_iQDydeW2Eemz3sNhLSa3gA" specification="entry [ lpdcSupport==1 ] /&#xA;timer_init(rx.alignToLinkTmo)&#xA;always [lpdcSupport==1 &amp;&amp; earlyLkUp==1] /&#xA;rx.alignToLinkTmoExpired=is_timer_expired(rx.alignToLinkTmo)" name="DONE" incomingTransitions="_iQDyaOW2Eemz3sNhLSa3gA _iQDygeW2Eemz3sNhLSa3gA">
<outgoingTransitions xmi:id="_iQDyd-W2Eemz3sNhLSa3gA" specification="timer[linkUp==1]" target="_iQFAh-W2Eemz3sNhLSa3gA"/>
<vertices xsi:type="sgraph:State" xmi:id="_iQDydeW2Eemz3sNhLSa3gA" specification="entry [ lpdcSupport==1 ] /&#xA;timer_init(rx.alignToLinkTmo)&#xA;always [lpdcSupport==1 &amp;&amp; earlyLkUp==1] /&#xA;rx.alignToLinkTmoExpired=is_timer_expired(rx.alignToLinkTmo)" name="DONE" incomingTransitions="_iQDygeW2Eemz3sNhLSa3gA">
<outgoingTransitions xmi:id="_iQDyd-W2Eemz3sNhLSa3gA" specification="timer[linkUp==1 &amp;&amp; rx.minCalibTmoExpired==1]" target="_iQFAh-W2Eemz3sNhLSa3gA"/>
<outgoingTransitions xmi:id="_iQDye-W2Eemz3sNhLSa3gA" specification="timer[lpdcSupport==1 &amp;&amp; (&#xA;&#x9;earlyLkUp==0 || &#xA;&#x9;( linkUp==0 &amp;&amp; rx.alignToLinkTmoExpired==1))]" target="_iQFAiOW2Eemz3sNhLSa3gA"/>
</vertices>
<vertices xsi:type="sgraph:State" xmi:id="_iQDyf-W2Eemz3sNhLSa3gA" specification="always / rx.pmeasDone=meas_phase()&#xA;always [rx.pmeasDone==1] /&#xA;pcs_write(ENABLE_RX+ENABLE_TX+DMTD_SRC_RXRECCLK);&#xA;pcs_write(BMCR_ANENABLE+BMCR_ANRESTART);&#xA;rts_disable_ptracker()&#xA;" name="VALIDATE" incomingTransitions="_iQEZi-W2Eemz3sNhLSa3gA">
......@@ -93,6 +92,9 @@
<vertices xsi:type="sgraph:State" xmi:id="_iQFAiOW2Eemz3sNhLSa3gA" specification="entry / &#xA;timer_init(rx.restartTmo);&#xA;pcs_write(DMTD_SRC_TXOUTCLK)&#xA;always / &#xA;rx.restartTmoExpired=is_timer_expired(rx.restartTmo)" name="RESTART" incomingTransitions="_iQDye-W2Eemz3sNhLSa3gA">
<outgoingTransitions xmi:id="_iQFAkuW2Eemz3sNhLSa3gA" specification="timer[rx.restartTmoExpired==1]" target="_iQDyZuW2Eemz3sNhLSa3gA"/>
</vertices>
<vertices xsi:type="sgraph:State" xmi:id="_vIo_QPGnEemt_N1FuMDczw" specification="entry/&#xA;timer_init(rx.minCalibTmo)&#xA;" name="INIT" incomingTransitions="_iQDyZeW2Eemz3sNhLSa3gA">
<outgoingTransitions xmi:id="__XMcEPGoEemt_N1FuMDczw" specification="timer" target="_iQDyZuW2Eemz3sNhLSa3gA"/>
</vertices>
</regions>
</vertices>
</regions>
......@@ -455,7 +457,7 @@
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9EyeW2Eemz3sNhLSa3gA" fontName="Verdana" fillColor="15053796" lineColor="0"/>
<styles xsi:type="notation:FontStyle" xmi:id="_iP9EyuW2Eemz3sNhLSa3gA"/>
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_iP9Ey-W2Eemz3sNhLSa3gA" name="isHorizontal" booleanValue="true"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9EzOW2Eemz3sNhLSa3gA" x="5" y="38" width="375" height="188"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9EzOW2Eemz3sNhLSa3gA" x="5" y="175" width="375" height="188"/>
</children>
<children xmi:id="_iP9EzeW2Eemz3sNhLSa3gA" type="State" element="_iQDydeW2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="_iP9EzuW2Eemz3sNhLSa3gA" type="StateName">
......@@ -471,7 +473,7 @@
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9E1eW2Eemz3sNhLSa3gA" fontName="Verdana" fillColor="15053796" lineColor="12632256"/>
<styles xsi:type="notation:FontStyle" xmi:id="_iP9E1uW2Eemz3sNhLSa3gA"/>
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_iP9E1-W2Eemz3sNhLSa3gA" name="isHorizontal"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9E2OW2Eemz3sNhLSa3gA" x="540" y="739" width="502" height="98"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9E2OW2Eemz3sNhLSa3gA" x="744" y="871" width="502" height="98"/>
</children>
<children xmi:id="_iP9E2eW2Eemz3sNhLSa3gA" type="State" element="_iQDyf-W2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="_iP9E2uW2Eemz3sNhLSa3gA" type="StateName">
......@@ -487,7 +489,7 @@
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9E4eW2Eemz3sNhLSa3gA" fontName="Verdana" fillColor="15053796" lineColor="0"/>
<styles xsi:type="notation:FontStyle" xmi:id="_iP9E4uW2Eemz3sNhLSa3gA"/>
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_iP9E4-W2Eemz3sNhLSa3gA" name="isHorizontal" booleanValue="true"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9E5OW2Eemz3sNhLSa3gA" x="744" y="355" width="450" height="186"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9E5OW2Eemz3sNhLSa3gA" x="744" y="492" width="450" height="186"/>
</children>
<children xmi:id="_iP9E5eW2Eemz3sNhLSa3gA" type="State" element="_iQEZe-W2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="_iP9E5uW2Eemz3sNhLSa3gA" type="StateName">
......@@ -503,7 +505,7 @@
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9E7eW2Eemz3sNhLSa3gA" fontName="Verdana" fillColor="15053796" lineColor="0"/>
<styles xsi:type="notation:FontStyle" xmi:id="_iP9E7uW2Eemz3sNhLSa3gA"/>
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_iP9E7-W2Eemz3sNhLSa3gA" name="isHorizontal" booleanValue="true"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9E8OW2Eemz3sNhLSa3gA" x="240" y="355" width="354" height="218"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9E8OW2Eemz3sNhLSa3gA" x="240" y="492" width="354" height="218"/>
</children>
<children xmi:id="_iP9E8eW2Eemz3sNhLSa3gA" type="State" element="_iQEZkOW2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="_iP9E8uW2Eemz3sNhLSa3gA" type="StateName">
......@@ -519,7 +521,7 @@
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9E-eW2Eemz3sNhLSa3gA" fontName="Verdana" fillColor="15053796" lineColor="0"/>
<styles xsi:type="notation:FontStyle" xmi:id="_iP9E-uW2Eemz3sNhLSa3gA"/>
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_iP9E--W2Eemz3sNhLSa3gA" name="isHorizontal" booleanValue="true"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9E_OW2Eemz3sNhLSa3gA" x="576" y="38" width="385" height="173"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9E_OW2Eemz3sNhLSa3gA" x="576" y="175" width="385" height="173"/>
</children>
<children xmi:id="_iP9E_eW2Eemz3sNhLSa3gA" type="Exit" element="_iQFAh-W2Eemz3sNhLSa3gA">
<children xmi:id="_iP9E_uW2Eemz3sNhLSa3gA" type="BorderItemLabelContainer">
......@@ -528,10 +530,10 @@
<layoutConstraint xsi:type="notation:Location" xmi:id="_iP9FAeW2Eemz3sNhLSa3gA"/>
</children>
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9FAuW2Eemz3sNhLSa3gA" fontName="Verdana" lineColor="4210752"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9FA-W2Eemz3sNhLSa3gA" x="-194" y="2"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9FA-W2Eemz3sNhLSa3gA" x="19" y="2"/>
</children>
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9FBOW2Eemz3sNhLSa3gA" fontName="Verdana" lineColor="4210752"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9FBeW2Eemz3sNhLSa3gA" x="888" y="883"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9FBeW2Eemz3sNhLSa3gA" x="985" y="1063"/>
</children>
<children xmi:id="_iP9FBuW2Eemz3sNhLSa3gA" type="State" element="_iQFAiOW2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="_iP9FB-W2Eemz3sNhLSa3gA" type="StateName">
......@@ -547,16 +549,32 @@
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9FDuW2Eemz3sNhLSa3gA" fontName="Verdana" fillColor="15053796" lineColor="12632256"/>
<styles xsi:type="notation:FontStyle" xmi:id="_iP9FD-W2Eemz3sNhLSa3gA"/>
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_iP9FEOW2Eemz3sNhLSa3gA" name="isHorizontal"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9FEeW2Eemz3sNhLSa3gA" x="180" y="631" width="268" height="90"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9FEeW2Eemz3sNhLSa3gA" x="180" y="768" width="268" height="90"/>
</children>
<children xmi:id="_vIoYMPGnEemt_N1FuMDczw" type="State" element="_vIo_QPGnEemt_N1FuMDczw">
<children xsi:type="notation:DecorationNode" xmi:id="_vIoYMfGnEemt_N1FuMDczw" type="StateName">
<styles xsi:type="notation:ShapeStyle" xmi:id="_vIoYMvGnEemt_N1FuMDczw" fillColor="15053796"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="_vIoYM_GnEemt_N1FuMDczw"/>
</children>
<children xsi:type="notation:Compartment" xmi:id="_vIoYNPGnEemt_N1FuMDczw" type="StateTextCompartment">
<children xsi:type="notation:Shape" xmi:id="_vIoYNfGnEemt_N1FuMDczw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_vIoYNvGnEemt_N1FuMDczw"/>
</children>
</children>
<children xsi:type="notation:Compartment" xmi:id="_vIoYN_GnEemt_N1FuMDczw" type="StateFigureCompartment"/>
<styles xsi:type="notation:ShapeStyle" xmi:id="_vIoYOPGnEemt_N1FuMDczw" fontName="Verdana" fillColor="15053796" lineColor="12632256"/>
<styles xsi:type="notation:FontStyle" xmi:id="_vIoYOfGnEemt_N1FuMDczw"/>
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_vIoYOvGnEemt_N1FuMDczw" name="isHorizontal"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_vIoYO_GnEemt_N1FuMDczw" x="108" y="7" width="236" height="83"/>
</children>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9FEuW2Eemz3sNhLSa3gA"/>
</children>
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9FE-W2Eemz3sNhLSa3gA" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9FFOW2Eemz3sNhLSa3gA" width="1231" height="955"/>
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_iP9FFOW2Eemz3sNhLSa3gA" width="1295" height="1192"/>
</children>
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_iP9FFeW2Eemz3sNhLSa3gA" name="inlineDefinitionSection"/>
<styles xsi:type="notation:DiagramStyle" xmi:id="_iP9FFuW2Eemz3sNhLSa3gA"/>
<edges xmi:id="_iP9FF-W2Eemz3sNhLSa3gA" type="Transition" element="_iQDyZeW2Eemz3sNhLSa3gA" source="_iP9Et-W2Eemz3sNhLSa3gA" target="_iP9EweW2Eemz3sNhLSa3gA">
<edges xmi:id="_iP9FF-W2Eemz3sNhLSa3gA" type="Transition" element="_iQDyZeW2Eemz3sNhLSa3gA" source="_iP9Et-W2Eemz3sNhLSa3gA" target="_vIoYMPGnEemt_N1FuMDczw">
<children xsi:type="notation:DecorationNode" xmi:id="_iP9FGOW2Eemz3sNhLSa3gA" type="TransitionExpression">
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9FGeW2Eemz3sNhLSa3gA"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="_iP9FGuW2Eemz3sNhLSa3gA" x="-17" y="-92"/>
......@@ -565,18 +583,7 @@
<styles xsi:type="notation:FontStyle" xmi:id="_iP9FHOW2Eemz3sNhLSa3gA" fontName="Verdana"/>
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_iP9FHeW2Eemz3sNhLSa3gA" points="[5, 4, -38, -30]$[44, 58, 1, 24]"/>
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_iP9FHuW2Eemz3sNhLSa3gA" id="(0.5,0.5)"/>
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_iP9FH-W2Eemz3sNhLSa3gA" id="(0.0026095060577819187,0.14406358668653746)"/>
</edges>
<edges xmi:id="_iP9FIOW2Eemz3sNhLSa3gA" type="Transition" element="_iQDyaOW2Eemz3sNhLSa3gA" source="_iP9EweW2Eemz3sNhLSa3gA" target="_iP9EzeW2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="_iP9FIeW2Eemz3sNhLSa3gA" type="TransitionExpression">
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9FIuW2Eemz3sNhLSa3gA"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="_iP9FI-W2Eemz3sNhLSa3gA" x="27" y="-390"/>
</children>
<styles xsi:type="notation:ConnectorStyle" xmi:id="_iP9FJOW2Eemz3sNhLSa3gA" routing="Rectilinear" lineColor="4210752"/>
<styles xsi:type="notation:FontStyle" xmi:id="_iP9FJeW2Eemz3sNhLSa3gA" fontName="Verdana"/>
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_iP9FJuW2Eemz3sNhLSa3gA" points="[13, 135, -832, -521]$[13, 713, -832, 57]$[517, 713, -328, 57]"/>
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_iP9FJ-W2Eemz3sNhLSa3gA" id="(0.049227799227799234,0.26328862394436164)"/>
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_iP9FKOW2Eemz3sNhLSa3gA" id="(0.6602578433564349,0.0389531345100426)"/>
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_iP9FH-W2Eemz3sNhLSa3gA" id="(0.0847457627118644,0.5542168674698795)"/>
</edges>
<edges xmi:id="_iP9FKeW2Eemz3sNhLSa3gA" type="Transition" element="_iQDyb-W2Eemz3sNhLSa3gA" source="_iP9EweW2Eemz3sNhLSa3gA" target="_iP9E8eW2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="_iP9FKuW2Eemz3sNhLSa3gA" type="TransitionExpression">
......@@ -614,7 +621,7 @@
<edges xmi:id="_iP9FTeW2Eemz3sNhLSa3gA" type="Transition" element="_iQDygeW2Eemz3sNhLSa3gA" source="_iP9E2eW2Eemz3sNhLSa3gA" target="_iP9EzeW2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="_iP9FTuW2Eemz3sNhLSa3gA" type="TransitionExpression">
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9FT-W2Eemz3sNhLSa3gA"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="_iP9FUOW2Eemz3sNhLSa3gA" x="-136" y="42"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="_iP9FUOW2Eemz3sNhLSa3gA" x="46" y="-25"/>
</children>
<styles xsi:type="notation:ConnectorStyle" xmi:id="_iP9FUeW2Eemz3sNhLSa3gA" routing="Rectilinear" lineColor="4210752"/>
<styles xsi:type="notation:FontStyle" xmi:id="_iP9FUuW2Eemz3sNhLSa3gA" fontName="Verdana"/>
......@@ -658,33 +665,33 @@
<edges xmi:id="_iP9FceW2Eemz3sNhLSa3gA" type="Transition" element="_iQFAkuW2Eemz3sNhLSa3gA" source="_iP9FBuW2Eemz3sNhLSa3gA" target="_iP9EweW2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="_iP9FcuW2Eemz3sNhLSa3gA" type="TransitionExpression">
<styles xsi:type="notation:ShapeStyle" xmi:id="_iP9Fc-W2Eemz3sNhLSa3gA"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="_iP9FdOW2Eemz3sNhLSa3gA" x="-132" y="64"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="_iP9FdOW2Eemz3sNhLSa3gA" x="-96" y="136"/>
</children>
<styles xsi:type="notation:ConnectorStyle" xmi:id="_iP9FdeW2Eemz3sNhLSa3gA" routing="Rectilinear" lineColor="4210752"/>
<styles xsi:type="notation:FontStyle" xmi:id="_iP9FduW2Eemz3sNhLSa3gA" fontName="Verdana"/>
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_iP9Fd-W2Eemz3sNhLSa3gA" points="[-81, -8, 117, 594]$[-153, -8, 45, 594]$[-153, -460, 45, 142]"/>
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_iP9Fd-W2Eemz3sNhLSa3gA" points="[-81, -8, 117, 594]$[-225, -8, -27, 594]$[-225, -460, -27, 142]"/>
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_iP9FeOW2Eemz3sNhLSa3gA" id="(0.30988593155893535,0.5882352941176471)"/>
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_iP9FeeW2Eemz3sNhLSa3gA" id="(0.1573644650567727,0.22851465474416296)"/>
</edges>
<edges xmi:id="_iQHc2-W2Eemz3sNhLSa3gA" type="Transition" element="_iQDyd-W2Eemz3sNhLSa3gA" source="_iP9EzeW2Eemz3sNhLSa3gA" target="_iP9E_eW2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="_iQHc3OW2Eemz3sNhLSa3gA" type="TransitionExpression">
<styles xsi:type="notation:ShapeStyle" xmi:id="_iQHc3eW2Eemz3sNhLSa3gA"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="_iQHc3uW2Eemz3sNhLSa3gA" x="-3" y="-67"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="_iQHc3uW2Eemz3sNhLSa3gA" x="133" y="-46"/>
</children>
<styles xsi:type="notation:ConnectorStyle" xmi:id="_iQHc3-W2Eemz3sNhLSa3gA" routing="Rectilinear" lineColor="4210752"/>
<styles xsi:type="notation:FontStyle" xmi:id="_iQHc4OW2Eemz3sNhLSa3gA" fontName="Verdana"/>
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_iQHc4eW2Eemz3sNhLSa3gA" points="[26, 65, 0, -53]$[26, 117, 0, -1]"/>
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_iQHc4uW2Eemz3sNhLSa3gA" id="(0.6524335200391538,0.3018867924528301)"/>
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_iQHc4eW2Eemz3sNhLSa3gA" points="[-73, 2, -159, -101]$[-73, 111, -159, 8]$[84, 111, -2, 8]"/>
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_iQHc4uW2Eemz3sNhLSa3gA" id="(0.31673306772908366,0.9795918367346939)"/>
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_iQHc4-W2Eemz3sNhLSa3gA" id="(0.1617785113724334,0.14749012709272044)"/>
</edges>
<edges xmi:id="_NQK-oOXjEemz3sNhLSa3gA" type="Transition" element="_NQJJcOXjEemz3sNhLSa3gA" source="_iP9E5eW2Eemz3sNhLSa3gA" target="_iP9EweW2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="_NQK-pOXjEemz3sNhLSa3gA" type="TransitionExpression">
<styles xsi:type="notation:ShapeStyle" xmi:id="_NQK-peXjEemz3sNhLSa3gA"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="_NQK-puXjEemz3sNhLSa3gA" x="72" y="52"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="_NQK-puXjEemz3sNhLSa3gA" x="85" y="65"/>
</children>
<styles xsi:type="notation:ConnectorStyle" xmi:id="_NQK-oeXjEemz3sNhLSa3gA" routing="Rectilinear" lineColor="4210752"/>
<styles xsi:type="notation:FontStyle" xmi:id="_NQK-o-XjEemz3sNhLSa3gA" fontName="Verdana"/>
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_NQK-ouXjEemz3sNhLSa3gA" points="[-176, -100, 82, 239]$[-248, -100, 10, 239]$[-248, -333, 10, 6]"/>
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_NQK-ouXjEemz3sNhLSa3gA" points="[-176, -118, 142, 257]$[-320, -118, -2, 257]$[-320, -339, -2, 36]"/>
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_NQQeMOXjEemz3sNhLSa3gA" id="(0.5069022306724154,0.9624413145539906)"/>
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_NQQeMeXjEemz3sNhLSa3gA" id="(0.2532964231077439,0.8043162481842706)"/>
</edges>
......@@ -699,6 +706,17 @@
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_hiDG8OXkEemz3sNhLSa3gA" id="(0.13309723375197494,0.0)"/>
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_hiDG8eXkEemz3sNhLSa3gA" id="(0.0,0.5664739884393064)"/>
</edges>
<edges xmi:id="__XNqMPGoEemt_N1FuMDczw" type="Transition" element="__XMcEPGoEemt_N1FuMDczw" source="_vIoYMPGnEemt_N1FuMDczw" target="_iP9EweW2Eemz3sNhLSa3gA">
<children xsi:type="notation:DecorationNode" xmi:id="__XORQfGoEemt_N1FuMDczw" type="TransitionExpression">
<styles xsi:type="notation:ShapeStyle" xmi:id="__XORQvGoEemt_N1FuMDczw"/>
<layoutConstraint xsi:type="notation:Location" xmi:id="__XORQ_GoEemt_N1FuMDczw" x="24" y="-20"/>
</children>
<styles xsi:type="notation:ConnectorStyle" xmi:id="__XNqMfGoEemt_N1FuMDczw" routing="Rectilinear" lineColor="4210752"/>
<styles xsi:type="notation:FontStyle" xmi:id="__XORQPGoEemt_N1FuMDczw" fontName="Verdana"/>
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="__XNqMvGoEemt_N1FuMDczw" points="[-61, 23, 247, -91]$[-307, 113, 1, -1]"/>
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="__XQGcPGoEemt_N1FuMDczw" id="(0.0211864406779661,0.7831325301204819)"/>
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="__XQGcfGoEemt_N1FuMDczw" id="(0.072,0.010638297872340425)"/>
</edges>
</notation:Diagram>
<notation:Diagram xmi:id="_iP-S0OW2Eemz3sNhLSa3gA" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_iQAIA-W2Eemz3sNhLSa3gA" measurementUnit="Pixel">
<children xmi:id="_iP-S0eW2Eemz3sNhLSa3gA" type="Region" element="_iQAvEeW2Eemz3sNhLSa3gA">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment