Login No Access - Get Quote

Rpy_C_Win_VS13_PC_TD_V6.02 Release Notes

About Release Notes

This document lists all changes that have been applied to the RXF product Rpy_C_Win_VS13_PC_TD from version to version.
Changes can be new features, which have been implemented, functional changes, fixed problems or new known issues.
If a change has been implemented for one parts this product consists of, if will be listed here. Rpy_C_Win_VS13_PC_TD
consists of:

== Product Rpy_C_Win_VS13_PC_TD ==
Debugger .......... : MS Visual Studio 2008/2013
RXF ............... : Willert RXF
IDE ............... : MS Visual Studio 2013 (Express)
Modelling ......... : IBM Rational Rhapsody
Language .......... : ANSI C
RTOS .............. : Microsoft Windows
CompilerAndTarget . : MS Visual Studio 2013 (Express) on a PC
Board ............. : None
Extension ......... : Embedded UML Target Debugger

New in Version V6.02

Changes introduced in Rpy_C_Win_VS13_PC_TD_V6.02 which was released on 2016-09-23.

Fixed Issues

Identifier Description
Case 4231 Added a WSTFalse to return Memory for staticComponent.
Case 4278 Profile Model under Config\UserSettings\RXFProfile.rpy contained a wrong unit reference name for the product profile .sbs
Case 4298 Property value for RemoteHostName is now specified without quotes
Case 4329 Under special environment circumstances the new version of the RXF Setup ended prematurely with an error right after starting.
Case 4488 Fixed a bug in the AWK script WSTMonitorHelper.awk. Now class names are detected correct.
Case 4494 Stabilized the UML Target Debugger. Avoid crashes by corrupt incoming data.
Case 4501 Win RTOS had wrong message counting implemented, so WST_OSW_MSQ_getCount() returned a wrong value.
Case 4502 WST_FSM takeEvent() had a NULL pointer reference when used with the Embedded UML Target Debugger and Triggered Operations. Solved by proper initialization of event->destination and by setting event->source to me->owner as a workaround (we do not know the actual sender of a triggered operation as the calling code is not instrumented) in WST_FSM_handleSyncEvent().
Case 4506 In an advanced test model we detected there may be a NULL pointer reference during C++ class destruction when the RXF shuts down (exit() on Windows PC). Added additional pointer checking to destructors in WST_FSM and WST_TMM.
Case 4525 Possible enterCriticalRegion without exitCriticalRegion if a WST_MEM_Pool runs empty.
Case 4633 WSTModelling.h used to check the define WST_COMPILER_KEIL when defining the FIRE macros. This is not needed anymore and the #ifdef path could be removed.
Case 4634 The Stereotype MonitorForTC for using the TestConductor with the RXF and Target Debugger had a fixed GUID in the product specific RXF profile. This can cause problems when multiple RXF product profiles should be loaded at the same time into a model. Now it has a product and version specific GUID.
Case 4711 Corrected tick calculation. In previous RXF releases tm()-timeouts could expire up to two ticks too early. In tm(value) the value now specifies the time that at least needs to elapse, before the timeout expires. This means a tm(0) will expire at the next tick. Because of the tick granularity, a tm(1…WST_MS_PER_TICK) will expire after two ticks (which makes sure at least a full tick-cycle, lasting WST_MS_PER_TICK milliseconds, has elapsed).
Case 4836 Properties under C_CG::Configuration are not net via WST_RXF_V6.prp file anymore, but in the RXFComponent stereotype
Case 5142 On busy systems longer timeouts took longer then expected.
Case 5206 Fixed a bug where Timeouts could expire to early.
Case 5246 Improvement of the make file to prevent unnecessary regeneration of RXFConstants.h and RXFDimensions.h
Case 5526 Target Debugger Simplification in C needs to generate WSTMonitor_sendTypes.c for Eval Releases also with deactivated animation. Also added warning about partial generate instead of regenerate when using animation. A full regenerate is needed to generate an XML file including all relevant class data for the Embedded UML Target Debugger.

