Robotics Service Bus: Issueshttps://code.cor-lab.de/https://code.cor-lab.de/favicon.ico?14019720732016-06-08T12:17:41ZOpen Source Collaboration Platform
Redmine Tasks #2559 (New): Scope renaminghttps://code.cor-lab.de/issues/25592016-06-08T12:17:41ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.deFeature #2227 (Feedback): Symlinks/Aliases for Scopeshttps://code.cor-lab.de/issues/22272015-04-21T14:24:14ZC. Leichsenringcmertes@cit-ec.uni-bielefeld.de
<p>For various reasons it would be useful to make the same informer have multiple scopes, i.e. de facto symlinks or aliases for scopes. Example use cases would be:</p>
<ul>
<li>provide a list of services or devices by human-readable name and number</li>
<li>list services by different criteria</li>
<li>provide different formats under different scopes but link to a default scope</li>
<li>.... basically every reason why one would want symlinks in file systems, too</li>
</ul> Tasks #2216 (New): Consider using git subtrees instead of submoduleshttps://code.cor-lab.de/issues/22162015-04-02T12:51:44ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<p>We can all agree, that our submodule setup sucks.</p>
<p>We discussed and rejected gitslave: <a class="external" href="https://projects.cor-lab.org/projects/corcse/wiki/GitSlave">https://projects.cor-lab.org/projects/corcse/wiki/GitSlave</a></p>
<p>Nicolas Hafner suggests git subtrees, which I (jmoringe) did not know about. We should probably look into that possibility.<br /><a class="external" href="http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/">http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/</a></p> Feature #2185 (New): Provide Contrib Library or Folder for Community Additionshttps://code.cor-lab.de/issues/21852015-02-24T10:43:19ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<p>The proposal here is to provide a <code>contrib</code> folder or library that contains community additions to the framework core. These additions should primarily consist of plugins or additional implementations for the RSB extension points that do not justify a standalone plugin library or can not (yet) be included in the core library. This should allow faster dissemination of new experimental features to the community without fragmentation or erosion of the library core.</p>
<p>The technical means to achieve this (folder vs. library, cmake components or not, integration with core documentation, ...) needs to be discussed.</p> Bug #2167 (New): Check that RemoteServer instances delete EventId instances in case of RPC timeoutshttps://code.cor-lab.de/issues/21672015-02-04T16:08:22ZJ. Wienkejwienke@techfak.uni-bielefeld.de
<p>I have observed that EventId instances are collected in a java process in case frequent RPC calls time out. This might be due to the association of responses with requests.</p> Feature #2051 (In Progress): Qt-based graphical event loggerhttps://code.cor-lab.de/issues/20512014-10-09T09:12:23ZR. Haschkerhaschke@techfak.uni-bielefeld.de
<p>initial commit to feature branch "feature-loggerqt"</p> Enhancement #2050 (New): allow shallow data copy for converter arguments?https://code.cor-lab.de/issues/20502014-10-09T08:57:38ZR. Haschkerhaschke@techfak.uni-bielefeld.de
<p>Hi Sebastian and all,</p>
<p>Why did you decided to pass data to converters by ref instead of shared_ptr?<br />This requires to copy data over and over. Instead one could easily also pass the shared_ptr,<br />e.g. in <a href="/projects/rsb/repository/rsb-cpp/entry/src/rsb/transport/socket/InPullConnector.cpp#L90" class="source">source:rsb-cpp|src/rsb/transport/socket/InPullConnector.cpp#L90</a>:</p>
<pre><code class="cpp syntaxhl"><span class="CodeRay"> boost::shared_ptr<<span class="predefined-type">string</span>> wireData = static_pointer_cast<<span class="predefined-type">string</span>>(event->getData());
<span class="predefined-type">string</span> wireSchema = event->getMetaData().getUserInfo(<span class="string"><span class="delimiter">"</span><span class="content">rsb.wire-schema</span><span class="delimiter">"</span></span>);
AnnotatedData d = getConverter(wireSchema)->deserialize(wireSchema, *wireData);
</span></code></pre>
<p>and then reuse the pointer instead of reallocating, e.g. in <a href="/projects/rsb/repository/entry/rsb-cpp/src/rsb/converters/ByteArrayConverter.cpp#L49" class="source">source:rsb-cpp/src/rsb/converters/ByteArrayConverter.cpp#L49</a>:</p>
<pre><code class="cpp syntaxhl"><span class="CodeRay"> AnnotatedData ByteArrayConverter::deserialize(<span class="directive">const</span> std::string& <span class="comment">/*wireSchema*/</span>,
<span class="directive">const</span> string& wire) {
<span class="keyword">return</span> make_pair(getDataType(), boost::shared_ptr<<span class="predefined-type">string</span>>(<span class="keyword">new</span> <span class="predefined-type">string</span>(wire)));
}
</span></code></pre> Enhancement #2041 (Feedback): merge URI spec into ParticipantConfighttps://code.cor-lab.de/issues/20412014-10-06T21:17:18ZR. Haschkerhaschke@techfak.uni-bielefeld.de
<p>provide utilities to parse rsb-URIs (see <a class="external" href="http://docs.cor-lab.de//rsb-manual/trunk/html/specification-uris.html">http://docs.cor-lab.de//rsb-manual/trunk/html/specification-uris.html</a>)</p>
<p>provide thin uri class, full-fledged class might become part of boost: <a class="external" href="https://github.com/cpp-netlib/uri">https://github.com/cpp-netlib/uri</a></p>
<p>provide ParticipantConfig ParticipantConfig::merge (const uri&) to merges uri-parameters of existing ParticipantConfig<br />- uri parameters, if available, overwrite existing parameters<br />- new transport is added if neccessary</p>
<p>provide ParticipantConfig ParticipantConfig::replace (const uri&): as merge, but disable (or remove?) other transports</p>
<p>raises std::invalid_argument on failures:<br />- invalid URI syntax<br />- host/port given, but no transport specified</p> Bug #1914 (New): Reader does not work with multi-connector setuphttps://code.cor-lab.de/issues/19142014-07-04T11:44:13ZJ. Wienkejwienke@techfak.uni-bielefeld.de
<p>Originally reported from Timo Korthals on the mailing list:</p>
<blockquote>
<p>wie gestern angekündigt, will ich nun ein seltsames Verhalten des<br />"readers" mitteilen:<br />Situation:<br />1x Informer<br />1x Reader</p>
<p>Wenn der Reader sowohl auf inprocess, als auch auf socket hört, empfängt<br />er keine socket-Nachrichten vom Informer. rsb.conf:<br />[transport.inprocess]<br />enabled = 1<br />[transport.socket]<br />enabled = 1<br />host = localhost<br />server = auto<br />port = 55555</p>
<p>Wenn der Reader nur auf socket hört, dann empfängt er auch Nachrichten<br />vom Informer. rsb.conf:<br />[transport.inprocess]<br />enabled = 0<br />[transport.socket]<br />enabled = 1<br />host = localhost<br />server = auto<br />port = 55555</p>
</blockquote> Feature #1771 (In Progress): Add META block to TIDELog backendhttps://code.cor-lab.de/issues/17712014-02-14T11:48:57ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.deFeature #1770 (In Progress): Add TYPE block to TIDELog backendhttps://code.cor-lab.de/issues/17702014-02-14T11:43:09ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.deTasks #1768 (New): Evaluate Boost.Exception for dealing with re-thrown exceptionshttps://code.cor-lab.de/issues/17682014-02-14T06:48:18ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<p>See <a class="external" href="http://www.boost.org/doc/libs/1_55_0/libs/exception/doc/boost-exception.html">http://www.boost.org/doc/libs/1_55_0/libs/exception/doc/boost-exception.html</a>.</p>
<p>This library allows successively adding more information to exceptions as they are caught and re-thrown.</p>
Open Questions
<ul>
<li>Platform/compiler compatibility</li>
<li>Unwind model</li>
<li>Interaction with debugger</li>
<li>Will this allow us to get rid of things like the <code>wrapExceptions</code> parameter in <code>rsc::plugins::Plugin::unload</code>?</li>
</ul>
<p>Equally applies to <a href="https://code.cor-lab.de/projects/rsc" class="project">Robotics Systems Commons</a>.</p> Feature #1747 (New): Implement introspection event receiver and client APIhttps://code.cor-lab.de/issues/17472014-02-06T17:32:47ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.deFeature #1102 (In Progress): Use data type definitions stored in log fileshttps://code.cor-lab.de/issues/11022012-07-27T08:53:25ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<p><code>bat-{cat,play,merge}</code> should use the data type definitions stored in log files when possible. This avoids loading IDL files all the time.</p> Enhancement #551 (Feedback): Language-specific configurationhttps://code.cor-lab.de/issues/5512011-09-07T08:09:08ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<p>We already have things like<br /><pre>
[transport.spread.converter.cpp]
bool = bool
image = IplImage
</pre><br />in the current configuration scheme.</p>
<p>With the introduction of more technical tunable parameters (e.g. <a href="https://code.cor-lab.de/issues/548" class="issue tracker-5 status-3 priority-4 priority-default closed parent" title="Threadless RSB (Resolved)">#548</a>, <a href="https://code.cor-lab.de/issues/550" class="issue tracker-2 status-3 priority-4 priority-default closed child" title="Selection of Receiving Strategy (Resolved)">#550</a>, <a href="https://code.cor-lab.de/issues/551" class="issue tracker-5 status-4 priority-5 priority-high3" title="Language-specific configuration (Feedback)">#551</a>), it seems unlikely that a single configuration file can be used to configure all language implementation simultaneously.</p>
Two solutions come to mind:
<ul>
<li>In addition to <code>rsb.conf</code>, have language-specific configuration file like <code>rsb-cpp.conf</code> that take precedence over the generic one</li>
<li>Extend the approach mentioned above and introduce language-specific options like <code>eventprocessing.receivingstrategy.cpp</code></li>
</ul>