CORDET Framework - C2 Implementation
CrPsCmd3SidStartCreate.c
Go to the documentation of this file.
1 
24 #include "CrPsCmd3SidStartCreate.h"
25 
27 #include "CrFwConstants.h"
28 
30 #include "FwPrDCreate.h"
31 #include "FwPrConfig.h"
32 
34 #include <stdlib.h>
35 
37 FwPrBool_t CrPsCmd3SidStartG1E(FwPrDesc_t prDesc)
38 {
39  CRFW_UNUSED(prDesc);
40  return 1;
41 }
42 
44 FwPrBool_t CrPsCmd3SidStartG2E(FwPrDesc_t prDesc)
45 {
46  CRFW_UNUSED(prDesc);
47  return 1;
48 }
49 
51 FwPrBool_t CrPsCmd3SidStartG3E(FwPrDesc_t prDesc)
52 {
53  CRFW_UNUSED(prDesc);
54  return 1;
55 }
56 
57 /* ----------------------------------------------------------------------------------------------------------------- */
58 FwPrDesc_t CrPsCmd3SidStartCreate(void* prData)
59 {
60  const FwPrCounterU2_t DECISION1 = 1; /* The identifier of decision node DECISION1 in procedure CrPsCmd3SidStart */
61  const FwPrCounterU2_t N_OUT_OF_DECISION1 = 2; /* The number of control flows out of decision node DECISION1 in procedure CrPsCmd3SidStart */
62  const FwPrCounterU2_t DECISION3 = 2; /* The identifier of decision node DECISION3 in procedure CrPsCmd3SidStart */
63  const FwPrCounterU2_t N_OUT_OF_DECISION3 = 2; /* The number of control flows out of decision node DECISION3 in procedure CrPsCmd3SidStart */
64  const FwPrCounterU2_t DECISION4 = 3; /* The identifier of decision node DECISION4 in procedure CrPsCmd3SidStart */
65  const FwPrCounterU2_t N_OUT_OF_DECISION4 = 2; /* The number of control flows out of decision node DECISION4 in procedure CrPsCmd3SidStart */
66 
68  FwPrDesc_t prDesc = FwPrCreate(
69  6, /* N_ANODES - The number of action nodes */
70  3, /* N_DNODES - The number of decision nodes */
71  13, /* N_FLOWS - The number of control flows */
72  6, /* N_ACTIONS - The number of actions */
73  6 /* N_GUARDS - The number of guards */
74  );
75 
77  FwPrSetData(prDesc, prData);
78  FwPrAddActionNode(prDesc, CrPsCmd3SidStart_N4, &CrPsCmd3SidStartN4);
79  FwPrAddActionNode(prDesc, CrPsCmd3SidStart_N1, &CrPsCmd3SidStartN1);
80  FwPrAddDecisionNode(prDesc, DECISION1, N_OUT_OF_DECISION1);
81  FwPrAddActionNode(prDesc, CrPsCmd3SidStart_N2, &CrPsCmd3SidStartN2);
82  FwPrAddActionNode(prDesc, CrPsCmd3SidStart_N3, &CrPsCmd3SidStartN3);
83  FwPrAddDecisionNode(prDesc, DECISION3, N_OUT_OF_DECISION3);
84  FwPrAddDecisionNode(prDesc, DECISION4, N_OUT_OF_DECISION4);
85  FwPrAddActionNode(prDesc, CrPsCmd3SidStart_N7, &CrPsCmd3SidStartN7);
86  FwPrAddActionNode(prDesc, CrPsCmd3SidStart_N8, &CrPsCmd3SidStartN8);
87  FwPrAddFlowIniToAct(prDesc, CrPsCmd3SidStart_N1, NULL);
88  FwPrAddFlowActToDec(prDesc, CrPsCmd3SidStart_N4, DECISION1, NULL);
89  FwPrAddFlowActToDec(prDesc, CrPsCmd3SidStart_N1, DECISION1, NULL);
90  FwPrAddFlowDecToAct(prDesc, DECISION1, CrPsCmd3SidStart_N2, &CrPsCmd3SidStartG1);
91  FwPrAddFlowDecToDec(prDesc, DECISION1, DECISION3, &CrPsCmd3SidStartG1E);
92  FwPrAddFlowActToAct(prDesc, CrPsCmd3SidStart_N2, CrPsCmd3SidStart_N3, NULL);
93  FwPrAddFlowActToDec(prDesc, CrPsCmd3SidStart_N3, DECISION3, NULL);
94  FwPrAddFlowDecToDec(prDesc, DECISION3, DECISION4, &CrPsCmd3SidStartG2);
95  FwPrAddFlowDecToAct(prDesc, DECISION3, CrPsCmd3SidStart_N4, &CrPsCmd3SidStartG2E);
96  FwPrAddFlowDecToAct(prDesc, DECISION4, CrPsCmd3SidStart_N8, &CrPsCmd3SidStartG3);
97  FwPrAddFlowDecToAct(prDesc, DECISION4, CrPsCmd3SidStart_N7, &CrPsCmd3SidStartG3E);
98  FwPrAddFlowActToFin(prDesc, CrPsCmd3SidStart_N7, NULL);
99  FwPrAddFlowActToFin(prDesc, CrPsCmd3SidStart_N8, NULL);
100 
101  return prDesc;
102 }
void CrPsCmd3SidStartN1(FwPrDesc_t prDesc)
Action for node N1.
#define CRFW_UNUSED(x)
A macro that can be used to specify that a function parameter is not used.
Definition: CrFwConstants.h:27
Create one instance of the CrPsCmd3SidStart procedure.
FwPrBool_t CrPsCmd3SidStartG3E(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION4 to N7.
Header file to define all invariant publicly available constants and types for the CORDET Framework...
FwPrBool_t CrPsCmd3SidStartG2E(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION3 to N4.
void CrPsCmd3SidStartN7(FwPrDesc_t prDesc)
Action for node N7.
FwPrBool_t CrPsCmd3SidStartG1(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION1 to N2.
FwPrBool_t CrPsCmd3SidStartG3(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION4 to N8.
FwPrBool_t CrPsCmd3SidStartG2(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION3 to DECISION4.
void CrPsCmd3SidStartN4(FwPrDesc_t prDesc)
Action for node N4.
void CrPsCmd3SidStartN2(FwPrDesc_t prDesc)
Action for node N2.
void CrPsCmd3SidStartN3(FwPrDesc_t prDesc)
Action for node N3.
FwPrDesc_t CrPsCmd3SidStartCreate(void *prData)
Create a new procedure descriptor.
#define CrPsCmd3SidStart_N1
Make sure to include this header file only once.
FwPrBool_t CrPsCmd3SidStartG1E(FwPrDesc_t prDesc)
CR Framework function definitions.
void CrPsCmd3SidStartN8(FwPrDesc_t prDesc)
Action for node N8.
P&P Software GmbH, Copyright 2012-2013, All Rights Reserved