Skip to content

Commit 46e0114

Browse files
author
Sonia Mathew
committed
Generated HTML for Release 3.2.0
1 parent f7696c2 commit 46e0114

File tree

84 files changed

+1985
-808
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+1985
-808
lines changed
4.72 KB
Loading

docs/art-lang/index.html

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1416,6 +1416,13 @@
14161416
<nav class="md-nav" aria-label="Port">
14171417
<ul class="md-nav__list">
14181418

1419+
<li class="md-nav__item">
1420+
<a href="#self-communication" class="md-nav__link">
1421+
Self Communication
1422+
</a>
1423+
1424+
</li>
1425+
14191426
<li class="md-nav__item">
14201427
<a href="#port-multiplicity" class="md-nav__link">
14211428
Port Multiplicity
@@ -2263,7 +2270,21 @@ <h2 id="port">Port</h2>
22632270
<p class="admonition-title">Example</p>
22642271
<p>You can find a sample application that sends events on ports with and without data <a href="https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/PingPong">here</a>.</p>
22652272
</div>
2266-
<p>Note that <code>send()</code> is not the only function you can call. For example, you can call <code>invoke()</code> if you want to wait until the receiver has received and replied to the event. This is useful for implementing synchronous communication between capsules.</p>
2273+
<p>Note that <code>send()</code> is not the only function you can call. For example, you can call <code>invoke()</code> if you want to wait until the receiver has received and replied to the event. This is useful for implementing <a href="../target-rts/message-communication/#asynchronous-versus-synchronous-communication">synchronous communication</a> between capsules.</p>
2274+
<h3 id="self-communication">Self Communication</h3>
2275+
<p>Sometimes a capsule may want to send a message to itself. For example, the need may arise to transition from one state to another when a transition that was triggered by another message is already executing. If that message, for whatever reason, could not directly trigger the transition to the desired target state, the capsule can send a message to itself for triggering it.</p>
2276+
<p>Self communication requires two behavior ports on the same capsule that are connected to each other.</p>
2277+
<p><img alt="" src="images/self_communication.png" /></p>
2278+
<p>A message sent on one of these ports will be received on the other port, on the same capsule.</p>
2279+
<div class="admonition example">
2280+
<p class="admonition-title">Example</p>
2281+
<p>You can find a sample application that uses self communication <a href="https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/Tracing">here</a>.</p>
2282+
</div>
2283+
<p>There are two other methods of self communication which work in a different way but give a similar result:</p>
2284+
<ul>
2285+
<li>The <a href="../target-rts/message-communication/#sendcopytome"><code>sendCopyToMe()</code></a> TargetRTS function can be used to post a copy of a received message into the receiver's message queue. However, even if it's the receiver who asks for this to happen (typically by calling <code>sendCopyToMe(msg)</code> from a transition effect code snippet), this is really a request for the TargetRTS to re-send a copy of a previously dispatched message again. This means that the sender of the second message will not be the receiver, but the capsule which sent the first message.</li>
2286+
<li>It's possible to use a <a href="../target-rts/timers/">timer port</a> to set a one-shot timer with a relative time of 0. It will timeout quickly, but is usually less efficient than use of two connected behavior ports. It is also a less good approach if data needs to be passed with the message since timers only allow to pass untyped data.</li>
2287+
</ul>
22672288
<h3 id="port-multiplicity">Port Multiplicity</h3>
22682289
<p>At run-time an instance of a port can be connected to a port instance on another capsule. Such connections is what make a sent event be routed from the port on which it is sent, through a number of non-behavior ports, until it finally reaches a behavior port. By default a port has single multiplicity (1) meaning that at most one such connection can be established. However, you can specify a non-single multiplicity for a port to allow for more connections to be created at run-time. </p>
22692290
<p>In the example below a <code>Server</code> capsule has a port with multiplicity 100. At run-time an instance of that <code>Server</code> capsule can be connected to 100 different client ports, each of which can send events to the server.</p>

docs/installing/index.html

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,13 @@
479479
Setup C++ Build Tools
480480
</a>
481481

482+
</li>
483+
484+
<li class="md-nav__item">
485+
<a href="#install-c-extension" class="md-nav__link">
486+
Install C++ Extension
487+
</a>
488+
482489
</li>
483490

