You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -1300,6 +1307,12 @@ <h2 id="tc-context-menu-commands">TC Context Menu Commands</h2>
1300
1307
<p>If you build a TC and at least one error exists in the TC itself, in prerequisites TCs or in any of the Art files that will be built, then a dialog will ask if you want to cancel the build (recommended) or proceed anyway (only do this if you are confident the errors are safe to ignore).</p>
<p>You can cancel the ongoing build by clicking on this progress spinner, and then click the <strong>Cancel</strong> button in the popup that appears:</p>
<p>The build will be terminated immediately with a printout in the <strong>Art Build</strong> output channel: "Build terminated by user." You should expect that the target folder in this case will contain a partial build result. For example, some but not all object files may be present if the build was cancelled while compiling generated code.</p>
1303
1316
<h2id="building-and-running-without-a-tc">Building and Running without a TC</h2>
1304
1317
<p>In some cases of rapid prototyping and testing you may want to quickly build and run a capsule without first having to create a TC or a <ahref="../running-and-debugging/launch-configurations/">launch configuration</a>. Then you can click the "Run" link that appears just before any capsule in the Art text editor.</p>
<li>It's now possible to export diagrams as SVG. This allows to use diagrams in reports, presentations or other documents where SVG files can be embedded. To export a diagram to SVG you first need to open it and adjust it the way you want it to appear (e.g. expanding or collapsing symbols). Then click the new toolbar button <code>Export as SVG</code> in the Properties view or use the new command <code>Export as SVG</code> from the Command Palette.</li>
1203
+
<li>A new validation rule <ahref="https://secure-dev-ops.github.io/code-realtime/validation/#art_0041_implicituseofdeephistory">ART_0041_implicitUseOfDeepHistory</a> will now report a warning if an entry or exit point is missing an outgoing transition, and therefore will behave as an implicit use of the deep history pseudo state (<code>history*</code>).</li>
1204
+
<li>Some of the colors used in diagrams were adjusted to improve their appearance for light color themes. This was mainly accomplished by deriving more diagram colors from theme colors, which means that diagram colors now to a larger extent automatically update if you customize the color theme.</li>
1205
+
<li>The C++ code generated for capsules is now more readable. Comments with port names are now present in <code>rtg_bindings</code> arrays after each port index.</li>
1206
+
<li>It's now possible to use an asterisk (<code>*</code>) to configure all validation rules at once. This works both in the UI (setting <code>code-rt.validation.ruleConfiguration</code>) and in the Art Compiler (option <code>--ruleConfig</code>). It can also be used in the <code>rule_config</code> property on an Art element. For example, the rule configuration <code>E*</code> means that all problems will be reported with Error severity. Read more about this feature <ahref="https://secure-dev-ops.github.io/code-realtime/validation/#configuring-all-rules">here</a>.</li>
1207
+
<li>The C++ code generator now supports entry and exit actions for states in class state machines.</li>
1208
+
<li>You can now use the <code>[[rt::auto_descriptor]]</code> attribute also on abstract C++ classes, i.e. classes that contain one or more pure virtual functions. The code generator will then adjust the generated type descriptor to exclude the init, copy and move functions.</li>
1209
+
<li>It's now possible to cancel an ongoing build by clicking on the "building..." progress spinner in the status bar. Read more about this feature <ahref="https://secure-dev-ops.github.io/code-realtime/building/#cancelling-an-ongoing-build">here</a>.</li>
1210
+
<li>Version 1.0.1 of the Art Exporter is now available. It provides a number of improvements in how Model RealTime data types are exported to Art files. See <ahref="https://model-realtime.hcldoc.com/help/topic/com.ibm.xtools.rsarte.webdoc/Utilities/Art%20Exporter.html">this page</a> for the full list of improvements.</li>
<li>Fixed several bugs related to code generation for transitions with multiple triggers, sending events in debugger to ports with multiplitities and through delegating connectors.</li>
<p>If you anyway define physical threads for a library TC they will be ignored by the C++ code generator, and only the logical threads will be considered.</p>
1390
1390
<h2id="running-a-capsule-instance-in-a-custom-thread">Running a Capsule Instance in a Custom Thread</h2>
1391
-
<p>Capsule instances are connected in a tree structure where the top capsule instance is the root. A capsule instance always lives inside a part of another (container) capsule. The top capsule instance is always run by the main thread, but for all other capsule instances you can choose which thread that should run it.</p>
1391
+
<p>Capsule instances are connected in a tree structure where the top capsule instance is the root. A capsule instance always lives inside a part of another (container) capsule. The top capsule instance is always run by the main thread<supid="fnref:1"><aclass="footnote-ref" href="#fn:1">1</a></sup>, but for all other capsule instances you can choose which thread that should run it.</p>
1392
1392
<p>When a new capsule instance is created it will by default be run by the same thread that runs the container capsule instance. This means that by default all capsule instances in the application will be run by the main thread.</p>
1393
1393
<p>The picture below outlines the capsule instances of an Art application. <code>C1</code> is the top capsule. For simplicity we have assumed that all capsule parts are fixed with multiplicity 1 so they only can contain one capsule instance.</p>
@@ -1440,6 +1440,14 @@ <h2 id="default-threads-and-thread-properties">Default Threads and Thread Proper
1440
1440
<h2id="generated-code-for-threads">Generated Code for Threads</h2>
1441
1441
<p>Thread information specified in the TC is generated into the unit files (by default called <code>UnitName.h</code> and <code>UnitName.cpp</code>). You will find there functions <code>_rtg_createThreads()</code> and <code>rtg_deleteThreads()</code> which contain the code for creating and deleting the physical threads that you have added in addition to the default MainThread and TimerThread. There is also a function <code>_rtg_mapLogicalThreads()</code> where the logical threads are mapped to physical threads.</p>
1442
1442
<p>Some target environments only support one thread. In this case the macro <code>USE_THREADS</code> will be unset when compiling generated C++ code and the TargetRTS, and it will remove all code related to threads. </p>
1443
+
<divclass="footnote">
1444
+
<hr/>
1445
+
<ol>
1446
+
<liid="fn:1">
1447
+
<p>It's possible to run the top capsule instance in a custom thread if you <ahref="../integrate-with-external-code/#main-function">write a custom main function</a>. <aclass="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">↩</a></p>
Copy file name to clipboardExpand all lines: docs/target-rts/timers/index.html
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1383,7 +1383,7 @@ <h2 id="set-a-timer">Set a Timer</h2>
1383
1383
</code></pre>
1384
1384
<p>If you set a timer with an absolute time that has already passed, or a relative time of 0, the timeout will happen almost immediately. Note the word "almost", because in practise it always takes a little time for the timeout event to be placed in the controller's event queue, and from there be dispatched to the capsule. </p>
1385
1385
<h2id="timer-priority">Timer Priority</h2>
1386
-
<p>If you want a timeout event to be processed as quickly as possible you can use a higher than default priority when setting the timer. The last parameter of <code>informIn()</code>, <code>informAt()</code> and <code>informEvery()</code> specifies the priority of the timeout event (by default it's <code>General</code> which is the normal priority of an event). In the same way you can lower the priority, if you want the timeout event to be handled at a lower priority.</p>
1386
+
<p>If you want a timeout event to be processed as quickly as possible you can use a higher than default priority when setting the timer. The last parameter of <code>informIn()</code>, <code>informAt()</code> and <code>informEvery()</code> specifies the priority of the timeout event (by default it's <code>General</code> which is the normal priority of an event). In the same way you can lower the priority, if you want the timeout event to be handled at a lower priority. See <ahref="../message-communication/#message-priority">Message Priority</a> for available priority levels.</p>
1387
1387
<p>The timer set in the example below will timeout immediately and the timeout event will be processed with a higher than normal priority.</p>
0 commit comments