New Features

Identifier Description
Case 4483 Major RXF performance improvements: Optimizations for function inlining and optimizes FSM implementation
Case 4489 Memory and Timer Optimizations: WST_MEM Static Pools are now also available as TINY and HUGE and can all or individually be deactivated by setting the numbers to 0. Also timer mechanism can be deactivated by setting WST_MAX_TIMEOUTS to 0.
Case 4508 The virtual table used for state machine code calls can now be reduced to three entries to save memory. It can be minimized by additionally assigning the stereotype SmallVtbl to the component.
Case 4510 Introduced the defines WST_VAR_TYPE_SPECIFIER and WST_INLINE_OP in WSTCompiler.h to allow adding compiler specific keywords like storage class identifiers for RXF data and allow explicit inlining of RXF operations.
Case 4560 Added user Hooks before event processing and after event processing. Hooks are defined in WSTTarget.h.
Case 4569 The RXF now uses Rhapsody Simplified Model Manipulation via Rhapsody Plugins to improve Code Generation and allow New Features
Case 4635 The WSTDeployer now allows to override RXF files with generated files from the Model by using the same file name. For example it is now possible to override the RXF adaptation file WSTTarget.c by just adding a file with the same name somewhere in the model so that it generates. The WSTDeployer will then stop to deploy WSTTarget.c from the RXF source folder and will only add the file from the model. This behavior can be deactivated manually by setting ModelOverridesByFilename = false in WSTDeployer.properties.
Case 4787 #defines of the RXF have been moved into the Model. You can find it inside C_CG/CPP_CG::Configuration.
Case 5149 Moved Rhapsody Run into Rhapsody Make to have a sequential execution. This is needed to atomize the build steps.

Changes in Behavior

Identifier Description
Case 2035 WSTDeployer now uses the default name “GeneratedModel” (without space character) instead of “Generated Model” as a subfolder or group name in IDE sample projects to avoid problems with the space character.
Case 2808 Added 32 vs 64 bit API/Java consistency check to WSTDeployer.bat. This should assist solving problems especially related to Rhapsody 64-Bit configurations.
Case 2849 Further improvements for MISRA-C 2004 compliance of the RXF
Case 4236 Removed WST_RPY_VERSION define from RxfConstants.h (the RXF has no need anymore to check the Rhapsody build number).
Case 4245 Stereotype “LiveAnimation” can now be applied to components and (added) configurations.
Case 4256 Added Shortcuts to TargetDebugger
Case 4269 Minor improvements of the UML Target Debugger. Now it is possible to inject sequences of events.
Case 4505 Rhapsody products from now on always include the Rhapsody container classes. There will be no RC Extension anymore.
Case 4507 From now on using fixed Project names “Blinky”, “GettingStarted” etc. without postfixes like Multitasking, CPP or Cert. E.g. previous RXF releases with an RTOS and for C++ used “BlinkyMultitaskingCPP” as sample model name. Now it is always just “Blinky”.
Case 4511 The RXF does not need WSTVersion.c/h functionality anymore. Removed these files. It used to contain RiCOXF_pre71Settings() for Rhapsody, but now properties in the RXFComponent make sure that empty operation is not being called.
Case 4555 Minor MISRA-C 2004 Improvements
Case 4568 WSTDeployer helpers (e.g. to open the deployment configuration dialog) are now associated with the release specific RXF profiles instead of being added to Tools menu via rhapsody.ini. This has the advantage that only the tool menu entries which are useful for the currently loaded profiles are shown. Also, you may now right-click the component (which has the RXFComponent stereotype assigned) and select options for deployment.
Case 4637 Willert changed the JDK version for developing Java tools like the WSTDeployer from JDK1.6 to JDK1.7 (Java 7). This requires customers to have JRE1.7 available to allow execution of these tools.
Case 4700 Added NULL != me-pointer checks in WST_TSK_initEx() and WST_TSK_initStatic().
Case 4743 handleEventNotConsumed and handleTONotConsumed in WST_FSM now use the same function pointer typedef “WSTHandleNotConsumed”.
Case 5063 Using type WST_TimeUnit_t consistently for time values in the RXF instead of timeUnit which was then typedefed to WST_TimeUnit_t
Case 5064 Improved WST code generation simplifier robustness and diagnostic messages in Rhapsody.
Case 5068 RXF Profiles now only contain the RXF product name, and not the version number of the RXF release anymore. Also GUIDs contained (e.g. for stereotypes) are not specific per release version anymore, but just per RXF product.
This makes updating an existing UML project to a newer RXF version is much easier. It it not necessary anymore to go through all instances where RXF stereotypes are used to switch them to a newer version number of the same RXF product.Please note this also involves the following changes:
Only the profile of one version of an RXF profile for a product may be referenced at a time in a UML model (but different products in one model are still ok).
The Rhapsody\Share\Profiles\WST_RXF_V6 folder will only contain the RXF profile of the latest installed RXF per each product.
Case 5099 The RXF for Rhapsody in C now uses the Java JRE delivered with Rhapsody for all Java based tools coming with it (and does not require java.exe to be found in the PATH environment variable anymore).
Case 5195 The build step in Rhapsody used to execute a makefile, only to generate files like RxfDimensions.h and RxfConstants.h. Now for this step a much simpler batch file is generated and executed instead of the makefile, as there are no dependencies that need to be evaluated by make. The actual build step is still performed in the external IDE, as usual with the RXF.
Case 5207 Removed tags “rootDescription”, “rootTitle”, “toolchainProjectFile”, “relativeGeneratedFilePath” and “relativeRxfPath” from the RXFComponent Stereotype. They were only used for old RXF V5 Deployer compatibility.
Case 5250 Added support for Rhapsody 8.1.5, which uses a new Java location (including JDK instead of JRE).