484491
</ul>
@@ -1431,6 +1438,13 @@
14311438
Setup C++ Build Tools
14321439
</a>
14331440

1441+
</li>
1442+
1443+
<li class="md-nav__item">
1444+
<a href="#install-c-extension" class="md-nav__link">
1445+
Install C++ Extension
1446+
</a>
1447+
14341448
</li>
14351449

14361450
</ul>
@@ -1523,7 +1537,8 @@ <h3 id="setup-java">Setup Java</h3>
15231537
<p>Here you will also see if the launching of the language server for some reason failed.</p>
15241538
<h3 id="setup-c-build-tools">Setup C++ Build Tools</h3>
15251539
<p>When Code RealTime builds generated C++ code it uses C++ build tools such as a make tool, a C++ compiler, a C++ linker etc. These tools need to be in the path when you start your IDE. If you have multiple C++ build tools installed, make sure the correct ones are present in the path before launching your IDE. For example, if you use the Microsoft C++ compiler, it's recommended to launch from a Visual Studio native tools command prompt with the correct version (e.g. 32 bit or 64 bit). Build errors caused by inconsistent versions of C++ build tools being used can be tricky to find.</p>
1526-
<p>You also need to install an extension for C/C++ development into your IDE. Even if you can use any such extension, Code RealTime provides the best integration with either <a href="https://code.visualstudio.com/docs/languages/cpp">C/C++ for Visual Studio Code</a> or <a href="https://clangd.llvm.org/">clangd</a>.</p>
1540+
<h3 id="install-c-extension">Install C++ Extension</h3>
1541+
<p>You also need to install an extension for C/C++ development into your IDE. This is required to get good support for editing C++ files in the IDE (content assist, navigation, syntax coloring etc). Even if you can use any C/C++ extension, Code RealTime provides the best integration with either <a href="https://code.visualstudio.com/docs/languages/cpp">C/C++ for Visual Studio Code</a> or <a href="https://clangd.llvm.org/">clangd</a>, so you should install one of them.</p>
15271542
<h2 id="uninstall">Uninstall</h2>
15281543
<p>To uninstall Code RealTime follow these steps:</p>
15291544
<p>1) Click "Extensions" in the left side-bar.</p>

docs/releases/CHANGELOG/index.html

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121

2222

23-
<title>3.1.0 (2025-11-19 12:02) - DevOps Code RealTime</title>
23+
<title>3.2.0 (2026-01-23 14:40) - DevOps Code RealTime</title>
2424

2525

2626

@@ -88,7 +88,7 @@
8888
<div data-md-component="skip">
8989

9090

91-
<a href="#310-2025-11-19-1202" class="md-skip">
91+
<a href="#320-2026-01-23-1440" class="md-skip">
9292
Skip to content
9393
</a>
9494

@@ -120,7 +120,7 @@
120120
<div class="md-header__topic" data-md-component="header-topic">
121121
<span class="md-ellipsis">
122122

123-
3.1.0 (2025-11-19 12:02)
123+
3.2.0 (2026-01-23 14:40)
124124

125125
</span>
126126
</div>
@@ -1295,6 +1295,25 @@
12951295

12961296

12971297

