Browse Source

Apply changes of PR #1390 to cpp code (#1409)

* Apply changes of PR #1390 to cpp code

* Fix typo
Rene Beckmann 8 years ago
parent
commit
fbca088eb8

+ 5 - 0
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/StatemachineHeader.xtend

@@ -53,6 +53,11 @@ class StatemachineHeader extends org.yakindu.sct.generator.c.StatemachineHeader
 		/*! \file Header of the state machine '«name»'.
 		*/
 		
+		/*! Define indices of states in the StateConfVector */
+		«FOR state : states»
+		#define «state.stateVectorDefine» «state.stateVector.offset»
+		«ENDFOR»
+		
 		class «module» : «interfaceExtensions»
 		{
 			

+ 3 - 3
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/StatemachineImplementation.xtend

@@ -236,9 +236,9 @@ class StatemachineImplementation implements IContentTemplate {
 			{
 				«FOR s : states»
 				case «s.shortName.asEscapedIdentifier» : 
-					return (sc_boolean) («IF s.leaf»stateConfVector[«s.stateVector.offset»] == «s.shortName.asEscapedIdentifier»
-					«ELSE»stateConfVector[«s.stateVector.offset»] >= «s.shortName.asEscapedIdentifier»
-						&& stateConfVector[«s.stateVector.offset»] <= «s.subStates.last.shortName.asEscapedIdentifier»«ENDIF»);
+					return (sc_boolean) («IF s.leaf»stateConfVector[«s.stateVectorDefine»] == «s.shortName.asEscapedIdentifier»
+					«ELSE»stateConfVector[«s.stateVectorDefine»] >= «s.shortName.asEscapedIdentifier»
+						&& stateConfVector[«s.stateVectorDefine»] <= «s.subStates.last.shortName.asEscapedIdentifier»«ENDIF»);
 				«ENDFOR»
 				default: return false;
 			}