Compare commits
	
		
			18 Commits
		
	
	
		
			0978fdb7a5
			...
			main
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c9d2c05b73 | |||
| c07c47385e | |||
| 68fd8440fc | |||
| c1b4baeb2e | |||
| 09ea237a13 | |||
| 26ef097d86 | |||
| 9b56357770 | |||
| 57720e50f7 | |||
| 05f186188f | |||
| 20fd0631c6 | |||
| 268c270a4d | |||
| 9059d77b3e | |||
| 92c2faa858 | |||
| 2ee12ca042 | |||
| 3d5f026a94 | |||
| 54265d70d1 | |||
| f26d9803ac | |||
| a327899e11 | 
							
								
								
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -53,3 +53,11 @@ compile_commands.json | ||||
|  | ||||
| *_qmlcache.qrc | ||||
| *.user | ||||
| test-bench/test1/ide-cubeide-test1-idf/Debug | ||||
| test-bench/test5/ide-cubeide-test5-idf/.settings/language.settings.xml | ||||
| test-bench/test1/ide-cubeide-test1-idf/.settings/language.settings.xml | ||||
| test-bench/test2/ide-cubeide-test2-idf/.settings/language.settings.xml | ||||
| test-bench/test2/ide-cubeide-test2-idf/Debug | ||||
| test-bench/test4/ide-cubeide-test4-idf/.settings/language.settings.xml | ||||
| test-bench/test3/ide-cubeide-test3-idf/.settings/language.settings.xml | ||||
| .idea | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								UML/event.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 44 KiB | 
							
								
								
									
										55
									
								
								UML/event.puml
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,55 @@ | ||||
| @startuml | ||||
|  | ||||
| participant Behavior as b | ||||
| participant Dispatcher as d | ||||
| entity Event as e | ||||
| participant EventQueue as eq | ||||
| queue "EventQueue::queue_" as q | ||||
|  | ||||
| == Create an Event == | ||||
| ||| | ||||
| ?->> b ++ : GEN | ||||
| b -> e ** : new | ||||
| b -> b --++ : pushEvent | ||||
| e -> b : getBehavior | ||||
| b --> e ++: setBehavior | ||||
| e --> b -- | ||||
| b -> d ++ : getDispatcher | ||||
| d --> b | ||||
| b -> d -- : pushEvent | ||||
| d ->? -- : push | ||||
|  | ||||
|  | ||||
| ||| | ||||
| ||| | ||||
| == Push Event  == | ||||
| ||| | ||||
| ?->> d ++: pushEvent | ||||
| d -> eq--++: push | ||||
| eq -> q ++ | ||||
| q --> eq | ||||
| eq -> q -- : pushEndQueue | ||||
|  | ||||
| ||| | ||||
| ||| | ||||
| == Dispatch == | ||||
| ||| | ||||
| ?->> d ++: executeOnce | ||||
| d -> q : getFront | ||||
| q -> e ++ | ||||
| e --> q | ||||
| q --> d : event | ||||
| d -> q : pop | ||||
| deactivate q | ||||
| d -> d --++ : dispatchEvent | ||||
| d -> b ++ : getBehavior | ||||
| b --> d | ||||
| d -> b -- : process | ||||
| b -> b--: processEvent | ||||
|  | ||||
| destroy e | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @enduml | ||||
							
								
								
									
										
											BIN
										
									
								
								UML/timeAlgorithme.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 28 KiB | 
							
								
								
									
										27
									
								
								UML/timeAlgorithme.puml
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,27 @@ | ||||
| @startuml | ||||
|  | ||||
| start | ||||
| :newTime = 0 | ||||
| totalTime = 0 | ||||
| isEnd = it == list.end() | ||||
| lastTime = 0; | ||||
|  | ||||
| #tomato:if (!isEnd) then (not end) | ||||
|     #tomato:totalTime += it.getRelTicks(); | ||||
| endif | ||||
|  | ||||
|     while ( !isEnd && (totalTime <= newTime) ) is (goForward) | ||||
|     :isEnd = (++it == list.end()); | ||||
|         :lastTime = totalTime; | ||||
|         #tomato:if (!isEnd) then (not end) | ||||
|             #tomato:totalTime += it.getRelTicks(); | ||||
|         endif | ||||
|     endwhile | ||||
|  | ||||
| #tomato:if (!isEnd) then (not end) | ||||
|     #tomato:subRelTicks(newTime- lastTime); | ||||
| endif | ||||
| :it.setRelTicks(newTime - lastTime); | ||||
| :insert(it, newTimeout); | ||||
|  | ||||
| @enduml | ||||
							
								
								
									
										
											BIN
										
									
								
								UML/timeout.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 63 KiB | 
							
								
								
									
										62
									
								
								UML/timeout.puml
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,62 @@ | ||||
| @startuml | ||||
|  | ||||
| participant "Behavior::StateMachine" as sm | ||||
| participant Dispatcher as d | ||||
| participant TimeoutManager as tm | ||||
| entity "Event::Timeout" as t | ||||
| queue "TimeoutManager::timeouts_" as timeouts | ||||
|  | ||||
| autoactivate off | ||||
| ||| | ||||
| ||| | ||||
| == Schedule timeout == | ||||
| ||| | ||||
| sm -> sm++ : scheduleTimeout | ||||
| sm -> d ++: getDispatcher | ||||
| d --> sm --: dispatcher | ||||
| sm -> d --++ : scheduleTimeout | ||||
| d -> tm ++: getTimeoutManager | ||||
| tm --> d --: timeoutManager | ||||
| d -> tm --++ : scheduleTimeout | ||||
| tm -> t ** : new | ||||
| t --> tm | ||||
| tm -> timeouts --++: insert | ||||
|  | ||||
| ||| | ||||
| ||| | ||||
| == Decrement timeout (and dispatch) == | ||||
| ||| | ||||
| loop every tickInterval | ||||
| ?->> tm ++: tick | ||||
| tm -> timeouts : getFront | ||||
| timeouts -> t ++ | ||||
| t --> timeouts | ||||
| timeouts --> tm : timeout | ||||
| tm -> t  --: decrement | ||||
| end | ||||
| ||| | ||||
| note left t | ||||
| When timeout is 0, | ||||
| dispatch event | ||||
| end note | ||||
| t -> timeouts : pop | ||||
| deactivate timeouts | ||||
| t ->? --: pushEvent | ||||
|  | ||||
| ||| | ||||
| ||| | ||||
| == Unschedule timeout == | ||||
| ||| | ||||
| sm -> sm++ : unscheduleTimeout | ||||
| sm -> d ++: getDispatcher | ||||
| d --> sm --: dispatcher | ||||
| sm -> d --++ : unscheduleTimeout | ||||
| d -> tm ++: getTimeoutManager | ||||
| tm --> d --: timeoutManager | ||||
| d -> tm --++ : unscheduleTimeout | ||||
| tm -> timeouts --: erase | ||||
| timeouts -> t !! | ||||
|  | ||||
|  | ||||
|  | ||||
| @enduml | ||||
							
								
								
									
										48
									
								
								readme.md
									
									
									
									
									
								
							
							
						
						| @@ -7,15 +7,19 @@ | ||||