1298+
<h1 id="320-2026-01-23-1440">3.2.0 (2026-01-23 14:40)</h1>
1299+
<ol>
1300+
<li>For state and structure diagrams with manual layout it's now possible to freely route transition lines. You can decide where on the source and target symbol the line should connect to, and also add bendpoints. Some or all line bendpoints can be deleted by means of commands in the context menu that appears when you select a line, or bendpoints of a line, and press <code>ctrl+space</code>.</li>
1301+
<li>Diagrams now refresh automatically if their diagram settings change. This can for example happen if the <code>art_diagram_settings.json</code> file is committed to Git, and it changes after a Git command has run.</li>
1302+
<li>The diagram setting for whether excluded elements should be shown or not has now been split into two separate settings; one for state diagrams and another for structure diagrams. </li>
1303+
<li>Panning a class, structure or state diagram could previously only be done by clicking in the diagram background and then moving the mouse. However, when diagrams are zoomed in so a composite symbol cover the whole screen, this doesn't work well as it will instead move the composite symbol. Now it's possible to pan diagrams using the Page Up/Down keys (with or without the Shift key). It's also possible to pan with the mouse when the Space key is pressed down.</li>
1304+
<li>When you open a class diagram from the context menu of a C++ header file, and the file contains multiple types that can be shown in the diagram, the cursor position in the file is now used for knowing which of the types to open the diagram for. In this case a list of all types in the file is no longer shown, which gives a smoother workflow.</li>
1305+
<li>The sequence diagram viewer for trace files now reads the trace configuration that is present in a comment in the beginning of the file. If it finds that the trace contains <code>time2_receive</code> timestamps (which now will be there by default) it will automatically sort messages according to this timestamp. This makes it easier to interpret the sequence diagram, especially when synchronous communication is used.</li>
1306+
<li>The <code>RTTracer</code> class in the TargetRTS provides a new function <code>configure()</code> that allows to configure a trace programmatically (as an alternative to using the <code>-traceConfig</code> command-line option).</li>
1307+
<li>The <code>RTTracer</code> class in the TargetRTS provides a new function <code>note()</code> that allows to programmatically write notes into a trace. A timestamp is now also captured for a note. Read more about this in the <a href="https://secure-dev-ops.github.io/code-realtime/running-and-debugging/tracing/#custom-notes">documentation</a>. Also see the new sample <a href="https://secure-dev-ops.github.io/code-realtime/samples/#tracing">Tracing</a> which uses this feature.</li>
1308+
<li>It's now possible to specify in the trace configuration file the name of the trace file, and whether or not it should overwrite an already existing trace file with the same name. Certain variables are supported in the specified file name to make it possible to include the current timestamp in the trace file name as a way to ensure uniqueness.</li>
1309+
<li>Tracing has been extended to now include information about the thread in which a capsule instance executes.</li>
1310+
<li>Tracing now supports synchronous communication (i.e. invoke/reply). The sequence diagram viewer uses a <a href="https://secure-dev-ops.github.io/code-realtime/running-and-debugging/tracing/#synchronous-communication">special visualization</a> for messages that are synchronously invoked or replied. Both an explicit or implicit return message is supported, and is shown slightly differently on a sequence diagram.</li>
1311+
<li>The sequence diagram viewer now shows in a tooltip for a message how much time it took to handle that message. This feature requires that timestamps are available in the trace (the handle time is the difference between the <code>time3_handle</code> and <code>time2_receive</code> timestamps).</li>
1312+
<li>The sequence diagram viewer now draws the <code>external</code> lifeline, if present, with purple color to make it stand out from lifelines that represent user-created capsule instances.</li>
1313+
<li>The parser for <code>.art-trace</code> files (available on <a href="https://github.com/HCL-TECH-SOFTWARE/art-trace">GitHub</a>) has been extended to parse trace configuration data from a trace file. It also provides a utility for sorting messages according to one of its timestamps.</li>
1314+
<li>A <a href="https://github.com/HCL-TECH-SOFTWARE/art-trace/blob/main/samples/googleTraceEventFormat.ts">sample script</a> can be used for translating an <code>.art-trace</code> file into the Google Trace Event JSON Format. Such a JSON file can then be visualized in a so called flame chart in trace viewers that support this format, for example <a href="https://perfetto.dev/">Perfetto</a>.</li>
1315+
<li>Version 2.2.0 of the Art Exporter is now available. See <a href="https://model-realtime.hcldoc.com/help/topic/com.ibm.xtools.rsarte.webdoc/Utilities/Art%20Exporter.html">this page</a> for more detailed release notes for the Art Exporter.</li>
1316+
</ol>
12981317
<h1 id="310-2025-11-19-1202">3.1.0 (2025-11-19 12:02)</h1>
12991318
<ol>
13001319
<li>A new diagram setting has been added to control if excluded elements should be shown or not in state and structure diagrams. It's available both as a global workspace setting and as a setting for an individual diagram (i.e. a new checkbox in the Properties view). If shown, excluded transitions are now drawn with a "crossed" line style to be consistent with how other excluded elements are shown.</li>
898 Bytes
Loading
20.2 KB
Loading
7.78 KB
Loading
2.42 KB
Loading

0 commit comments

Comments
 (0)