New in Version V6.01

Changes introduced in Rpy_C_Win_VS13_PC_TD_V6.01 which was released on 2014-10-16.

New Features

Identifier Description
Case 4195 The RXF can now be used by the BTC TestConductor to detect the code coverage.
Case 4196 The Target Debugger supports the handling of arrays with more than one dimension.

Changes in Behavior

Identifier Description
Case 4192 Requirement references in RXF source comments now include the requirement prefix (e.g. \req{RXFC-123} instead of \req{123}).

New in Version V6.00

Changes introduced in Rpy_C_Win_VS13_PC_TD_V6.00 which was released on 2014-09-16.

Fixed Issues

Identifier Description
Case 2679 Improved V6 Documentation
Case 2684 Improved RXF documentation
Case 2704 In many cases the code generation message — Do you want to Roundtrip — was coming up every time code needs to be generated. This is now solved.
Case 2709 Solved problem with FIRE, FIRE_S, FIRE_ISR and FIRE_ISR_S macros for sending events.
Case 2713 Corrected handling of null transitions by solving problem with the Null_id identifier
Case 2718 Solved problem which required active classes to specify stack size, message queue size and priority. Now also using the default values from WSTRTOS.h is supported.
Case 2720 Embedded UML Target Debugger had problems querying attributes from the target in combination with an RTOS.
Case 2745 Corrected define WST_CFG_HIGHWATERMARKS in Rhapsody default Debug configuration settings
Case 2803 Using event generation macro FIRE_ISR_S resulted in an error like struct has no field wst_event
Case 3143 RXFComponent Stereotype now overrides Include Statement Properties for the RiCContainers to support working without oxf subdirectory (flat RXF structure). WST.h additionally includes RiCTypes.h, RiCCollection.h, RiCList.h und RiCMap.h.
Case 3145 Defining RiCNotifyToOutput() as empty macro to solve build problems when Rhapsody generates it.
Case 3155 Corrected include file name for ports support (RiCDefaultReactivePort).
Case 3156 Correctly mapping WST_EVT_setDeleteAfterConsume() in WSTModelling.h.
Case 3157 Return value of operation IRiCReactive_gen() for ports support now initializes return value in any case.
Case 3158 Embedded UML Target Debugger now displays events which have been sent via ports correctly (a problem with undefined sender of the events was solved)
Case 3162 Fixed a macro definition Problem in WSTModelling.h. WSTGEN_PORT is now available.
Case 3178 The WST_MSQ_put() function called the error handler with code WST_ERR_EVENT_QUEUE_FULL, even if there was still space for one more event in the message queue.
Case 3235 Added a two macros. OMSETPARAMS to set event parameter. IS_COMPLETED for state charts with termination state.
Case 3237 Protecting timeout queues via mutexes against concurrent task race conditions.
Case 3263 Now the WST_TMM_itsTimeout array is independent of #define WST_CFG_HIGHWATERMARKS
Case 3265 Fixed a problem of race conditions while putting messages into the message queue
Case 3454 Sub classes of active classes now using the same task as the parent class.
Case 3486 Triggered operations return value macro CREPLY is fixed.
Case 3733 Added a sleep function to WST_OSW.c. If the system is stopped by the UML Target Debugger only the target Debugger Task is active.
Case 3784 Now the Target Debugger can be used with the TestConducter without using the stereotype LiveAnimation in the component.
Case 3788 Fixed a problem with RiCCollection_add. The realloc command was called with wrong parameters.
Case 3791 Removed the MessageQueue size attribute in the Class WST_TSK. Same data is stored inside WST_MSQ.
Case 3813 Fixed the WST_MEM_getMemory() operation. WST_FORCE_ALLOC_FAILED or _DEBUG will cause the calling the error handler independent of the define NO_MALLOC or WST_FORCE_ALLOC_FAILED.
Case 3861 WSTDeployer now handles relative paths to the destination IDE project (beginning with “.\”, relative to the generated source files directory) correctly.
Case 3874 Memory pool usage counter was not counted properly (missing decrement).
Case 3993 The UML Target Debugger is now available for CPP RXF with all features
Case 4002 WST_MEM had incorrect WST_MEM_returnMemory() argument “onlyStatic==FALSE” handling
Case 4011 Make the actual RXF compatible with old Frameworks which uses CGEN_S and CGEN_ISR_S in user code.