| - Demonstrate the right functioning of the XF by comparing and documenting the output created by the tests running on the *Embedded System* | ||||
|  | ||||
| # Time Algorithm | ||||
| ``` mermaid | ||||
| flowchart TD | ||||
|     A(Start)--> B[time = 0] | ||||
|     B --> C{time < desireTime} | ||||
|     C ---->|No| E[End] | ||||
|     C -->|Yes| D[End] | ||||
| ``` | ||||
|  | ||||
|  | ||||
| <img src="./UML/timeAlgorithme.png"> | ||||
|  | ||||
| # Sequence Diagrams | ||||
| ## Timeout | ||||
|  | ||||
| <img src="./UML/timeout.png"> | ||||
|  | ||||
| ## Event | ||||
|  | ||||
| <img src="./UML/event.png"> | ||||
|  | ||||
| # Tests | ||||
| ## Test 1 | ||||
| This test launches an instance of the Task01Tm class and produces some output. Optionally, multiple instances of Task01Tm can be created to test the XF. | ||||
| @@ -27,15 +31,15 @@ The Test Factory (TestFactory01) instantiates 2 objects: | ||||
| <details> | ||||
|   <summary>QT result ✅</summary> | ||||
|  | ||||
|  | ||||
| <img src="./test-bench/test1/ide-qtcreator-test1-idf/result.PNG"> | ||||
|  | ||||
| This test is successfully passed | ||||
|  | ||||
| </details> | ||||
| <details> | ||||
|   <summary>STM result</summary> | ||||
|   <summary>STM result ✅</summary> | ||||
|  | ||||
| img | ||||
| <img src="./test-bench/test1/ide-cubeide-test1-idf/result.png"> | ||||
|  | ||||
| </details> | ||||
|  | ||||
| @@ -47,15 +51,15 @@ Weather or not the state machine should be deleted is handled with the 'deleteOn | ||||
| <details> | ||||
|   <summary>QT result ✅</summary> | ||||
|  | ||||
|  | ||||
| <img src="./test-bench/test2/ide-qtcreator-test2-idf/result.PNG"> | ||||
|  | ||||
| This test is successfully passed | ||||
|  | ||||
| </details> | ||||
| <details> | ||||
|   <summary>STM result</summary> | ||||
|   <summary>STM result ✅</summary> | ||||
|  | ||||
| img | ||||
| <img src="./test-bench/test2/ide-cubeide-test2-idf/result.png"> | ||||
|  | ||||
| </details> | ||||
|  | ||||
| @@ -65,15 +69,15 @@ This test checks basic event handling in state machines. In this example the Sta | ||||
| <details> | ||||
|   <summary>QT result ✅</summary> | ||||
|  | ||||
|  | ||||
| <img src="./test-bench/test3/ide-qtcreator-test3-idf/result.PNG"> | ||||
|  | ||||
| This test is successfully passed | ||||
|  | ||||
| </details> | ||||
| <details> | ||||
|   <summary>STM result</summary> | ||||
|   <summary>STM result ✅</summary> | ||||
|  | ||||
| img | ||||
| <img src="./test-bench/test3/ide-cubeide-test3-idf/result.png"> | ||||
|  | ||||
| </details> | ||||
|  | ||||
| @@ -83,15 +87,15 @@ Tests if timeouts are correctly cancelled. When leaving a state with a transitio | ||||
| <details> | ||||
|   <summary>QT result ✅</summary> | ||||
|  | ||||
|  | ||||
| <img src="./test-bench/test4/ide-qtcreator-test4-idf/result.PNG"> | ||||
|  | ||||
| This test is successfully passed | ||||
|  | ||||
| </details> | ||||
| <details> | ||||
|   <summary>STM result</summary> | ||||
|   <summary>STM result ✅</summary> | ||||
|  | ||||
| img | ||||
| <img src="./test-bench/test4/ide-cubeide-test4-idf/result.png"> | ||||
|  | ||||
| </details> | ||||
|  | ||||
| @@ -101,15 +105,15 @@ With this test multiple timeouts are added to the XFTimeoutManager list at the s | ||||
| <details> | ||||
|   <summary>QT result ✅</summary> | ||||
|  | ||||
|  | ||||
| <img src="./test-bench/test5/ide-qtcreator-test5-idf/result.PNG"> | ||||
|  | ||||
| This test is successfully passed | ||||
|  | ||||
| </details> | ||||
| <details> | ||||
|   <summary>STM result</summary> | ||||
|   <summary>STM result ✅</summary> | ||||
|  | ||||
| img | ||||
| <img src="./test-bench/test5/ide-cubeide-test5-idf/result.png"> | ||||
|  | ||||
| </details> | ||||
|  | ||||
|   | ||||
| @@ -16,6 +16,12 @@ void XFBehavior::startBehavior() { | ||||
|     GEN(XFInitialEvent()); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * @brief Pushes the given event to the dispatcher. | ||||
|  * | ||||
|  * If the event has no behavior assigned, the behavior of this object is assigned. | ||||
|  * @param pEvent Event to push to the dispatcher. | ||||
|  */ | ||||
| void XFBehavior::pushEvent(XFEvent *pEvent) { | ||||
|     if(pEvent->getBehavior()==nullptr) { | ||||
|         pEvent->setBehavior(this); | ||||
| @@ -39,6 +45,13 @@ interface::XFDispatcher *XFBehavior::getDispatcher() { | ||||
|     return interface::XFDispatcher::getInstance(); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * @brief Returns a reference to the actually processed timeout. | ||||
|  * | ||||
|  * Will work only if the current event is of type IXFEvent::Timeout. | ||||
|  * | ||||
|  * @return Pointer to the currently processed timeout or nullptr if the current event is not a timeout. | ||||
|  */ | ||||
| const XFTimeout *XFBehavior::getCurrentTimeout() { | ||||
|     if(pCurrentEvent_->getEventType() == XFEvent::Timeout) { | ||||
|         return (XFTimeout*) this->pCurrentEvent_; | ||||
| @@ -51,13 +64,33 @@ void XFBehavior::setCurrentEvent(const XFEvent *pEvent) { | ||||
|     this->pCurrentEvent_ = pEvent; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * @brief Processes the given event. | ||||
|  * | ||||
|  * The dispatcher calls this method every time a new event | ||||
|  * or timeout arrives. The process method stores the actual | ||||
|  * event using the #_pCurrentEvent and then calls | ||||
|  * processEvent(). | ||||
|  * | ||||
|  * In case you intend to call process() inside your state machine you | ||||
|  * are doing something wrong! Call GEN() or pushEvent() instead! | ||||
|  * | ||||
|  * @param pEvent Event to process | ||||
|  * @return if the behavior is terminated (basically a boolean) | ||||
|  */ | ||||
| XFBehavior::TerminateBehavior XFBehavior::process(const XFEvent *pEvent) { | ||||
|     this->setCurrentEvent(pEvent); | ||||
|  | ||||
|     // Get status of the event processing | ||||
|     XFEventStatus status = XFEventStatus::Unknown; | ||||
|     status = this->processEvent(); | ||||
|  | ||||
|     // Check if event was consumed and if it should be deleted | ||||
|     if(status == XFEventStatus::Consumed && pEvent->deleteAfterConsume()) { | ||||
|         delete pEvent; | ||||
|     } | ||||
|  | ||||
|     // Check if the behavior is terminated and return the result | ||||
|     XFBehavior::TerminateBehavior terminateBehavior = false; | ||||
|     if(status == XFEventStatus::Terminate) { | ||||
|         terminateBehavior = true; | ||||
|   | ||||
| @@ -34,8 +34,28 @@ XFTimeoutManager::~XFTimeoutManager() { | ||||
|  | ||||
| void XFTimeoutManager::addTimeout(XFTimeout *pNewTimeout) { | ||||
|  | ||||
|     const int newTime = pNewTimeout->getInterval(); | ||||
|     int totalTime = 0; | ||||
|     bool isEnd = true; | ||||
|     int lastTime = 0; | ||||
|  | ||||
|     this->pMutex_->lock(); | ||||
|     this->timeouts_.push_back(pNewTimeout); | ||||
|     TimeoutList::iterator it = this->timeouts_.begin(); | ||||
|     isEnd = (it == this->timeouts_.end()); | ||||
|  | ||||
|     if(!isEnd) totalTime += (*it)->getRelTicks(); | ||||
|  | ||||
|     while(!isEnd && (totalTime <= newTime)) { | ||||
|         isEnd = (++it == this->timeouts_.end()); | ||||
|         lastTime = totalTime; | ||||
|         if(!isEnd) totalTime += (*it)->getRelTicks(); | ||||
|     } | ||||
|  | ||||
|     if(!isEnd) (*it)->substractFromRelTicks(newTime-lastTime); | ||||
|  | ||||
|     pNewTimeout->setRelTicks(newTime-lastTime); | ||||
|     this->timeouts_.insert(it, pNewTimeout); | ||||
|  | ||||
|     this->pMutex_->unlock(); | ||||
|  | ||||
| } | ||||
| @@ -70,22 +90,31 @@ void XFTimeoutManager::unscheduleTimeout(int32_t timeoutId, interface::XFBehavio | ||||
| } | ||||
|  | ||||
| void XFTimeoutManager::tick() { | ||||
|     //Trace::out("[DEBUG] - Tick"); | ||||
|     if(!this->timeouts_.empty()) { | ||||
|         TimeoutList::iterator it; | ||||
|  | ||||
|     bool isEmpty = this->timeouts_.empty(); | ||||
|     int rTime; | ||||
|  | ||||
|     if(!isEmpty) { | ||||
|  | ||||
|         this->pMutex_->lock(); | ||||
|         for(it=this->timeouts_.begin(); it != this->timeouts_.end(); it++) { | ||||
|             if((*it)->getRelTicks() > 0) { | ||||
|                 (*it)->substractFromRelTicks(this->tickInterval_); | ||||
|             } else { | ||||
|                 XFEvent* ev = *(it); | ||||
|                 XFDispatcher::getInstance()->pushEvent(ev); | ||||
|                 it = this->timeouts_.erase(it); | ||||
|                 it--; | ||||
|             } | ||||
|  | ||||
|         XFTimeout* timeout = this->timeouts_.front(); | ||||
|         timeout->substractFromRelTicks(tickInterval_); | ||||
|         rTime = timeout->getRelTicks(); | ||||
|  | ||||
|         while (!isEmpty && (rTime <= 0) ) { | ||||
|  | ||||
|             XFDispatcher::getInstance()->pushEvent(timeout); | ||||
|             this->timeouts_.pop_front(); | ||||
|  | ||||
|             timeout = this->timeouts_.front(); | ||||
|             isEmpty = this->timeouts_.empty(); | ||||
|             if(!isEmpty) rTime = timeout->getRelTicks(); | ||||
|  | ||||
|         } | ||||
|  | ||||
|         this->pMutex_->unlock(); | ||||
|  | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -1,27 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <project> | ||||
| 	<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1635794078" name="Debug"> | ||||
| 		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> | ||||
| 			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-393503295883347514" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | ||||
| 				<language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
| 				<language-scope id="org.eclipse.cdt.core.g++"/> | ||||
| 			</provider> | ||||
| 		</extension> | ||||
| 	</configuration> | ||||
| 	<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1441404980" name="Release"> | ||||
| 		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> | ||||
| 			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-393503295883347514" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | ||||
| 				<language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
| 				<language-scope id="org.eclipse.cdt.core.g++"/> | ||||
| 			</provider> | ||||
| 		</extension> | ||||
| 	</configuration> | ||||
| </project> | ||||
							
								
								
									
										
											BIN
										
									
								
								test-bench/test1/ide-cubeide-test1-idf/result.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 37 KiB | 
| @@ -1,27 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <project> | ||||
| 	<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.160913188" name="Debug"> | ||||
| 		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> | ||||
| 			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-393503295883347514" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | ||||
| 				<language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
| 				<language-scope id="org.eclipse.cdt.core.g++"/> | ||||
| 			</provider> | ||||
| 		</extension> | ||||
| 	</configuration> | ||||
| 	<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1470338518" name="Release"> | ||||
| 		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> | ||||
| 			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-393503295883347514" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | ||||
| 				<language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
| 				<language-scope id="org.eclipse.cdt.core.g++"/> | ||||
| 			</provider> | ||||
| 		</extension> | ||||
| 	</configuration> | ||||
| </project> | ||||
							
								
								
									
										
											BIN
										
									
								
								test-bench/test2/ide-cubeide-test2-idf/result.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 23 KiB | 
| @@ -1,27 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <project> | ||||
| 	<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.192308827" name="Debug"> | ||||
| 		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> | ||||
| 			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-393503295883347514" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | ||||
| 				<language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
| 				<language-scope id="org.eclipse.cdt.core.g++"/> | ||||
| 			</provider> | ||||
| 		</extension> | ||||
| 	</configuration> | ||||
| 	<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1342829208" name="Release"> | ||||
| 		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> | ||||
| 			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-393503295883347514" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | ||||
| 				<language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
| 				<language-scope id="org.eclipse.cdt.core.g++"/> | ||||
| 			</provider> | ||||
| 		</extension> | ||||
| 	</configuration> | ||||
| </project> | ||||
							
								
								
									
										
											BIN
										
									
								
								test-bench/test3/ide-cubeide-test3-idf/result.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 36 KiB | 
| @@ -1,27 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <project> | ||||
| 	<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.666965065" name="Debug"> | ||||
| 		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> | ||||
| 			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-393503295883347514" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | ||||
| 				<language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
| 				<language-scope id="org.eclipse.cdt.core.g++"/> | ||||
| 			</provider> | ||||
| 		</extension> | ||||
| 	</configuration> | ||||
| 	<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.661535232" name="Release"> | ||||
| 		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> | ||||
| 			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-393503295883347514" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | ||||
| 				<language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
| 				<language-scope id="org.eclipse.cdt.core.g++"/> | ||||
| 			</provider> | ||||
| 		</extension> | ||||
| 	</configuration> | ||||
| </project> | ||||
							
								
								
									
										
											BIN
										
									
								
								test-bench/test4/ide-cubeide-test4-idf/result.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 38 KiB | 
| @@ -1,27 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <project> | ||||
| 	<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.912685179" name="Debug"> | ||||
| 		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> | ||||
| 			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-393503295883347514" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | ||||
| 				<language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
| 				<language-scope id="org.eclipse.cdt.core.g++"/> | ||||
| 			</provider> | ||||
| 		</extension> | ||||
| 	</configuration> | ||||
| 	<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.856286833" name="Release"> | ||||
| 		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
| 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> | ||||
| 			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-393503295883347514" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | ||||
| 				<language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
| 				<language-scope id="org.eclipse.cdt.core.g++"/> | ||||
| 			</provider> | ||||
| 		</extension> | ||||
| 	</configuration> | ||||
| </project> | ||||
							
								
								
									
										
											BIN
										
									
								
								test-bench/test5/ide-cubeide-test5-idf/result.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 35 KiB |