CORDET Framework - C2 Implementation
CrPsCmd3s9PrgrCreate.c
Go to the documentation of this file.
1 
24 #include "CrPsCmd3s9PrgrCreate.h"
25 
27 #include "CrFwConstants.h"
28 
30 #include "FwPrDCreate.h"
31 #include "FwPrConfig.h"
32 
34 #include <stdlib.h>
35 
36 
38 FwPrBool_t CrPsCmd3s9PrgrG1E(FwPrDesc_t prDesc)
39 {
40  CRFW_UNUSED(prDesc);
41  return 1;
42 }
43 
45 FwPrBool_t CrPsCmd3s9PrgrG2E(FwPrDesc_t prDesc)
46 {
47  CRFW_UNUSED(prDesc);
48  return 1;
49 }
50 
51 /* ----------------------------------------------------------------------------------------------------------------- */
52 FwPrDesc_t CrPsCmd3s9PrgrCreate(void* prData)
53 {
54  const FwPrCounterU2_t DECISION1 = 1; /* The identifier of decision node DECISION1 in procedure CrPsCmd3s9Prgr */
55  const FwPrCounterU2_t N_OUT_OF_DECISION1 = 2; /* The number of control flows out of decision node DECISION1 in procedure CrPsCmd3s9Prgr */
56  const FwPrCounterU2_t DECISION2 = 2; /* The identifier of decision node DECISION2 in procedure CrPsCmd3s9Prgr */
57  const FwPrCounterU2_t N_OUT_OF_DECISION2 = 2; /* The number of control flows out of decision node DECISION2 in procedure CrPsCmd3s9Prgr */
58 
60  FwPrDesc_t prDesc = FwPrCreate(
61  9, /* N_ANODES - The number of action nodes */
62  2, /* N_DNODES - The number of decision nodes */
63  14, /* N_FLOWS - The number of control flows */
64  9, /* N_ACTIONS - The number of actions */
65  5 /* N_GUARDS - The number of guards */
66  );
67 
69  FwPrSetData(prDesc, prData);
70  FwPrAddActionNode(prDesc, CrPsCmd3s9Prgr_N1, &CrPsCmd3s9PrgrN1);
71  FwPrAddDecisionNode(prDesc, DECISION1, N_OUT_OF_DECISION1);
72  FwPrAddActionNode(prDesc, CrPsCmd3s9Prgr_N2, &CrPsCmd3s9PrgrN2);
73  FwPrAddActionNode(prDesc, CrPsCmd3s9Prgr_N3, &CrPsCmd3s9PrgrN3);
74  FwPrAddActionNode(prDesc, CrPsCmd3s9Prgr_N4, &CrPsCmd3s9PrgrN4);
75  FwPrAddActionNode(prDesc, CrPsCmd3s9Prgr_N5, &CrPsCmd3s9PrgrN5);
76  FwPrAddDecisionNode(prDesc, DECISION2, N_OUT_OF_DECISION2);
77  FwPrAddActionNode(prDesc, CrPsCmd3s9Prgr_N6, &CrPsCmd3s9PrgrN6);
78  FwPrAddActionNode(prDesc, CrPsCmd3s9Prgr_N7, &CrPsCmd3s9PrgrN7);
79  FwPrAddActionNode(prDesc, CrPsCmd3s9Prgr_N8, &CrPsCmd3s9PrgrN8);
80  FwPrAddActionNode(prDesc, CrPsCmd3s9Prgr_N9, &CrPsCmd3s9PrgrN9);
81  FwPrAddFlowIniToAct(prDesc, CrPsCmd3s9Prgr_N8, NULL);
82  FwPrAddFlowActToDec(prDesc, CrPsCmd3s9Prgr_N1, DECISION1, NULL);
83  FwPrAddFlowDecToAct(prDesc, DECISION1, CrPsCmd3s9Prgr_N2, &CrPsCmd3s9PrgrG1);
84  FwPrAddFlowDecToAct(prDesc, DECISION1, CrPsCmd3s9Prgr_N5, &CrPsCmd3s9PrgrG1E);
85  FwPrAddFlowActToAct(prDesc, CrPsCmd3s9Prgr_N2, CrPsCmd3s9Prgr_N4, NULL);
86  FwPrAddFlowActToDec(prDesc, CrPsCmd3s9Prgr_N3, DECISION2, NULL);
87  FwPrAddFlowActToAct(prDesc, CrPsCmd3s9Prgr_N4, CrPsCmd3s9Prgr_N3, NULL);
88  FwPrAddFlowActToDec(prDesc, CrPsCmd3s9Prgr_N5, DECISION2, NULL);
89  FwPrAddFlowDecToAct(prDesc, DECISION2, CrPsCmd3s9Prgr_N6, &CrPsCmd3s9PrgrG2);
90  FwPrAddFlowDecToAct(prDesc, DECISION2, CrPsCmd3s9Prgr_N7, &CrPsCmd3s9PrgrG2E);
91  FwPrAddFlowActToFin(prDesc, CrPsCmd3s9Prgr_N6, NULL);
92  FwPrAddFlowActToAct(prDesc, CrPsCmd3s9Prgr_N7, CrPsCmd3s9Prgr_N9, &CrPsCmd3s9PrgrG3);
93  FwPrAddFlowActToAct(prDesc, CrPsCmd3s9Prgr_N8, CrPsCmd3s9Prgr_N1, NULL);
94  FwPrAddFlowActToAct(prDesc, CrPsCmd3s9Prgr_N9, CrPsCmd3s9Prgr_N1, NULL);
95 
96  return prDesc;
97 }
#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 CrPsCmd3s9Prgr procedure.
void CrPsCmd3s9PrgrN7(FwPrDesc_t prDesc)
Action for node N7.
Header file to define all invariant publicly available constants and types for the CORDET Framework...
void CrPsCmd3s9PrgrN9(FwPrDesc_t prDesc)
Action for node N9.
FwPrBool_t CrPsCmd3s9PrgrG3(FwPrDesc_t prDesc)
Guard on the Control Flow from N7 to N9.
FwPrBool_t CrPsCmd3s9PrgrG1E(FwPrDesc_t prDesc)
CR Framework function definitions.
void CrPsCmd3s9PrgrN5(FwPrDesc_t prDesc)
Action for node N5.
FwPrBool_t CrPsCmd3s9PrgrG2E(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION2 to N7.
void CrPsCmd3s9PrgrN1(FwPrDesc_t prDesc)
Action for node N1.
void CrPsCmd3s9PrgrN8(FwPrDesc_t prDesc)
Action for node N8.
void CrPsCmd3s9PrgrN6(FwPrDesc_t prDesc)
Action for node N6.
#define CrPsCmd3s9Prgr_N1
Make sure to include this header file only once.
void CrPsCmd3s9PrgrN3(FwPrDesc_t prDesc)
Action for node N3.
FwPrBool_t CrPsCmd3s9PrgrG2(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION2 to N6.
FwPrDesc_t CrPsCmd3s9PrgrCreate(void *prData)
Create a new procedure descriptor.
void CrPsCmd3s9PrgrN4(FwPrDesc_t prDesc)
Action for node N4.
void CrPsCmd3s9PrgrN2(FwPrDesc_t prDesc)
Action for node N2.
FwPrBool_t CrPsCmd3s9PrgrG1(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION1 to N2.
P&P Software GmbH, Copyright 2012-2013, All Rights Reserved