CORDET Framework - C2 Implementation
CrPsCmd5EidStartCreate.c
Go to the documentation of this file.
1 
23 #include "CrPsCmd5EidStartCreate.h"
24 
26 #include "FwPrDCreate.h"
27 #include "FwPrConfig.h"
28 #include "CrFwConstants.h"
29 
31 #include <stdlib.h>
32 
34 FwPrBool_t CrPsCmd5EidStartG1E(FwPrDesc_t prDesc)
35 {
36  CRFW_UNUSED(prDesc);
37  return 1;
38 }
39 
41 FwPrBool_t CrPsCmd5EidStartG2E(FwPrDesc_t prDesc)
42 {
43  CRFW_UNUSED(prDesc);
44  return 1;
45 }
46 
48 FwPrBool_t CrPsCmd5EidStartG3E(FwPrDesc_t prDesc)
49 {
50  CRFW_UNUSED(prDesc);
51  return 1;
52 }
53 
54 /* ----------------------------------------------------------------------------------------------------------------- */
55 FwPrDesc_t CrPsCmd5EidStartCreate(void* prData)
56 {
57  const FwPrCounterU2_t DECISION1 = 1; /* The identifier of decision node DECISION1 in procedure CrPsCmd5EidStart */
58  const FwPrCounterU2_t N_OUT_OF_DECISION1 = 2; /* The number of control flows out of decision node DECISION1 in procedure CrPsCmd5EidStart */
59  const FwPrCounterU2_t DECISION3 = 2; /* The identifier of decision node DECISION3 in procedure CrPsCmd5EidStart */
60  const FwPrCounterU2_t N_OUT_OF_DECISION3 = 2; /* The number of control flows out of decision node DECISION3 in procedure CrPsCmd5EidStart */
61  const FwPrCounterU2_t DECISION4 = 3; /* The identifier of decision node DECISION4 in procedure CrPsCmd5EidStart */
62  const FwPrCounterU2_t N_OUT_OF_DECISION4 = 2; /* The number of control flows out of decision node DECISION4 in procedure CrPsCmd5EidStart */
63 
65  FwPrDesc_t prDesc = FwPrCreate(
66  6, /* N_ANODES - The number of action nodes */
67  3, /* N_DNODES - The number of decision nodes */
68  13, /* N_FLOWS - The number of control flows */
69  6, /* N_ACTIONS - The number of actions */
70  6 /* N_GUARDS - The number of guards */
71  );
72 
74  FwPrSetData(prDesc, prData);
75  FwPrAddActionNode(prDesc, CrPsCmd5EidStart_N4, &CrPsCmd5EidStartN4);
76  FwPrAddActionNode(prDesc, CrPsCmd5EidStart_N1, &CrPsCmd5EidStartN1);
77  FwPrAddDecisionNode(prDesc, DECISION1, N_OUT_OF_DECISION1);
78  FwPrAddActionNode(prDesc, CrPsCmd5EidStart_N2, &CrPsCmd5EidStartN2);
79  FwPrAddActionNode(prDesc, CrPsCmd5EidStart_N3, &CrPsCmd5EidStartN3);
80  FwPrAddDecisionNode(prDesc, DECISION3, N_OUT_OF_DECISION3);
81  FwPrAddDecisionNode(prDesc, DECISION4, N_OUT_OF_DECISION4);
82  FwPrAddActionNode(prDesc, CrPsCmd5EidStart_N7, &CrPsCmd5EidStartN7);
83  FwPrAddActionNode(prDesc, CrPsCmd5EidStart_N8, &CrPsCmd5EidStartN8);
84  FwPrAddFlowIniToAct(prDesc, CrPsCmd5EidStart_N1, NULL);
85  FwPrAddFlowActToDec(prDesc, CrPsCmd5EidStart_N4, DECISION1, NULL);
86  FwPrAddFlowActToDec(prDesc, CrPsCmd5EidStart_N1, DECISION1, NULL);
87  FwPrAddFlowDecToAct(prDesc, DECISION1, CrPsCmd5EidStart_N2, &CrPsCmd5EidStartG1);
88  FwPrAddFlowDecToDec(prDesc, DECISION1, DECISION3, &CrPsCmd5EidStartG1E);
89  FwPrAddFlowActToAct(prDesc, CrPsCmd5EidStart_N2, CrPsCmd5EidStart_N3, NULL);
90  FwPrAddFlowActToDec(prDesc, CrPsCmd5EidStart_N3, DECISION3, NULL);
91  FwPrAddFlowDecToDec(prDesc, DECISION3, DECISION4, &CrPsCmd5EidStartG2);
92  FwPrAddFlowDecToAct(prDesc, DECISION3, CrPsCmd5EidStart_N4, &CrPsCmd5EidStartG2E);
93  FwPrAddFlowDecToAct(prDesc, DECISION4, CrPsCmd5EidStart_N8, &CrPsCmd5EidStartG3);
94  FwPrAddFlowDecToAct(prDesc, DECISION4, CrPsCmd5EidStart_N7, &CrPsCmd5EidStartG3E);
95  FwPrAddFlowActToFin(prDesc, CrPsCmd5EidStart_N7, NULL);
96  FwPrAddFlowActToFin(prDesc, CrPsCmd5EidStart_N8, NULL);
97 
98  return prDesc;
99 }
FwPrBool_t CrPsCmd5EidStartG2E(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION3 to N4.
Create one instance of the CrPsCmd5EidStart procedure.
#define CRFW_UNUSED(x)
A macro that can be used to specify that a function parameter is not used.
Definition: CrFwConstants.h:27
FwPrBool_t CrPsCmd5EidStartG1(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION1 to N2.
Header file to define all invariant publicly available constants and types for the CORDET Framework...
void CrPsCmd5EidStartN2(FwPrDesc_t prDesc)
Action for node N2.
void CrPsCmd5EidStartN7(FwPrDesc_t prDesc)
Action for node N7.
void CrPsCmd5EidStartN8(FwPrDesc_t prDesc)
Action for node N8.
FwPrBool_t CrPsCmd5EidStartG1E(FwPrDesc_t prDesc)
FW Profile function definitions.
FwPrBool_t CrPsCmd5EidStartG2(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION3 to DECISION4.
#define CrPsCmd5EidStart_N1
Make sure to include this header file only once.
FwPrBool_t CrPsCmd5EidStartG3E(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION4 to N7.
void CrPsCmd5EidStartN4(FwPrDesc_t prDesc)
Action for node N4.
FwPrDesc_t CrPsCmd5EidStartCreate(void *prData)
Create a new procedure descriptor.
FwPrBool_t CrPsCmd5EidStartG3(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION4 to N8.
void CrPsCmd5EidStartN3(FwPrDesc_t prDesc)
Action for node N3.
void CrPsCmd5EidStartN1(FwPrDesc_t prDesc)
Action for node N1.
P&P Software GmbH, Copyright 2012-2013, All Rights Reserved