New Features

Identifier Description
Case 1319 The size of WST_FSM and WST_TSK structure is send to the target debugger while runtime. Its now more dynamic.
Case 2444 Setup is now adding a tools menu entry to Rhapsody to make it possible to start the IDE project, which is associated with the currently active component in the model.
Case 2506 Implemented linked list container class WST_CON_LST to allow ordered one-to-many relations in UML models.
Case 2560 When creating a new Rhapsody project it is now possible to select the product specific profile as project type and select the WSTProfile as project settings both directly in the new project dialog. On earlier versions only one of these profiles could be selected as project type.
Case 2714 Implemented macros to support easier initializing and sending of static events from an array. This mechanism is usually necessary when sending events from an ISR. The new macros are WST_EVT_initStaticEventArray( EVENT, EVENT_ARRAY, SIZE ), WST_EVT_initStaticEventArray_S( SOURCE, EVENT, EVENT_ARRAY, SIZE ) and FIRE_ISR_ARRAY( DESTINATION, EVENT_ARRAY, INDEX, SIZE ).
Case 2875 Included MISRA2004 profile in installation
Case 2918 Implemented limited support for UML Ports
Case 3541 RXF products now include a document Doc/BillOfMaterial.html with svn revisions and MD5 hashes for each source file.
Case 3645 The protocol for the Embedded UML Target Debugger is improved. New version is 2.6.0
Case 3985 WST_RXF_executeOnce() now allows to handle a given number of events with each call (instead of just one event per call). Existing user code calling WST_RXF_executeOnce() needs to be updated by adding a parameter (1).
Case 4062 Synchronized Rhapsody Modeling Interface.

