Skip to content

Commit

Permalink
updated generated documentation on webpage by github-action [ci skip]
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] committed Jun 25, 2024
1 parent 20dbc1d commit 86c07e8
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 65 deletions.
49 changes: 27 additions & 22 deletions static/doc/master/_sources/pubsub.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -457,35 +457,40 @@ WriterGroup
The message publishing can be configured for realtime requirements. The RT-levels
go along with different requirements. The below listed levels can be configured:

UA_PUBSUB_RT_NONE -
---> Description: Default "none-RT" Mode
---> Requirements: -
---> Restrictions: -
UA_PUBSUB_RT_DIRECT_VALUE_ACCESS (Preview - not implemented)
---> Description: Normally, the latest value for each DataSetField is read out of the information model. Within this RT-mode, the
value source of each field configured as static pointer to an DataValue. The publish cycle won't use call the server read function.
---> Requirements: All fields must be configured with a 'staticValueSource'.
---> Restrictions: -
UA_PUBSUB_RT_FIXED_LENGTH (Preview - not implemented)
---> Description: All DataSetFields have a known, non-changing length. The server will pre-generate some
buffers and use only memcopy operations to generate requested PubSub packages.
---> Requirements: DataSetFields with variable size cannot be used within this mode.
---> Restrictions: The configuration must be frozen and changes are not allowed while the WriterGroup is 'Operational'.
UA_PUBSUB_RT_DETERMINISTIC (Preview - not implemented)
---> Description: -
---> Requirements: -
---> Restrictions: -

WARNING! For hard real time requirements the underlying system must be rt-capable.

UA_PUBSUB_RT_NONE
No realtime-specific configuration.

UA_PUBSUB_RT_DIRECT_VALUE_ACCESS
All PublishedDataSets need to point to a variable with a
``UA_VALUEBACKENDTYPE_EXTERNAL`` value backend. The value backend gets
cached when the configuration is frozen. No lookup of the variable from
the information is performed afterwards. This enables also big data
structures to be updated atomically with a compare-and-switch operation on
the ``UA_DataValue`` double-pointer in the backend.

UA_PUBSUB_RT_FIXED_SIZE
Validate that the message constains only fields with a known size.
Then the message fields have fixed offsets that are known ahead of time.

UA_PUBSUB_RT_DETERMINISTIC
Both direct-access and fixed-size is being used. The server pre-allocates
buffers when the configuration is frozen and uses only memcpy operations
to update the PubSub network messages for sending.

WARNING! For hard real time requirements the underlying system must be
RT-capable. Also note that each PubSubConnection can have a dedicated
EventLoop. That way normal client/server operations can run independently
from PubSub. The double-pointer in the ``UA_VALUEBACKENDTYPE_EXTERNAL`` value
backend allows avoid race-condition with non-blocking atomic operations.

