Squall Line Software's Open Source Projects: Issueshttps://oss.squallline.com/https://oss.squallline.com/favicon.ico?16519839502020-09-24T06:00:16ZSquall Line Software's Open Source Projects
Redmine Disorder - Defect #23 (Closed): default BitField assignment operator doesn't do what one might ex...https://oss.squallline.com/issues/232020-09-24T06:00:16ZTony Ciavarella
<p>Consider this:</p>
<pre><code class="cpp syntaxhl" data-language="cpp"><span class="k">union</span> <span class="n">A</span>
<span class="p">{</span>
<span class="n">disorder</span><span class="o">::</span><span class="n">utility</span><span class="o">::</span><span class="n">BitField</span><span class="o"><</span><span class="kt">uint64_t</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">32</span><span class="o">></span> <span class="n">x</span><span class="p">;</span>
<span class="n">disorder</span><span class="o">::</span><span class="n">utility</span><span class="o">::</span><span class="n">BitField</span><span class="o"><</span><span class="kt">uint64_t</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">32</span><span class="o">></span> <span class="n">y</span><span class="p">;</span>
<span class="kt">uint64_t</span> <span class="n">all</span><span class="p">;</span>
<span class="p">};</span>
<span class="n">A</span> <span class="n">a1</span><span class="p">,</span> <span class="n">a2</span><span class="p">;</span>
<span class="n">a1</span><span class="p">.</span><span class="n">x</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="n">a1</span><span class="p">.</span><span class="n">y</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
<span class="n">a2</span><span class="p">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">a1</span><span class="p">.</span><span class="n">x</span><span class="p">;</span> <span class="c1">// this actually assigns all 64 bits of a1 to a2, not just the x 32-bits.</span>
</code></pre>
<p>Consider overriding the default operator= to make this behave more intuitively. Overriding operator= will make BitField usage more complex because it will cause the move assignment operator, copy constructor, and move constructor to become non-trivial which will also bubble up to whatever data structures BitFields are used in.</p>
<p>Note that the above example can be made to do what is expected by writing it like this instead:<br /><pre><code class="cpp syntaxhl" data-language="cpp"><span class="n">a2</span><span class="p">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">a1</span><span class="p">.</span><span class="n">x</span><span class="p">.</span><span class="n">get</span><span class="p">();</span> <span class="c1">// this only assigns the x 32-bits of a1 to a2.</span>
</code></pre></p> Disorder - Feature #22 (Closed): restore boost::optional supporthttps://oss.squallline.com/issues/222020-09-16T02:36:51ZTony Ciavarella
<p>Looks like there's no way for DISORDER_HAVE_BOOST_OPTIONAL_HPP to become defined. This may have gotten lost in the waf to meson build system conversion.</p> Disorder - Defect #21 (Rejected): fix relative timestamp based dead reckoninghttps://oss.squallline.com/issues/212020-09-12T03:05:56ZTony Ciavarella
<p>Right now, it sucks. Fix it.</p> Disorder - Feature #20 (Closed): add inflator test cases to io action and io report unit testshttps://oss.squallline.com/issues/202020-09-07T16:22:03ZTony CiavarellaDisorder - Defect #19 (Closed): delete uint24_thttps://oss.squallline.com/issues/192020-09-07T16:20:46ZTony Ciavarella
<p>It's fun, but uint24_t should be deleted in favor of using two padding fields, an 8 bit and a 16 bit, where necessary. Less unnecessary stuff to maintain is better.</p> Disorder - Defect #18 (Closed): replace boost/random usage with standard C++11 <random>https://oss.squallline.com/issues/182017-05-15T04:56:55ZTony CiavarellaDisorder - Defect #17 (Closed): add sanity checks to IPPacketDecoderhttps://oss.squallline.com/issues/172017-04-13T04:12:52ZTony Ciavarella
<p>Add sanity checks in IPPacketDecoder to prevent buffer overrun and subsequent undefined behavior if a malformed and/or malicious PDU is received.</p> Disorder - Defect #16 (Closed): remove dependency on boost::factoryhttps://oss.squallline.com/issues/162017-04-13T04:11:30ZTony Ciavarella
<p>The boost::factory dependency is easily replaced with std::function and lambdas so get rid of it. One less dependency on things outside the standard library is good.</p> Disorder - Defect #15 (Closed): stop using boost::shared_ptr in pdu::Disseminator::Receiverhttps://oss.squallline.com/issues/152014-01-15T02:47:39ZTony Ciavarella
<p>Use of boost::shared_ptr<PDU> in pdu::Disseminator::Receiver is cute, but it prevents the declaration of type specific PDU receivers requiring the PDU* to be casted within the receiver.</p>
<p>A better way should be found to remove these limitations.</p> Disorder - Feature #14 (Closed): add an entity event testhttps://oss.squallline.com/issues/142013-12-29T06:32:15ZTony Ciavarella
<p>The entity event mechanism needs to be exercised in a test.</p> Disorder - Defect #13 (Closed): don't crash when inflating a datum specification with unknown dat...https://oss.squallline.com/issues/132013-12-29T06:30:36ZTony Ciavarella
<p>If the DatumFactory fails to produce a fixed or variable datum in DatumSpecification::accept crashing ensues. While this situation cannot be dealt with nominally, it certainly shouldn't cause crashing.</p>
<p>It probably should log an error and skip over the datum based on the anticipated size accounting for padding.</p> Disorder - Feature #12 (Closed): add logic to handle receipt of stop/freeze and start/resume PDUshttps://oss.squallline.com/issues/122013-06-08T07:20:25ZTony Ciavarella
<p>These silly PDUs can be transmitted, but they aren't actually handled by Disorder. They should be.</p> Disorder - Feature #11 (Rejected): need to take goofy DIS body coordinate system into accounthttps://oss.squallline.com/issues/112013-06-06T19:41:01ZTony Ciavarella
<p>The goofy DIS body coordinate system (+X out front, +Y to right, and +Z out the bottom) is not taken into account when dealing with body relative things in PDUs.</p>
<p>Obviously, something must be done about it.</p> Disorder - Feature #10 (Closed): support dead reckoning of articulated partshttps://oss.squallline.com/issues/102013-05-15T17:53:36ZTony Ciavarella
<p>From IEEE 1278.1-1995:</p>
<a name="A216-Dead-reckoning-of-articulated-parts"></a>
<h2 >A.2.1.6 Dead reckoning of articulated parts<a href="#A216-Dead-reckoning-of-articulated-parts" class="wiki-anchor">¶</a></h2>
<p>The issuing simulation application may specify the dead reckoning of an articulated part by including position, extension, x, y, z, azimuth, elevation, and/or rotation rate type metrics in an Articulation Parameter record of an Entity State PDU (see 4.5.2.1). The same dead reckoning thresholds (see 4.5.2.1.2) that apply to an entity apply to its articulated parts. Note that angular movement of an articulated part may result in a linear threshold being exceeded. Absolute linear error for each articulated part in a chain of connected parts shall be used to determine if a threshold has been exceeded.</p> Disorder - Feature #9 (Closed): add the test name to the test output status linehttps://oss.squallline.com/issues/92013-05-14T06:39:11ZTony Ciavarella
<pre>
[PASS]: all 1 tests passed!
[PASS]: all 1789 tests passed!
[PASS]: all 1192 tests passed!
[PASS]: all 56 tests passed!
[PASS]: all 75091 tests passed!
[PASS]: all 12 tests passed!
[PASS]: all 85 tests passed!
[PASS]: all 7659 tests passed!
[PASS]: all 46 tests passed!
[PASS]: all 2999 tests passed!
</pre>
<p>That output there is okay, but it would be nicer if it said which test each line belonged to.</p>