Changes in Behavior

Identifier Description
Case 2330 All RXF files now also use the WST.h include file instead of including a list of individual RXF header files. Also the class structure definitions are now consistently named with the _t postfix and typedefed without the _t postfix. Parameter lists make use of e.g. the typedefed “WST_FSM” instead of “struct WST_FSM_t”.
Case 2392 Added possibility to force WST error handler calls on memory allocation problems also in Release buildsets via defines WST_FORCE_ERRORHANDLER_IN_RELEASE or WST_FORCE_ALLOC_FAILED
Case 2433 Under Windows 7 the setup will propose a Willert installation path located under the user files directory to make sure read and write access is possible.
Case 2685 WSTDeployer now saves the IDE destination path in relation to the generated sources path of the active configuration. The deepest three directory levels are used as a key to identify model, component and configuration the IDE project is related to. For details please read the WSTDeployer Configuration documentation.
Case 3002 Added support for RxfExcludeByFilenameOnly property in WSTDeployer, which defaults to true. That makes sure only filenames of RXF excluded files are compared (ignoring cases) and allows easier exclusion of RXF files from Deployment.
Case 3094 Removed some overhead in the RXF which is not really needed in V6 of the RXF anymore. This does not reduce functionality, but gives a better overview when looking at RXF source files. E.g. WSTEpilog.c, WSTEpilog.h, WSTProlog.c and WSTProlog.h have been removed.
Case 3163 Removed WSTRXFLib class from RXF, as the RXF_Init can also be used if the RXF is only used as subpart of a system.
Case 3166 Removed check for define WST_RXF_INIT_IS_MAPPED, as WST_RXF_Init() can also be overridden by user specific WST_RXF.c file and adding WST_RXF.c to WSTDeployerExcludedFiles.txt, if a different RXF implementation should be used.
Case 3222 Now the RTOS message queue can differ between events from ISR and events from normal context.
Case 3268 Removed WSTStartBehaviorEvent.c/.h. The WSTStartBehaviorEvent is now represented as a normal WST_EVT.
Case 3305 Added the Stereotype Task to the RXF profile to create tasks with static stacks and message queues.
Case 3409 Changed the Monitor helper AWK file. Now no additional lines are added to the generated code. This is needed to use the Framework with BTC TestConductor.
Case 3425 Setting property RemoteHost to generate fixed dummy host name “WST_RXF”, which gets removed by the preprocessor during compile time.
Case 3454 Added the Macro FIRE_ISR
Case 3533 Removed unnecessary Include of ctype.h in WSTTypes.h.
Case 3817 Define WST_MAX_EVENTS and Property WSTMaxEvents are no longer available in the RXF. The event list is dynamic and there is no specific size limit which needs to be set via properties.
Case 3818 Rhapsody generated code may access event IDs directly, added mapping from lId to id in WSTModelling.h
Case 3819 Renamed define STATIC in Rhapsody container classes (RC) into RIC_STATIC to prevent name clashes with user or RTOS code.
Case 3822 Documented WST_DEFAULT_MAX_NULL_STEPS define to configure NULL-transition loop detection.
Case 3823 Documented WST_MS_PER_TICK Define
Case 3835 Setting default Rhapsody edition in Rhapsody.ini during RXF Setup to Architect to better support Willert OEM Rhapsody users (e.g. when launching Rhapsody inside Eclipse).
Case 3867 The operation WST_MEM_returnMemory has now a second argument “WSTBoolean onlyStatic”. If this attribute is true free will not be called if the given memory pointer is not part of the static memory pools.
Case 3882 RXF Class structure typedefs are now all located inside WST.h
Case 4030 Settung property C_CG::Ports::SupportMulticast to “Never” in order to allow Rapid-Ports usage with manual multiplicity access
Login No Access - Get Quote