.. code-block:: c
typedef enum {
UA_PUBSUB_RT_NONE = 0,
UA_PUBSUB_RT_DIRECT_VALUE_ACCESS = 1,
UA_PUBSUB_RT_FIXED_SIZE = 2,
UA_PUBSUB_RT_DETERMINISTIC = 4,
UA_PUBSUB_RT_DETERMINISTIC = 3,
} UA_PubSubRTLevel;
typedef struct {
Expand Down
49 changes: 27 additions & 22 deletions static/doc/master/_static/pubsub.rst
Original file line number Diff line number Diff line change
Expand Up @@ -457,35 +457,40 @@ WriterGroup
The message publishing can be configured for realtime requirements. The RT-levels
go along with different requirements. The below listed levels can be configured:

UA_PUBSUB_RT_NONE -
---> Description: Default "none-RT" Mode
---> Requirements: -
---> Restrictions: -
UA_PUBSUB_RT_DIRECT_VALUE_ACCESS (Preview - not implemented)
---> Description: Normally, the latest value for each DataSetField is read out of the information model. Within this RT-mode, the
value source of each field configured as static pointer to an DataValue. The publish cycle won't use call the server read function.
---> Requirements: All fields must be configured with a 'staticValueSource'.
---> Restrictions: -
UA_PUBSUB_RT_FIXED_LENGTH (Preview - not implemented)
---> Description: All DataSetFields have a known, non-changing length. The server will pre-generate some
buffers and use only memcopy operations to generate requested PubSub packages.
---> Requirements: DataSetFields with variable size cannot be used within this mode.
---> Restrictions: The configuration must be frozen and changes are not allowed while the WriterGroup is 'Operational'.
UA_PUBSUB_RT_DETERMINISTIC (Preview - not implemented)
---> Description: -
---> Requirements: -
---> Restrictions: -

WARNING! For hard real time requirements the underlying system must be rt-capable.

UA_PUBSUB_RT_NONE
No realtime-specific configuration.

UA_PUBSUB_RT_DIRECT_VALUE_ACCESS
All PublishedDataSets need to point to a variable with a
``UA_VALUEBACKENDTYPE_EXTERNAL`` value backend. The value backend gets
cached when the configuration is frozen. No lookup of the variable from
the information is performed afterwards. This enables also big data
structures to be updated atomically with a compare-and-switch operation on
the ``UA_DataValue`` double-pointer in the backend.

UA_PUBSUB_RT_FIXED_SIZE
Validate that the message constains only fields with a known size.
Then the message fields have fixed offsets that are known ahead of time.

UA_PUBSUB_RT_DETERMINISTIC
Both direct-access and fixed-size is being used. The server pre-allocates
buffers when the configuration is frozen and uses only memcpy operations
to update the PubSub network messages for sending.

WARNING! For hard real time requirements the underlying system must be
RT-capable. Also note that each PubSubConnection can have a dedicated
EventLoop. That way normal client/server operations can run independently
from PubSub. The double-pointer in the ``UA_VALUEBACKENDTYPE_EXTERNAL`` value
backend allows avoid race-condition with non-blocking atomic operations.

.. code-block:: c
typedef enum {
UA_PUBSUB_RT_NONE = 0,
UA_PUBSUB_RT_DIRECT_VALUE_ACCESS = 1,
UA_PUBSUB_RT_FIXED_SIZE = 2,
UA_PUBSUB_RT_DETERMINISTIC = 4,
UA_PUBSUB_RT_DETERMINISTIC = 3,
} UA_PubSubRTLevel;
typedef struct {
Expand Down
44 changes: 24 additions & 20 deletions static/doc/master/pubsub.html
Original file line number Diff line number Diff line change
Expand Up @@ -536,30 +536,34 @@ <h2>WriterGroup<a class="headerlink" href="#writergroup" title="Link to this hea
<h2>WriterGroup<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<p>The message publishing can be configured for realtime requirements. The RT-levels
go along with different requirements. The below listed levels can be configured:</p>
<p>UA_PUBSUB_RT_NONE -
—&gt; Description: Default “none-RT” Mode
—&gt; Requirements: -
—&gt; Restrictions: -
UA_PUBSUB_RT_DIRECT_VALUE_ACCESS (Preview - not implemented)
—&gt; Description: Normally, the latest value for each DataSetField is read out of the information model. Within this RT-mode, the
value source of each field configured as static pointer to an DataValue. The publish cycle won’t use call the server read function.
—&gt; Requirements: All fields must be configured with a ‘staticValueSource’.
—&gt; Restrictions: -
UA_PUBSUB_RT_FIXED_LENGTH (Preview - not implemented)
—&gt; Description: All DataSetFields have a known, non-changing length. The server will pre-generate some
buffers and use only memcopy operations to generate requested PubSub packages.
—&gt; Requirements: DataSetFields with variable size cannot be used within this mode.
—&gt; Restrictions: The configuration must be frozen and changes are not allowed while the WriterGroup is ‘Operational’.
UA_PUBSUB_RT_DETERMINISTIC (Preview - not implemented)
—&gt; Description: -
—&gt; Requirements: -
—&gt; Restrictions: -</p>
<p>WARNING! For hard real time requirements the underlying system must be rt-capable.</p>
<dl class="simple">
<dt>UA_PUBSUB_RT_NONE</dt><dd><p>No realtime-specific configuration.</p>
</dd>
<dt>UA_PUBSUB_RT_DIRECT_VALUE_ACCESS</dt><dd><p>All PublishedDataSets need to point to a variable with a
<code class="docutils literal notranslate"><span class="pre">UA_VALUEBACKENDTYPE_EXTERNAL</span></code> value backend. The value backend gets
cached when the configuration is frozen. No lookup of the variable from
the information is performed afterwards. This enables also big data
structures to be updated atomically with a compare-and-switch operation on
the <code class="docutils literal notranslate"><span class="pre">UA_DataValue</span></code> double-pointer in the backend.</p>
</dd>
<dt>UA_PUBSUB_RT_FIXED_SIZE</dt><dd><p>Validate that the message constains only fields with a known size.
Then the message fields have fixed offsets that are known ahead of time.</p>
</dd>
<dt>UA_PUBSUB_RT_DETERMINISTIC</dt><dd><p>Both direct-access and fixed-size is being used. The server pre-allocates
buffers when the configuration is frozen and uses only memcpy operations
to update the PubSub network messages for sending.</p>
</dd>
</dl>
<p>WARNING! For hard real time requirements the underlying system must be
RT-capable. Also note that each PubSubConnection can have a dedicated
EventLoop. That way normal client/server operations can run independently
from PubSub. The double-pointer in the <code class="docutils literal notranslate"><span class="pre">UA_VALUEBACKENDTYPE_EXTERNAL</span></code> value
backend allows avoid race-condition with non-blocking atomic operations.</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">typedef</span><span class="w"> </span><span class="k">enum</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">UA_PUBSUB_RT_NONE</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
<span class="w"> </span><span class="n">UA_PUBSUB_RT_DIRECT_VALUE_ACCESS</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span>
<span class="w"> </span><span class="n">UA_PUBSUB_RT_FIXED_SIZE</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span>
<span class="w"> </span><span class="n">UA_PUBSUB_RT_DETERMINISTIC</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span>
<span class="w"> </span><span class="n">UA_PUBSUB_RT_DETERMINISTIC</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span>
<span class="p">}</span><span class="w"> </span><span class="n">UA_PubSubRTLevel</span><span class="p">;</span>

<span class="k">typedef</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="p">{</span>
Expand Down
2 changes: 1 addition & 1 deletion static/doc/master/searchindex.js

Large diffs are not rendered by default.

Binary file modified static/doc/open62541-master.pdf
Binary file not shown.

0 comments on commit 86c07e8

Please sign in to comment.