===Summary by version ===
 
===Summary by version ===
 
This table provides quick access to what's new in each version.
 
This table provides quick access to what's new in each version.
 +
 +
===Release 2024.1-0 (03/05/2024)===
 +
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|CSharpAPI
 +
|valign="top"|
 +
<ul><li>SimWBCSharpAPI.dll</li>
 +
<ul>
 +
    <li>Add support to testCreate() for async models, python models.</li>
 +
</ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|
 +
<ul>
 +
    <li>UEI</li>
 +
    <ul>
 +
              <li>Add support for UEI hardware</li>
 +
    </ul>
 +
</ul>
 +
 +
<ul>
 +
    <li>rFpro</li>
 +
    <ul>
 +
              <li>We used to write 0.0.0.0 as the IPAddress for PhysicsModel in the INI file.
 +
          This was to listen on every interface. This sometimes did not work as expected and
 +
          bound the connection to only the loopback connection. With new behavior, we use the
 +
          existing IPAddress if any.</li>
 +
    </ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|
 +
<ul>
 +
    <li>MLToolkit</li>
 +
    <ul>
 +
              <li><b>Behavior change consideration</b>: The RTDB variable names generated from SimWB
 +
          fromRTDB & toRTDB blocks are absolute even with hierarchical setting for top-level
 +
          models. In other words, the model name is not appended for the RTDB variables created
 +
          from fromRTDB & toRTDB blocks when the said blocks are in the top-level or parent
 +
          model.</li>
 +
                <li>Add support for shared parameters in reference models hierarchy</li>
 +
              <li>Add support for MATLAB R2023b</li>
 +
 
 +
    </ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|Python API
 +
|valign="top"|
 +
<ul>
 +
    <li> PYToolkit </li>
 +
    <ul>
 +
        <li>Add support for async models to testCreate()</li>
 +
      <ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|
 +
 +
<ul>
 +
    <li> cfgsrv </li>
 +
    <ul>
 +
        <li>Add support to save the list of hardware records from a CAN DBC inmport.
 +
          The records are saved in the Hardware.Records folder of the current project with
 +
          the name of the DBC file with the .hrec.dbc extension.</li>
 +
      </ul>
 +
 +
    <li> scheduler </li>
 +
    <ul>
 +
          <li>Add internal variables to SimWBStats to keep track of time transpired since
 +
          epoch (01-01-1970): ~SimWBStats.clock.sec and ~SimWBStats.clock.nsec.</li>
 +
      </ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|SimWB WSL
 +
|valign="top"|
 +
<ul>
 +
    <li>Installer</li>
 +
    <ul>
 +
          <li>Support for SimWB under Windows added.</li>
 +
    </ul>
 +
</ul>
 +
|}
 +
 +
===Release 2023.2-0 (08/17/2023)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|
 +
<ul>
 +
    <li>ddc arinc 429</li>
 +
    <ul>
 +
              <li>Support for SDI in arinc 429 labels.</li>
 +
    </ul>
 +
    <li>memin/memout</li>
 +
    <ul>
 +
                <li>Support for DMA on 5565 reflective memory</li>
 +
      </ul>
 +
      <li>rtdbitemcopy</li>
 +
      <ul>
 +
                <li>Add support to copy input items to output items. There is a new I/O task <b>rtdbitemcopyout</b> out to implement this. Mapping is done in the original GUI panel.</li>
 +
        </ul> 
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top" | MATLAB/Simulink
 +
|valign="top" |
 +
<ul>
 +
      <li>MLToolkit</li>
 +
      <ul>
 +
            <li>packNGo has 'minimalHeaders' set to false. All header files found on include paths are now included in the ZIP file.</li>
 +
      </ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"| SimWB API
 +
|valign="top" |
 +
<ul>
 +
      <li>RTDB access API</li>
 +
        <ul>
 +
                <li><b>Incompatibility Consideration</b>
 +
<br>The memory layout of RTDB has been modified to improve real-time performance. To  do this the rtFlags have been moved out of the RTDBItem structure. If you get an error like the following:<br>
 +
     
 +
<pre>filename.c:10:64:  error:  'RTDBItem' {aka 'struct RTDBItem'} has no member named 'data'; did you mean 'meta'?
 +
            if (point->pItem->data.rtFlags |= RTDBFL_OUTOFEURANGE)  {
 +
                              ^~~~
 +
                              meta
 +
</pre>
 +
You will need to change the code that accesses the rtFlags. You can use newly added API as below to get the address of rtFlags:<br/>
 +
<pre>
 +
unsigned char *rtFlagsAddress;
 +
rtFlagsAddress  ccurRTDB_getItemRTFlagsAddress(pItem);
 +
</pre>
 +
where pItem is the RTDBItem. You can also access the value instead of address as demonstrated below:<br/>
 +
<pre>
 +
unsigned char  rtFlags;
 +
rtFlags = ccurRTDB_getItemRTFlagsP(pItem);
 +
</pre>
 +
</ul>
 +
 +
|}
 +
 +
===Release 2023.1-1 (05/08/2023)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|
 +
<ul>
 +
    <li>iadssrcasyncio</li>
 +
    <ul>
 +
              <li>Added support for IADS board.</li>
 +
    </ul>
 +
</ul>
 +
   
 +
|}
 +
 +
===Release 2023.1-0 (04/14/2023)===
 +
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Control Center
 +
|valign="top"|
 +
<ul>
 +
    <li>RTDB & I/O Mapping </li>
 +
    <ul>
 +
          <li>Add support for Advantech 1758 DIO mapping panel.</li>
 +
      </ul>
 +
     
 +
      <li>Programs</li>
 +
      <ul>
 +
          <li>Add support for Python synchronous and asynchronous models</li>
 +
        </ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top" | I/O Tasks
 +
|valign="top" |
 +
<ul>
 +
    <li>can_sckasyncio</li>
 +
    <ul>
 +
          <li> Make sure we don't overflow CAN/LINmessage tables</li>
 +
    </ul>
 +
 +
    <li>can_asyncio</li>
 +
    <ul>
 +
          <li> Make sure we don't overflow CAN/LIN message tables</li>
 +
    </ul>
 +
   
 +
    <li> ixxat640asyncio</li>
 +
    <ul>
 +
        <li>Add support for CAN custom bit timing parameters </li>
 +
        <li>Make sure we don't overflow CAN/LIN message tables</li>
 +
        <li>Increase maximum number of LIN messages to 512</li>
 +
    </ul>
 +
   
 +
    <li> ixxatasyncio</li>
 +
    <ul>
 +
        <li>Add support for CAN custom bit timing parameters </li>
 +
        <li>Make sure we don't overflow CAN/LIN message tables</li>       
 +
    </ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top" | MATLAB/Simulink
 +
|valign="top" |
 +
<ul>
 +
    <li>MLToolkit</li>
 +
    <ul>
 +
          <li>Added support for MATLAB R2023a</li>
 +
          <li> Added release-specific UDP block libraries for:
 +
          <ul>
 +
                  <li>R2011a to R2018b</li>
 +
                  <li>R2019a to R2019b</li>
 +
                  <li>R2020a to newer</li>
 +
          </ul>
 +
      </ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top" | Python API
 +
|valign="top" |
 +
<ul>
 +
    <li>PYToolkit</li>
 +
    <ul>
 +
          <li> Added API calls in simwbRT modules to support Python models
 +
                <ul>
 +
                          <li>waitAsyncResume()</li>
 +
                          <li>getSessionUserParm()</li>
 +
                          <li>modelDataExchangeInit()</li>
 +
                          <li>modelCopyInputs()</li>
 +
                            <li>initFailed()</li>
 +
                </ul>
 +
          </li>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top" | SimWB API
 +
|valign="top" |
 +
<ul>
 +
    <li> CScript API</li>
 +
      <ul>
 +
          </li> Add support for 32-bit C-Scripts</li>
 +
      </ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top" | SimWB Core
 +
|valign="top" |
 +
<ul>
 +
    <li>scheduler</li>
 +
    <ul>
 +
          <li>Add support for 16-core license</li>
 +
    </ul>
 +
</ul>
 +
 +
|}
 +
 +
===Release 2022.2-0 (11/04/2022)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|
 +
<ul><li>rfpro</li>
 +
<ul>
 +
  <li>Automatic mapping for VI-grade DriveSim.</li>
 +
</ul>
 +
<li>rfpro_ts_in</li>
 +
<ul>
 +
  <li>Added support for rFproTerrainServer 2022a. Note TerrainServer has been renamed as rFproTerrainServer.</li>
 +
</ul>
 +
<li>rfpro_ts_in</li>
 +
<ul>
 +
  <li>Initial support for ROS messages.</li>
 +
</ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|
 +
<ul>
 +
  <li>RTDB</li>
 +
    <ul>
 +
      <li>Support for arrays of structures and structures in RTDB to support structure I/O mapping.</li>
 +
      <li>Items defined as arrays of structures. I.e. point[10].xx[12] are expanded.</li>
 +
    </ul>
 +
  <li>cfgsrv</li>
 +
    <ul>
 +
        <li>Add global refresh lock so that when another RTDB is loaded by sched, all the refresh items are cleared.</li>
 +
        <li>Support for ROS message board.</li>
 +
    </ul>
 +
  <li>scheduler</li>
 +
    <ul>
 +
        <li>Add global refresh lock so that when another RTDB is loaded by sched, all the refresh items are cleared. sched will notify cfgsrv via a SIGUSR1.</li>
 +
        <li>Expand RTDB items that are defined as arrays of structures.</li>
 +
    </ul>
 +
</ul>
 +
 +
|}
 +
 +
===Release 2022.1-1 (07/18/2022)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|
 +
<ul>
 +
  <li>CP-FPGA-ArV</li>
 +
    <ul>
 +
        <li>Added support for NPhase Wavegen and WavegenRx</li>
 +
        <li>Added Timeout feature in PWM Input IP</li>
 +
    </ul>
 +
</ul>
 +
|}
 +
 +
===Release 2022.1-0 (05/13/2022)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|CSharpAPI
 +
|valign="top"|
 +
<ul><li>SimWBCSharpAPI.dll</li>
 +
<ul>
 +
  <li>Added support for VI-Drivesim FMUs.</li>
 +
</ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|FMU
 +
|valign="top"|
 +
<ul>
 +
  <li>adamsMain</li>
 +
    <ul>
 +
      <li>Added support for VI-drivesim</li>
 +
    </ul>
 +
 +
  <li> fmuMain</li>
 +
    <ul>
 +
        <li>Added support for VI-drivesim</li>
 +
    </ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|
 +
<ul>
 +
  <li>canasyncio</li>
 +
    <ul>
 +
        <li>Set CAN board irq affinity to same cpu that we have been assigned so that when we change the task cpu the irq affinity will move with it.</li>
 +
        <li>Refactor CAN I/o task code to share the same functions for packing / unpacking messages.</li>
 +
        <li>Spread CAN message send across multiple slots the even out messages transmissions and reduce the possibility to fill the board hardware queue.</li>
 +
    </ul>
 +
  <li>canout</li>
 +
      <ul>
 +
          <li>Refactor CAN I/o task code to share the same functions for packing / unpacking messages.</li>
 +
          <li>Spread CAN message send across multiple slots the even out messages transmissions and reduce the possibility to fill the board hardware queue.</li>
 +
      </ul>
 +
 +
  <li>ixxat640asyncio</li>
 +
      <ul>
 +
          <li>Refactor CAN I/o task code to share the same functions for packing / unpacking messages.</li>
 +
          <li>Spread CAN message send across multiple slots the even out messages transmissions and reduce the possibility to fill the board hardware queue.</li>
 +
      </ul>
 +
 +
  <li>ixxat640out</li>
 +
      <ul>
 +
          <li>Refactor CAN I/o task code to share the same functions for packing / unpacking messages.</li>
 +
          <li>Spread CAN message send across multiple slots the even out messages transmissions and reduce the possibility to fill the board hardware queue.</li>
 +
      </ul>
 +
 +
  <li>ixxatasyncio</li>
 +
      <ul>
 +
          <li>Added thread to restart the CAN net when too many errors on output. The net does not restart by itself when the cable is disconnected.</li>
 +
          <li>Added ability to send CAN id with no data.</li>
 +
          <li>Refactor CAN I/o task code to share the same functions for packing / unpacking messages.</li>
 +
          <li>Spread CAN message send across multiple slots the even out messages transmissions and reduce the possibility to fill the board hardware queue.</li>
 +
      </ul>
 +
 +
  <li>ixxatout</li>
 +
      <ul>
 +
          <li>Refactor CAN I/o task code to share the same functions for packing / unpacking messages.</li>
 +
          <li>Spread CAN message send across multiple slots the even out messages transmissions and reduce the possibility to fill the board hardware queue.</li>
 +
      </ul>   
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|
 +
<ul><li>MLToolkit</li>
 +
  <ul>
 +
    <li>Added support for MATLAB R2022a </li>
 +
  </ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Python API
 +
|valign="top"|
 +
<ul>
 +
  <li>PYToolkit</li>
 +
  <ul> 
 +
    <li>Added vigradeVarList() and vigradeInstallStatus() calls.</li>
 +
    <li>Added a 'drivesim' argument to fmuInstall().</li>
 +
    <li>Make a more robust platform check in simwbPath.</li>
 +
  </ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|
 +
<ul>
 +
  <li>cfgsrv</li>
 +
  <ul>
 +
    <li>Added support for LMX License Server</li>
 +
  </ul>
 +
</ul>
 +
 +
|}
 +
===Release  2021.2-1 (12/31/2021)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|
 +
<ul><li>MLToolkit</li>
 +
<ul>
 +
  <li>Added support for MATLAB R2021b (v 7.11). </li>
 +
</ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|
 +
<ul><li> Scheduler</li>
 +
<ul>
 +
<li>When a model is run with a frequency divider > 1 , we can now specify at which of
 +
          the cycles the model is to run. The default was to always run at cycle 0.</li>
 +
<li>  Added call into scheduler to reset the process run time statistics.</li>
 +
<li>Add support for MicroGate Gtx serial board.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 2021.1-0 (06/17/2021)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|CSharpAPI
 +
|valign="top"|
 +
<ul>
 +
<li>SimWBCSharpAPI.dll</li>
 +
<ul>
 +
 +
<li>Added new API calls for:
 +
 +
          Creating a sample user model</li>
 +
<li>Executing a "make" for a user model</li>
 +
<li>Starting and stopping a stderr refresh thread</li>
 +
<li>Setting CPU shielding</li>
 +
<li>Querying the frame rate of a test</li>
 +
<li>Creating a test with an async model</li>
 +
</ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|Data logger
 +
|valign="top"|
 +
<ul><li>logsend</li>
 +
<ul>
 +
<li>Added ability to send logging data to multiple server processes. Default server
 +
          addresses are sprcified in /etc/ccursim.conf with
 +
            dataloggerhost=localhost[:portnumber1][|server2[:portnumber2]].
 +
          The first server specified is to the default SimWB datalogger process logsrv.</li>
 +
</ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|
 +
<ul><li>CP_FPGAENG</li>
 +
<ul>
 +
<li>Added support for SENT Tx and SENT Rx</li>
 +
</ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>SensoWheel</li>
 +
<ul>
 +
<li>Added support for SensoWheel ADAS toolkit (Additive Position Control)</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>VTD</li>
 +
<ul>
 +
<li>Added support for VTD IO task.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>canasyncio</li>
 +
<ul>
 +
<li>Set CAN board irq affinity to same cpu that we have been assigned so that when we
 +
          change the task cpu the irq affinity will move with it.</li>
 +
 +
</ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>canout</li>
 +
<ul>
 +
<li>Added ability to send CAN id with no data.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>ddc 1553</li>
 +
<ul>
 +
<li>Added coupling type and termination parameters for 1553 channels.
 +
          Add coupling type and termination parameters for 1553 channels.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>fastcomm</li>
 +
<ul>
 +
<li>Added support for binary messages with message ID a la NETIO.
 +
 +
          Added support for user hooks. Example provided in /usr/local/ccursim/UserHooks/src/exSerialUserHooks.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>fpga_eng_ns</li>
 +
<ul>
 +
<li>Added support for SENT Tx and SENT Rx.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>ixxat640asyncio</li>
 +
<ul>
 +
<li>Added support for the IXXAT 640 board, which provides support for 4 CAN 2.0A/B
 +
          and CANFD channels and 4 LIN channels.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>ixxatasyncio</li>
 +
<ul>
 +
<li>Added thread to restart the CAN net when too many errors on output. The net does
 +
          not restart by itself when the cable is disconnected.</li>
 +
<li>Added ability to send CAN id with no data.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>moxa</li>
 +
<ul>
 +
<li>Added support for binary messages with message ID a la NETIO.
 +
 +
          Added support for user hooks. Example provided in /usr/local/ccursim/UserHooks/src/exSerialUserHooks.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>moxaout</li>
 +
<ul>
 +
<li>Added support for binary messages with message ID a la NETIO.
 +
 +
          Added support for user hooks. Example provided in /usr/local/ccursim/UserHooks/src/exSerialUserHooks.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|
 +
<ul><li>MLToolkit</li>
 +
<ul>
 +
<li>Added support in <code>simwbConfigModelRef</code>, the helper function for
 +
          harmonizing top-level and referenced model configurations for SimWB code generation,
 +
          for referenced models using configset references in the base workspace or a data
 +
          dictionary.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Python API
 +
|valign="top"|
 +
<ul><li>PYToolkit</li>
 +
<ul>
 +
<li>PYToolkit will now install with support for the following Python versions:
 +
          2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8 and 3.9. This support no longer depends on an installed
 +
          interpreter. More information is available in the PYToolkit docs (the link at the
 +
          end of the first paragraph, and the simwbPath module doc). Note that the limited
 +
          2.5 support has been dropped.</li>
 +
<li>New getIOMappingRecordsDisk() call.</li>
 +
<li>Support for OpenMP configuration in fmuParse()/fmuInstall() calls.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|
 +
<ul><li>I/O Tasks</li>
 +
<ul>
 +
<li>Added support for VTD IO task.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>cfgsrv</li>
 +
<ul>
 +
<li>Added call to reset the process run time statistics.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|
 +
|valign="top"|
 +
<ul><li>scheduler</li>
 +
<ul>
 +
<li>When a model is run with a frequency divider > 1 , we can now specify at which of
 +
          the cycles the model is to run. The default was to always run at cycle 0.
 +
 +
          Added call into scheduler to reset the process run time statistics.</li>
 +
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Third Party Tools
 +
|valign="top"|
 +
<ul><li>GLStudio</li>
 +
<ul>
 +
<li>Added required runtime libraries for GL Studio 7.1.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 2020.2-0 (11/25/2020) ===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|CSharpAPI
 +
|valign="top"|<ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWBCSharpAPI.dll
 +
 +
|valign="top"|
 +
<ul>
 +
  <li>Added support for FMU model parsing</li>
 +
  <li>Added support to allow concurrent connections to multiple hosts. <br/><b>Incompatibility
 +
          Consideration:</b> Existing code will need to be modified such that an instance of the
 +
          simwbClient will need to be created before any of the methods can be invoked. For
 +
          instance, existing code of the following form:<br/>
 +
<pre>simwbClient.connect("host");
 +
simwbClient.login(username,passwd);</pre></li>
 +
  <li>Will need to be refactored as follows:
 +
<pre>
 +
simwbClient host = new simwbClient();
 +
host.connect("host");
 +
host.login(username,passwd);</pre></li>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|User Models
 +
|valign="top"|
 +
<ul>
 +
  <li>Added three new tests demonstrating various methods of accessing RTDB variables
 +
          with Fortran modules that are linked into a C-based User Model. rtdemo1_test_fort_api
 +
          uses C API calls to read/write RTDB variables, rtdemo1_test_fort_flat converts the
 +
          RTDB into a flat namespace whose variables are directly accessed in Fortran, and
 +
          rtdemo1_test_fort_struct converts the RTDB into a structured namespace whose variables
 +
          are directly accessed in Fortran.</li>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|FMU/FMIL
 +
|valign="top"|
 +
<ul>
 +
  <li>Added support for automatic recompilation of OpenMP FMUs (Dymola only)</li>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|
 +
 +
<ul>
 +
<li>NETIO
 +
<ul>
 +
<li><strong>Behavior change consideration:</strong> Added support for shutdown values. Now, when<br />the test stops, the NETIO output will ramp down to shutdown value set in Initial<br />Conditions tab. All existing tests that uses NETIO will have this enabled by default.<br />If you do not want the NETIO to ramp down from the last value, you can disable shutdown<br />values in the Initial Conditions tab.</li>
 +
</ul>
 +
</li>
 +
<li>canasyncio
 +
<ul>
 +
<li><strong>Behavior change consideration:</strong> Added support for shutdown values. Now, when the<br />test stops, the CAN output will ramp down to shutdown value set in Initial Conditions<br />tab. All existing tests that uses CAN will have this enabled by default. If you do<br />not want the CAN to ramp down from the last value, you can disable shutdown values<br />in the Initial Conditions tab.</li>
 +
<li>Input thread is run on a timer to minimize jitter and not on a sleep.</li>
 +
<li>Output messages are sorted so that high frequency messages are output first.</li>
 +
</ul>
 +
</li>
 +
<li>canout
 +
<ul>
 +
<li><strong>Behavior change consideration:</strong> Added support for shutdown values. Now, when<br />the test stops, the CAN output will ramp down to shutdown value set in Initial Conditions<br />tab. All existing tests that uses CAN will have this enabled by default. If you do<br />not want the CAN to ramp down from the last value, you can disable shutdown values<br />in the Initial Conditions tab.</li>
 +
</ul>
 +
</li>
 +
<li>cpmfio
 +
<ul>
 +
<li>Added 20V bipolar output option for Differential mode.</li>
 +
</ul>
 +
</li>
 +
<li>ecatmaster (EtherLab)
 +
<ul>
 +
<li>Modified &lt;code&gt;/usr/local/ccursim/etherlab/install_ecatmaster.sh&lt;/code&gt; to<br />install driver in /opt/etherlab.</li>
 +
</ul>
 +
</li>
 +
<li>ixxatasyncio
 +
<ul>
 +
<li><strong>Behavior change consideration:</strong> Added support for shutdown values. Now, when the<br />test stops, the IXXAT CAN output will ramp down to shutdown value set in Initial<br />Conditions tab. All existing tests that uses IXXAT CAN will have this enabled by<br />default. If you do not want the IXXAT CAN to ramp down from the last value, you can<br />disable shutdown values in the Initial Conditions tab.</li>
 +
<li>Support for 12 boards. Multiple cores should be specified when running with more<br />than 5 boards. 3 Cores is recommended.</li>
 +
<li>Irq affinity for all boards set to 1 core as well as all API threads to same core.</li>
 +
<li>1 separate core for input thread and another core for output thread.</li>
 +
<li>Input thread is run on a timer to minimize jitter and not on a sleep.</li>
 +
<li>Output messages are sorted so that high frequency messages are output first.</li>
 +
</ul>
 +
</li>
 +
<li>ixxatout
 +
<ul>
 +
<li><strong>Behavior change consideration:</strong> Added support for shutdown values. Now, when<br />the test stops, the IXXAT CAN output will ramp down to shutdown value set in Initial<br />Conditions tab. All existing tests that uses IXXAT CAN will have this enabled by<br />default. If you do not want the IXXAT CAN to ramp down from the last value, you can<br />disable shutdown values in the Initial Conditions tab.</li>
 +
</ul>
 +
</li>
 +
<li>netioout
 +
<ul>
 +
<li>Added support for shutdown values.</li>
 +
</ul>
 +
</li>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Java Installer / Installer
 +
|valign="top"|
 +
<ul>
 +
<li>Incompatibility Consideration:</li>
 +
<li>Ended support for 32-bit RedHawk.</li>
 +
<li>Ended support for RedHawk 5.* OS.</li>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|MATLAB/Simulink/MLToolkit
 +
|valign="top"|
 +
<ul>
 +
<li>Added support for ERT code generation.</li>
 +
<li>Added support Simulink data dictionary.</li>
 +
<li>Added support for <code>Simulink.AliasType</code> and enumerations.</li>
 +
<li>SLX versions of library files now included with MLToolkit, obviating SLX file conversions during MLToolkit installation.</li>
 +
<li>Behavior change consideration: Commented call to <code>savepath</code> in <code>simwbstartup</code>. You must manually call <code>savepath</code> to add MLToolkit directories to your MATLAB path after MLToolkit installation.</li>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Python API/ASAM Support
 +
|valign="top"|
 +
<ul>
 +
<li>Captures can now define a CSV or MDF 4.0 writer during a Fetch. The writer is automatically invoked when the capture result is returned. MDF 4.0 writers require the asammdf python package (and it's dependencies).</li>
 +
<li>Two boolean attributes have been added to Captures: StartByTimeout and StopByTimeout.</li>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|Python API/PYToolkit
 +
|valign="top"|
 +
<ul>
 +
<li>Added support for python initialization scripts.</li>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWB API / Client API
 +
|valign="top"|
 +
<ul>
 +
<li>Removed crypt reference from the library. It is no longer needed to link against -lcrypt when using libccur_SIMClient.so.</li>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|SimWB Core/cfgsrv
 +
|valign="top"|<ul>
 +
<li><strong>Incompatibility Consideration: </strong>
 +
<ul>
 +
<li>Ended support for 32-bit RedHawk.</li>
 +
<li>Ended support for RedHawk 5.* OS.</li>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWB Core/scheduler
 +
|valign="top"|
 +
<p>Allow multiple CPUs to be specified in /usr/local/ccursim/etc/schedtasks.txt. The affinity of the task is specified as a mask of given CPUs. This is to allow I/O tasks (CAN) to run on multiple cores specified by the user.</p>
 +
<!--
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|
 +
|valign="top"|
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|
 +
|valign="top"|
 +
-->
 +
</ul>
 +
</ul>
 +
|}
 +
 +
=== Release 2020.1-2 (06/26/2020)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|<ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|ddc 1553
 +
|valign="top"|<ul>
 +
<li>Added support for RT status word override.</li>
 +
<li>Added string length field for string variables on input. When 0, a NULL terminated
 +
          string is read from memory up to 1024 characters. When > 0, the exact number of
 +
          bytes is read from memory.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
=== Release 2020.1-1 (06/18/2020)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|
 +
<ul>
 +
 +
  <li>babylinasyncio</li>
 +
  <ul>
 +
      <li>Extended support for up to 12 BabyLIN devices.</li>
 +
  </ul>
 +
 +
  <li>canasyncio</li>
 +
  <ul>
 +
      <li>Extended support for up to 6 boards.</li>
 +
  </ul>
 +
 +
</ul>
 +
|}
 +
 +
=== Release 2020.1-0 (06/10/2020)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|FMU
 +
|valign="top"|
 +
<ul>
 +
    <li>adamsMain</li>
 +
    <ul>
 +
        <li>Added support for warmup cycles </li>
 +
        <li>Added Support for model copy inputs.</li>
 +
    </ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|
 +
<ul>
 +
 +
  <li>DDC 1553</li>
 +
  <ul>
 +
      <li>Added support for DDC BU-67112Y810L-2A0 board, which includes eight dual redundant
 +
          MIL-STD-1553 channels.</li>
 +
      <li>Support for BC/RT mode codes and asynchronous messages.</li>
 +
  </ul>
 +
 +
  <li> Fastcomm </li>
 +
  <ul>
 +
      <li>Refactored output behavior. We have 1 thread per output channel. The output
 +
          threads can be synchronized with the synchronous loop. A delay through an RTDB variable
 +
          can be introduced between the start of execution of the thread and the actual output
 +
          write on the channel. </li>
 +
  </ul>
 +
 +
  <li>FlexRay </li>
 +
  <ul>
 +
      <li> Added support for FlexRay star Cooperation board. Up to 4 redundant channels per
 +
          board.</li>
 +
      <li>Fixed raw minimum hardware value for integer type mapping.  </li>
 +
  </ul>
 +
 +
  <li>Moxa </li>
 +
  <ul>
 +
      <li>Refactor output behavior. We have 1 thread per output channel. The output
 +
          threads can be synchronized with the synchronous loop. A delay through an RTDB variable
 +
          can be introduced between the start of execution of the thread and the actual output
 +
          write on the channel.</li>
 +
  </ul>
 +
 +
  <li>rFpro</li>
 +
  <ul>
 +
      <li>Added support for adding traffic vehicles, special actors, traffic lights,
 +
          etc. These optional features require the IO_RFACTOR_TRAFFIC module license (ICS-SWB-1288).</li>
 +
  </ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Java Installer
 +
|valign="top"|
 +
<ul>
 +
    <li>Installer</li>
 +
    <ul>
 +
        <li>You can now choose which Python to install with during installation. The
 +
          PYToolkit is also stored as PYToolkit-X.Y corresponding to the Python install version.
 +
          By using the new simwbPath module you can automatically import the correct modules
 +
          for the interpreter you are running. See the PYToolkit docs for more details.</li>
 +
    </ul>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|
 +
<ul>
 +
  <li>MLToolkit</li>
 +
  <ul>
 +
      <li>Added new example, Creating a Test Session that Uses Alternative Initial Conditions
 +
          via MLToolkit API.</li>
 +
      <li>Added new API call, <code>simwb.rtobj.createTestSession</code>. For more information,
 +
          type <code>help simwb.rtobj.createTestSession</code> at the MATLAB command prompt.</li>
 +
  </ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Python API
 +
|valign="top"| PYToolkit
 +
<ul>
 +
      <li>You can now choose which Python to install with during installation. The
 +
          PYToolkit is also stored as PYToolkit-X.Y corresponding to the Python install version.
 +
          By using the new simwbPath module you can automatically import the correct modules
 +
          for the interpreter you are running. See the PYToolkit docs for more details.</li> 
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|
 +
<ul>
 +
  <li>cfgsrv</li>
 +
  <ul>
 +
      <li>Added Support for FlexRay I/O records.</li>
 +
      <li>New remote commands to support remote HMI displays.</li>
 +
      <li>Added session parameter with % of frame length overrun allowed.</li>
 +
      <li>Added <code>iswinfmu=1</code> keyword for FMU models that are Windows based.</li>
 +
  </ul>
 +
  <li> Scheduler</li>
 +
  <ul>
 +
      <li>Added option to allow overrun of a frame by a percentage specified in the session
 +
          setup file.</li>
 +
      <li>Added a semaphore mechanism so that async tasks can synchronize with the main synchronous
 +
          loop.</li>
 +
  <ul>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Third Party Tools
 +
|valign="top"|GL Studio
 +
<ul> 
 +
      <li>Added support for GL Studio 7.0</li>
 +
</ul>
 +
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|Ubuntu Specific
 +
|valign="top"|arm64
 +
<ul>
 +
      <li>Added support for SimWB on NVIDIA Drive AGX Xavier/Pegasus platforms</li>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Utility tool
 +
|valign="top"|simwb-ar
 +
<ul>
 +
      <li>Archive now packages relevant RTDBs when test includes models with different RTDBs.</li>
 +
      <li>Added HMI directory with remote project displays and resources to the archive when
 +
          archiving a test.</li>
 +
</ul>
 +
|}
 +
===Release 2019.3-3(11/20/2019)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|FPGA
 +
|valign="top"|<ul>
 +
<li>Electric_Motor</li>
 +
<ul>
 +
<li>Added preliminary support for PMSM motor via FPGA IP. Includes parser for
 +
          JMAG-RT(R) motor model RTT file.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|<ul>
 +
<li>MLToolkit</li>
 +
<ul>
 +
<li>Added updateCANHWAttribute API call, which allows modification of a hardware-related
 +
          attribute of the toRTDB/fromRTDB blocks contained within a DBC CAN block. For more
 +
          information, type help updateCANHWAttribute at the MATLAB command prompt.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 2019.3-2 (11/12/2019)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left"|'''<u>Enhancements</u>'''
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|FMU
 +
|valign="top"|<ul>
 +
<li>fmuMain</li>
 +
<ul>
 +
<li>FMU tunable parameters are created automatically at load time in the RTDB, just like parameters of Simulink models.</li>
 +
<li>Added support for variable model exchange.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|<ul>
 +
<li>RTMAPS</li>
 +
<ul>
 +
<li>Added support for RTMAPS.</li>
 +
</ul>
 +
<li>SensoWheel</li>
 +
<ul>
 +
<li>Added support for PEAK CAN driver 8.8.</li>
 +
</ul>
 +
<li>ad6418ai</li>
 +
<ul>
 +
<li>Added support for Concurrent Real-Time analog input board CP-AD6418.</li>
 +
</ul>
 +
<li>da3218</li>
 +
<ul>
 +
<li>Added support for CP-DA0818-[S|D] card, which has 8 channels with 18-bit resolution.</li>
 +
</ul>
 +
<li>pcanasyncio</li>
 +
<ul>
 +
<li>Added support for PEAK CAN driver 8.8.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|MATLAB / Simulink
 +
|valign="top"|<ul>
 +
<li>MLToolkit</li>
 +
<ul>
 +
<li>Added an option to create hierarchical RTDB if there is a dot in the name of the block.</li>
 +
</ul>
 +
<li>ccur_main</li>
 +
<ul>
 +
<li>You can skip cache warmup model execution and model re-initialization if you add -DSKIP_WARMUP as a compiler option in the Code Generator panel of the MLToolkit GUI.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|Python API
 +
|valign="top"|<ul>
 +
<li>simwbClient.py</li>
 +
<ul>
 +
<li>Refactored refresh connection sockets. The cfgsrv no longer connects back to the clients (Control Center, Python API, etc.) for refresh connections. The clients connect to port:
 +
<ul>
 +
<li> 9206 : data refresh </li>
 +
<li> 9207 : stderr messages </li>
 +
<li> 9207 : pseudo stdout from test scripts </li>
 +
</ul>
 +
This allows the clients to establish the connections without disabling the firewall on clients and work through a WIFI router. This means that you must install the newest server and the newest Control Center GUI for them to work together. So, please update both when you run your installer.
 +
</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|<ul>
 +
<li>cfgsrv</li>
 +
<ul>
 +
<li>Refactored refresh connection sockets. The cfgsrv no longer connects back to the clients (Control Center, Python API, etc.) for refresh connections. The clients connect to port:
 +
<ul>
 +
<li> 9206 : data refresh </li>
 +
<li> 9207 : stderr messages </li>
 +
<li> 9207 : pseudo stdout from test scripts </li>
 +
</ul>
 +
This allows the clients to establish the connections without disabling the firewall on clients and work through a WIFI router. This means that you must install the newest server and the newest Control Center GUI for them to work together. So, please update both when you run your installer.
 +
</li>
 +
<li>FMU model parsing:
 +
<ul>
 +
<li>Added support to remap FMU internal variable names to different RTDB names.</li>
 +
<li>Return whether the FMU contains a win64 DLL.</li>
 +
</ul>
 +
</li>
 +
<li>I/O Devices:
 +
<ul>
 +
<li>Added support for Concurrent Real-Time analog input board CP-AD6418.</li>
 +
</ul>
 +
</li>
 +
</ul>
 +
<li>scheduler</li>
 +
<ul>
 +
<li>Added support for Concurrent Real-Time analog input board CP-AD6418.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|Utility tool
 +
|valign="top"|<ul>
 +
<li>removeLicense</li>
 +
<ul>
 +
<li>Added a command line tool that can be used to remove/unload all of the modules in a license file.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 2019.2-0 (05/29/2019)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Data logger
 +
|valign="top"|<ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|dl2mat
 +
|valign="top"|<ul>
 +
<li>Optimized dl2mat when reading large data logging sets.
 +
          The whole set is loaded in memory before being written as a .mat file. This requires
 +
          a lot of memory but provides a greater than 10 X speed improvement.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|<ul>
 +
<li>SENT </li>
 +
<ul>
 +
<li>Multiple enhanced ID's can be configured so that they are sent in an ordered
 +
          sequence, the order can be defined in the Control Center.</li>
 +
</ul>
 +
<li>can_sckasyncio </li>
 +
<ul>
 +
<li>Added support for socket based CAN to support the native CAN interfaces on
 +
          the NVIDIA based platform.</li>
 +
</ul>
 +
<li>ixxatasyncio </li>
 +
<ul>
 +
<li>Added option to toggle ISO / Non ISO mode.</li>
 +
</ul>
 +
<li>rfpro </li>
 +
<ul>
 +
<li>Added support for Object Proximity query and response packets.</li>
 +
<li>Renamed entry in Control Center I/O Mappings pane to <code>rFpro</code>.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Python API
 +
|valign="top"|<ul>
 +
<li>simwbClient.py </li>
 +
<ul>
 +
<li>Added 'initconditions' name and 'defalutIC' flag to the testGetSession()
 +
          results.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|SimWB API
 +
|valign="top"|<ul>
 +
<li>AsyncIO API </li>
 +
<ul>
 +
<li>Refactored async queue structure so that space for array items and string
 +
          items is allocated from a pool in shared memory instead of from static FIFO items.
 +
          This allows more than 50 array items to be updated every cycle. The scheduler will
 +
          free the memory allocated after it has processed the queue element.</li>
 +
</ul>
 +
<li>RTDB access API </li>
 +
<ul>
 +
<li>Added routine to get address of the CVT and or Alternate value for an item.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|<ul>
 +
<li>scheduler </li>
 +
<ul>
 +
<li>Added support for asynchronous models.
 +
          Asynchronous models are self scheduling and can be organized in independent execution
 +
          chains like the synchronous models.
 +
 +
          Added the ability to set affinity for SIMWB sched scheduling process. The affinity
 +
          can be set in the Control Center just like for the I/O tasks.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 2019.1-0 (03/29/2019)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|CSharpAPI
 +
|valign="top"|<ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWBCSharpAPI.dll
 +
|valign="top"|<ul>
 +
<li>Added new API calls for:</li><ul>
 +
<li>Querying the number of CPUs on the SimWB server machine</li>
 +
<li>Setting real-time flag for a specific RTDB item</li>
 +
<li>Terminating the RefreshThread on demand</li></ul>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|FPGA
 +
|valign="top"|<ul>
 +
<li>EngineFW </li>
 +
<ul>
 +
<li>Moved FPGA-ENG-NS to generic CP-FPGA-ArV IO task.</li>
 +
<li>IO Task now supported through the FPGAWB SDK</li>
 +
<li>Added support for Encoder, Decoder, WaveGen functionalities</li>
 +
<li>Changed default angles for Crank and Cam</li>
 +
<li>Added support for MSGDMA</li>
 +
</ul>
 +
<li>Firmware </li>
 +
<ul>
 +
<li>Moved FPGA-ENG-NS to generic CP-FPGA-ArV IO task.</li>
 +
<li>IO Task now supported through the FPGAWB SDK</li>
 +
<li>Added support for Encoder, Decoder, WaveGen functionalities</li>
 +
<li>Changed default angles for Crank and Cam</li>
 +
<li>Added support for MSGDMA</li>
 +
<li>Added support for Ford firmware FO20</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|<ul>
 +
<li>Demos </li>
 +
<ul>
 +
<li>Added new example, IP Protection via Distribution of S-Function Object File.</li>
 +
</ul>
 +
<li>ccur library </li>
 +
<ul>
 +
<li>Enhanced the DBC CAN Block to specify the CAN I/O Device as either ESD or IXXAT board.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|Python API
 +
|valign="top"|<ul>
 +
<li>PYToolkit </li>
 +
<ul>
 +
<li>Added descriptions to simwbConstants.</li>
 +
</ul>
 +
<li>simwbClient.py</li>
 +
<ul>
 +
<li>The testCreate() function is now a supported function, but with limitations. See the NOTE in the documentation.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 2018.3-0 (11/30/2018)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
<li>Added support for mapping single String variable for variable input/output
 +
          message length.</li>
 +
<li>Added support for rfPro Terrain Server 2018a2. We are using the Terrain Server
 +
          API version 587 (patch).</li>
 +
<li>Also, there are two example tests under 'rfactor_TS'.</li>
 +
<li>ChassisTest: Shows an example of chassis queries that uses track named testing1.tss</li>
 +
<li>Linear10: Shows an example of tire queries that uses track named 'TEST_Linear10'</li>
 +
<li>We can now use multiple CPUs in the Terrain Server CPU field</li>
 +
<li>New simwbConnect module for connecting to multiple machines at the same time
 +
          (or the the same machine as different logins).</li>
 +
<li>Added renameResource() call that matches the functionality in the Control
 +
          Center GUI's Resource Center (i.e. renaming of RTDB, Test, Script, etc.). Similarly,
 +
          added dupeResource() call to copy/link resources.</li>
 +
<li>Added support for CarMaker models.
 +
         
 +
          Add support for Hirain TB4702 ultrasonic board.</li>
 +
<li>Added support for CarMaker models.
 +
         
 +
          Added support for virtual CAN networks.
 +
         
 +
          Added support for Hirain TB4702 ultrasonic board.
 +
         
 +
          Added support for Socket CAN I/O task.</li>
 +
<li>Initial support for IPG CarMaker.</li>
 +
<li>Added support for SimWB for Ubuntu 16.04 aarch64 iHawk machines. Use the
 +
          standard SimWB ISO for installation.</li>
 +
<li>Note: If the help browser is not rendered correctly in the Control Center, try executing
 +
          the following command and restarting the Control Center:</li>
 +
<li><code>apt install libwebkitgtk-3.0-0</code></li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 2018.2-0 (08/29/2018)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Control Center
 +
|valign="top"|<ul>
 +
<li>Programs</li>
 +
<ul>
 +
<li>Added support for model exchange data for user models. New dialog on user model pane to define inputs/outputs used by a model.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|<ul>
 +
<li>NAI-79C3-E8</li>
 +
<ul>
 +
<li>Added support for the E7 module (Angular Encoder) of NAI-79C3 board.</li>
 +
</ul>
 +
<li>canasyncio</li>
 +
<ul>
 +
<li>Added sendorder in hardware record so CAN messages can be sent in a determined order.</li>
 +
</ul>
 +
<li>ddc 1553</li>
 +
<ul>
 +
<li>Added support for broadcast messages BC to RT and RT to RT. Broadcast messages are configured by specifying a destination RT of 31.</li>
 +
<li>Added support for Bus Monitor for broadcast messages. Use RT 31 as destination when defining what message to monitor.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|<ul>
 +
<li>MLToolkit </li>
 +
<ul>
 +
<li>Added following API calls:</li>
 +
<ul>
 +
<li>&nbsp;&nbsp;&nbsp;&nbsp;<i>simwb.rtobj.projectCreate</i> - Creates a project directory on the real-time host with specified name.</li>
 +
<li>&nbsp;&nbsp;&nbsp;&nbsp;<i>simwb.rtobj.testSetModelInout</i> - Connects the output of one Simulink/user model to another Simulink/user model input.</li>
 +
</ul>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|SimWB API
 +
|valign="top"|<ul>
 +
<li>RTDB access API</li>
 +
<ul>
 +
<li>Added routine <i>ccurRTDB_mapModelCVT()</i> to map CVT struct at offset corresponding to RTDB when loading multiple RTDBs in a test.</li>
 +
<li>Added routines <i>ccurRTDB_modelDataExchangeInit()</i> and <i>ccurRTDB_modelCopyInputs()</i> to support model data exchange and unit conversion for user models.</li>
 +
<li>Added support for 32-bit API under 64-bit SimWB. This requires license 32BIT_API to run.</li>
 +
<li>Added new API call <i>ccurAsyncIO_netIOSetDestPortIP()</i> to change destination IP and/or port for NETIO output messages.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|<ul>
 +
<li>cfgsrv</li>
 +
<ul>
 +
<li>Added call to set modelvariables for user models.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|Ubuntu Specific
 +
|valign="top"|<ul>
 +
<li>x86_64</li>
 +
<ul>
 +
<li>Added support for SimWB for Ubuntu 16.04 x86_64 iHawk machines. Use the standard SimWB ISO for installation.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 2018.1-0 (03/23/2018)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|FMU
 +
|valign="top"|<ul>
 +
<li>FMIL </li>
 +
<ul>
 +
<li>Updated to the latest version of FMI Library (2.0.3:http://www.jmodelica.org/FMILibrary).</li>
 +
</ul>
 +
<li>adamsMain </li>
 +
<ul>
 +
<li>Added support for Adams. First iteration of custom main file for Adams</li>
 +
<li>Added support for ARM64 architecture</li>
 +
</ul>
 +
<li>fmuMain</li>
 +
<ul>
 +
<li>Added support for ARM64 architecture..</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|<ul>
 +
<li>canasyncio</li>
 +
<ul>
 +
<li> Incompatibility Consideration
 +
The drivers for the ESD 400/402/405 cards have been updated. Therefore, the I/O task for the ESD CAN card (canasyncio) now require specific versions of the relevant driver. For more information regarding the required driver version, please check the SimWB Change Log by opening the 2018.1-0 Control Center and then clicking <b>Help > SimWB Change Log</b>.</li>
 +
</ul>
 +
<li>rfpro_ts_in</li>
 +
<ul>
 +
<li>Added support for Terrain Server 2017b2.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|<ul>
 +
<li>Demos </li>
 +
<ul>
 +
<li>Added following new examples:</li>
 +
<ul>
 +
<li>  Running Simulink Models with OpenMP Code in SimWB</li>
 +
<li>    IP Protection via Shared-Library-Based S-Function</li>
 +
<li>    IP Protection via Static-Library-Based S-Function</li>
 +
</ul>
 +
</ul>
 +
</ul>
 +
<ul>
 +
<li>ccur_main </li>
 +
<ul>
 +
<li>Added support for each model to load its RTDB at different offset in CVT table.</li>
 +
<li>Added support for data communication between RTW models.Inputs into a model can be configured to copy values from output RTDB items generated by other models. RTDB input and output items used by RTW models are saved in the RTW/MODELNAME/modelvariables.txt file which is generated when creating the model executable.</li>
 +
<li>Added support to convert units for the outputs from a model to the units defined for the inputs. The known units are built in and defined in file /usr/local/ccursim/projects/RTDB/units.txt.</li>
 +
<li>Added support for OpenMP code inside Simulink models or S-Functions. This is primarily used by multi-threaded Dymola S-Functions.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|Python API
 +
|valign="top"|<ul>
 +
<li>PYToolkit</li>
 +
<ul>
 +
<li>dlxtractrem.py now supports Matlab V7.3 and HDF5 output types (with the appropriate Python packages - see docs for more info).</li>
 +
</ul>
 +
<li>simwbClient.py</li>
 +
<ul>
 +
<li>putFile() of schedPre/PostProcess files will automatically be stored with execute mode set.</li>
 +
<li>testRemakeModels() will rebuild all modes for a named test in the current project.</li>
 +
<li>testCreate() now handles all model types, and should be fully functional (though some amount of expertise is required to use it).</li>
 +
<li>getItemValues() now accepts single string name or list of names.</li>
 +
<li>fmuParse() and fmuInstall() for FMU model support.</li>
 +
<li>adamsParse() and adamsInstall() for Adams model support..</li>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWB API
 +
|valign="top"|<ul>
 +
<li>RTDB access API</li>
 +
<ul>
 +
<li>Added API calls to add and retrieve engineering unit from EU db in shared memory.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|<ul>
 +
<li>RTDB</li>
 +
<ul>
 +
<li>Added support for engineering units DB in shared memory.</li>
 +
</ul>
 +
<li>cfgsrv</li>
 +
<ul>
 +
<li>Added support for Concurrent resistor simulator card CP-RESSIM.</li>
 +
<li>Added new cfgsrv command to send engineering units definitions. Units are defined in text file :/usr/local/ccursim/projects/RTDB/units.txt</li>
 +
<li>Added cfgsrv command to set data communication path for a specific model and test. The configuration is set in /usr/local/ccursim/PROJECT_Hierachy/Tests/TESTNAME/MODELNAME.x.xchg file.</li>
 +
<li>Added a file named cpuallowed.txt in /usr/local/ccursim/etc/ to set the cpu/core that can be shielded/unshielded from the Control Center. This can be used to stop SimWB from inadvertently controlling cores that may be used by external application(s).</li>
 +
</ul>
 +
<li>scheduler</li>
 +
<ul>
 +
<li>Added support for Adams</li>
 +
<li>Added support to read engineering units definition file and load into shared memory.</li>
 +
<li>Add support for independent chains of execution for models.</li>
 +
<li>Added support to load multiple RTDB's at different offset in CVT table. When a test uses RTW or user models, the scheduler will load the RTDB's that are specified for the models in addition the the RTDB that is specified for the test. This allows the models to be self contained with their own RTDB and independent of other models..</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Third Party Tools
 +
|valign="top"|<ul>
 +
<li>Adams</li>
 +
<ul>
 +
<li>Added support for Adams</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 2017.3-0 (08/17/2017)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|Data logger
 +
|valign="top"|<ul>
 +
<li> Added support for Matlab V7.3 output files (which now means support for output files larger than 4GB).</li>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|<ul>
 +
<li>CP_FPGAENG </li>
 +
<ul>
 +
<li>Added support for Analog Threshold IP Core.</li>
 +
<li>Added support for PFM mode in Tooth Wheel Generator.</li>
 +
</ul>
 +
<li>SIO-HDLC </li>
 +
<ul>
 +
<li>Initial support for SIO HDLC.</li>
 +
</ul>
 +
<li>rfpro_ts_in</li>
 +
<ul>
 +
<li>Added support for Terrain Server 2017a.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|<ul>
 +
<li>Demos </li>
 +
<ul>
 +
<li>Added new demo model, "ccur_udp" that shows how to exchange UDP data between a Simulink model and a running SimWB test session.</li>
 +
</ul>
 +
<li>MLToolkit </li>
 +
<ul>
 +
<li> Enhanced the Split Model feature to support bus-enabled Inport/Outport blocks that do not have datatype information appropriately set.</li>
 +
</ul>
 +
<li>ccur library</li>
 +
<ul>
 +
<li>Added set_param_dbc command that can be used to programmatically configure a specific instance of the DBC CAN block. Use this command to programmatically add multiple CAN messages to a model. For more information, type help set_param_dbc at the MATLAB command prompt.</li>
 +
<li>Enhance DBC CAN block to allow splitting of signals longer than 32-bits if they can be split evenly into 1-byte subsignals, their gain is 1, and their offset is 0.</li>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|<ul>
 +
<li>RTDB</li>
 +
<ul>
 +
<li>Changed the minimum length for digital RTDB variable names to 1 character. Previously, this limit was 4 characters.</li>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|FPGA
 +
|valign="top"|<ul>
 +
<li>EngineFW</li>
 +
<ul>
 +
<li>Added support for Analog Threshold IP Core.</li>
 +
<li>Added support for PFM mode in Tooth Wheel Generator.</li>
 +
</ul>
 +
<li>Firmware</li>
 +
<ul>
 +
<li>Added support for Analog Threshold IP Core.</li>
 +
<li>Added support for PFM mode in Tooth Wheel Generator.</li>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"| Python API
 +
|valign="top"|<ul>
 +
<li>simwbClient.py</li>
 +
<ul>
 +
<li>New RTDB and RTDBItem classes for easy querying/changing of items during a running test.</li>
 +
<li>Deprecated projectCopyResource() and replaced it with projectDupeResource().</li>
 +
<li>Added renameModelRTDB() function.</li>
 +
<li>Added dbUnload() function. This is actually the same as dbNew() but is a more accurate name.</li>
 +
</ul>
 +
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWB API
 +
|valign="top"|<ul>
 +
<li>Java client API</li>
 +
<ul>
 +
<li>Added LogSrv object to pause/resume data logger.</li>
 +
<li>Added ViewerForm package to support RT viewer form import/capture and download.</li>
 +
</ul>
 +
<li>RTDB access API</li>
 +
<ul>
 +
<li>Added ccurRTDB_regexItemAddress() and ccurRTDB_globItemAddress() that will search the RTDB using the specified pattern (either a regular expression or file-like glob) and return the item address and name when a unique match is found.</li>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"| Utility Tool
 +
|valign="top"|<ul>
 +
<li>sprj</li>
 +
<ul>
 +
<li> Added a command line tool, sprj, to easily navigate to project folders on the real-time host.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 2017.1-0 (02/21/2017)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|CSharpAPI
 +
|valign="top"|<ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWBCSharpAPI.dll
 +
|valign="top"|<ul>
 +
<li>Add support for API call putFile that sends a local file to SimWB host.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|<ul>
 +
<li>CP_UEGO </li>
 +
<ul>
 +
<li>Add support for UEGO board.</li>
 +
</ul>
 +
<li>Dolphin IX </li>
 +
<ul>
 +
<li>Add support for local/remote segments.</li>
 +
</ul>
 +
<li>FDX </li>
 +
<ul>
 +
<li>Added support for FDX protocol.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|<ul>
 +
<li>Demos </li>
 +
<ul>
 +
<li>Added new demo model "ccur_split_buses" to demonstrate the Split Model feature
 +
          with a model that contains buses.</li>
 +
</ul>
 +
<li>MLToolkit </li>
 +
<ul>
 +
<li>Clicking Connect loads saved settings in the GUI, including the Project in
 +
          the Simulator Access tab, and the RTDB name and regular expression strings in the
 +
          RTDB Creator and Code Generator panes.</li>
 +
</ul>
 +
<li>RTW </li>
 +
<ul>
 +
<li>Using the Generic Real-Time (GRT) system target file (STF), grt.tlc, for
 +
          code generation instead of a custom system target file (simwb_grt.tlc or simwb_ert.tlc).
 +
          This change allows us to better leverage the generated code for a variety of features.
 +
          The "System Target File" radio button has been removed from the MLToolkit GUI and
 +
          <code>simwbPrefsRW</code> now returns 'grt.tlc' as the default value for the <code>codegeneratoroptions.systemtargetfile</code>
 +
          field.</li>
 +
<li></li>
 +
<li>For models being used with MLToolkit for the first time, GRT is used by default.</li>
 +
<li>For models that have been already used with MLToolkit, the <code>codegeneratoroptions.systemtargetfile</code>
 +
          field may be set to <code>simwb_grt.tlc</code> in the preferences file. You can continue
 +
          using this setting for code generation or change it to <code>grt.tlc</code>. If the
 +
          STF is <code>simwb_grt.tlc</code>, the <code>simwb_rt.tmf</code> template make file
 +
          (TMF) is used. However, if the STF is set to <code>grt.tlc</code>, the <code>simwb_grt.tmf</code>
 +
          file is used. The two TMF files are marginally different, but the distinction allows
 +
          you to port forward any changes made to <code>simwb_rt.tmf</code> or <code>simwb_grt.tlc</code>.</li>
 +
<li>To modify the MLToolkit preferences file for a file, use the <code>editsimwbpref</code>
 +
          command. For more information about using this command, type <code>help editsimwbpref</code>
 +
          at the MATLAB command prompt.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|<ul>
 +
<li>cfgsrv </li>
 +
<ul>
 +
<li>SIMulation Workbench major version number now reflects the year of the release.
 +
          That is, SimWB version numbers will now use the convention: YEAR.MINOR-REVISION.
 +
          Here, YEAR is the four-digit numerical representation of the year of release (for
 +
          example, 2017), MINOR is the minor version number, and REVISION is the revision number.</li>
 +
<li>Added support for user defined board mapping and board properties.</li>
 +
</ul>
 +
<li>scheduler </li>
 +
<ul>
 +
<li>Add simulation mode to scheduler. If the user is running a simulation only
 +
          license, the user will only be able to create simulation mode sessions.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
===Release 7.9-0  (12/16/2016)===
 +
{| cellpadding="5" width="85%"
 +
| '''<u>Module</u>'''
 +
| width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" | SimWB Core
 +
| valign="top" |<ul>
 +
<li>RTDB</li>
 +
<ul>
 +
<li> The behavior of AIO, DIO, STRIO points that are mapped to hardware is unchanged. For example, a mapped AIO point behaves as an AI if mapped to an input device and it behaves as an AO if it is mapped to an output device instead. However, unmapped AIO, DIO, and STRIO points now behave as output variables when you attempt to set their CVT values using the RT-Viewer. For example, when you use the RT-Viewer to set the CVT value of an AIO point, only the ALT value is updated, same as if it were an AO point. This change was made for logging reasons.</li>
 +
</ul>
 +
<li>cfgsrv</li>
 +
<ul>
 +
<li>Added support for new CAN FD board IXXAT.</li>
 +
<li>Added support for UEGO board.</li>
 +
<li>Added transceiver amplitude and RT response time to the channel properties in 1553.</li>
 +
</ul>
 +
<li>scheduler</li>
 +
<ul>
 +
<li>We now support 40 model programs in the SimWB test for the purpose of RT Viewer stats.</li>
 +
<li>Added support for new CAN FD board IXXAT.</li>
 +
<li>Added support for UEGO board.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" |MATLAB/Simulink
 +
| valign="top" |<ul>
 +
<li> MLToolkit</li>
 +
<ul>
 +
<li>We now automatically handle any hard-coded windows paths in the Makefile in the following:
 +
<ul>
 +
<li>Name of libraries</li>
 +
<li>Make Rules and</li>
 +
<li>Include paths</li>
 +
</ul>
 +
<li> Added support for Arrays of Nested Buses.</li>
 +
<li>Added feature for splitting models.</li>
 +
<li>We now can handle S-functions located in folders that are not in model folder or subfolder under Windows.</li>
 +
</ul>
 +
<li>ccur library</li>
 +
<ul>
 +
<li>Renamed DBC CAN block's CAN ID Format option to "Show CAN ID in RTDB name as". This option controls how the CAN ID appears in the name of RTDB variable that is created for a relevant signal (hexadecimal or decimal). The option name is now consistent with the corresponding option in the Control Center's CAN DBC Import I/O Mapping > DBC File pane.</li>
 +
</ul>
 +
<li>RTW</li>
 +
<ul>
 +
<li>A file called ModelOriginInfo is now included in the RTW.Sources folder for a model on the real-time host. This file specifies the location of the model on the client machine, user name and IP address that uploaded the model, RTDB/code generation options, etc. Use this file to retrace the origin of a model on the real-time host machine.</li>
 +
</ul>
 +
<li>client module</li>
 +
<ul>
 +
<li>Added help for select API calls used to generate the RTDB and SimWB-compliant code for a model. For example, execute "help simwb.rtobj.createRTDB" at the MATLAB Command Prompt to access syntax information.</li>
 +
</ul>
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" |I/O Tasks
 +
| valign="top" |<ul>
 +
<li>CP_FPGAENG</li>
 +
<ul>
 +
<li>Added windowing mode for ign/inj pulse capture.</li>
 +
<li>Added Audi firmware.</li>
 +
<li>Added support for PWMOut, PWMIn, ToothWheel. </li>
 +
<li>Added PWMInput module.</li>
 +
<li>Added new Ford firmware.</li>
 +
</ul>
 +
<li>CP_UEGO</li>
 +
<ul>
 +
<li>Add support for UEGO board.</li>
 +
</ul>
 +
<li>NAI-79C3-SF6</li>
 +
<ul>
 +
<li>Added support for W2 module (reference module).</li>
 +
</ul>
 +
<li>ddc 1553</li>
 +
<ul>
 +
<li>1553: Add transceiver amplitude and RT response time to the channel properties.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" |Third Party Tools
 +
| valign="top" |<ul>
 +
<li>GLStudio</li>
 +
<ul>
 +
<li>Add support for running GLStudio RSOs with the test session in SimWB.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" |FPGA
 +
| valign="top" |<ul>
 +
<li>Firmware</li>
 +
<ul>
 +
<li>Added PWMInput.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" |CSharpAPI
 +
| valign="top" |<ul>
 +
<li>SimWBCSharpAPI.dll</li>
 +
<ul>
 +
<li>Add API call projectGetSelected and mergeRTDB. See details in the C#API documentation.</li>
 +
</ul>
 +
</ul>
 +
 +
 +
|}
 +
 +
===Release 7.7-0  (06/28/2016)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|FMU
 +
|valign="top"|<ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|AutoBuildScripts
 +
|valign="top"|<ul>
 +
<li>Added support for SimulationX 3.7.1.0.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|<ul>
 +
<li>Dolphin IX </li>
 +
<ul>
 +
<li>Added support for Dolphin IX board.</li>
 +
</ul>
 +
<li>SENT </li>
 +
<ul>
 +
<li>Added mappable control to pause/resume SENT channel data.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|<ul>
 +
<li>RTDB </li>
 +
<ul>
 +
<li>Added ability to create RTDBs with the same name, independent of each other,
 +
          in different projects.</li>
 +
<li>Now, the header file that defines the CVTTABLE structure for an RTDB will reside
 +
          in /usr/local/ccursim/include/rtdb_cvt/&lt;ProjectName&gt;.</li>
 +
<li>To enable this change, the header files in /usr/local/ccursim/include/rtdb_cvt/
 +
          will be automatically reorganized during the install procedure. All sources that
 +
          reference these header files are updated.</li>
 +
<li>To move to a previous installation of SimWB after installing this release, contact
 +
          Technical Support at support@concurrent-rt.com.</li>
 +
</ul>
 +
<li>cfgsrv </li>
 +
<ul>
 +
<li>Added support for Dolphin IX board.</li>
 +
</ul>
 +
<li>scheduler </li>
 +
<ul>
 +
<li>Added support for 5565 interrupt to dispatch the simulation loop. New keyword
 +
          '55intr' in session setup file to select the board:interrupt number.
 +
          32 bit word associated with the interrupt is placed in mem5565word RTDB variable
 +
          if it exists.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 7.6-0 (05/13/2016)===
 +
{|cellpadding="5" width="85%"
 +
|'''<u>Module</u>'''
 +
|width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|CSharpAPI
 +
|valign="top"|<ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWBCSharpAPI.dll
 +
|valign="top"|<ul>
 +
<li>Added modelParametersSignals API call obtain parameters and signals for SIMULINK
 +
          model.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|FMU
 +
|valign="top"|<ul>
 +
<li>fmuMain </li>
 +
<ul>
 +
<li>Support multiple FMUs is a single test. Moved temporary resource directory
 +
          to FMU location itself.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|I/O Tasks
 +
|valign="top"|<ul>
 +
<li>CP_WSSENSOR </li>
 +
<ul>
 +
<li>Support for Concurrent wheel speed sensor card.</li>
 +
</ul>
 +
<li>canout </li>
 +
<ul>
 +
<li>Mappable message control for CAN messages</li>
 +
</ul>
 +
<li>knocksensorout </li>
 +
<ul>
 +
<li>Add support for Knock sensor either on 16AO16 or DA3218 AO board.</li>
 +
</ul>
 +
<li>netioout </li>
 +
<ul>
 +
<li>Mappable message control for NETIO messages</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|MATLAB/Simulink
 +
|valign="top"|<ul>
 +
<li>ccur_main </li>
 +
<ul>
 +
<li>Added support for new point type for shared parameters feature.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|Python API
 +
|valign="top"|<ul>
 +
<li>PYToolkit </li>
 +
<ul>
 +
<li>Added userProgramMake() to command the compilation of both user models and
 +
          scripts on the server.</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#e0f0ff"
 +
|valign="top"|SimWB Core
 +
|valign="top"|<ul>
 +
<li>cfgsrv </li>
 +
<ul>
 +
<li>Added mergertdb command to merge 2 RTDB's. Also added mergeRTDB.pl script invoked
 +
          from cfgsrv</li>
 +
<li>Added modelrenamertdb to rename RTDB embedded in Simulink model</li>
 +
</ul>
 +
</ul>
 +
|-bgcolor="#f0f8ff"
 +
|valign="top"|java/HMI
 +
|valign="top"|<ul>
 +
<li>Display Builder </li>
 +
<ul>
 +
<li>Added support for shared parameter point type so that shared parameters can
 +
          be attached to HMI widgets.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 7.5-1 (04/11/2016) ===
 +
{| cellpadding="5" width="85%"
 +
|- bgcolor="#e0f0ff"
 +
|Creating new sessions failed in tests involving SIMPACK models. Fixed.
 +
|- bgcolor="#F0F8FF"
 +
| Column Major Flag was set incorrectly for Shared Parameters. Fixed
 +
|}
 +
===Release 7.5-0 (04/06/2016) ===
 +
{| cellpadding="5" width="85%"
 +
| '''<u>Module</u>'''
 +
| width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" | CSharpAPI / SimWBCSharpAPI.dll
 +
| valign="top" |<ul>
 +
<li>Generic</li>
 +
<ul><li>Added support for SimWB C#API. It includes most the client API calls which exists in the PYToolkit (except for ASAM related APIs).</ul>
 +
</li>
 +
</ul>
 +
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" |I/O Tasks
 +
| valign="top" |<ul>
 +
<li>DBC Import</li>
 +
<ul>
 +
<li>Added an option to generate hierarchical RTDB.</li>
 +
<li>Added an option to generate RTDB names with CAN id in hex.</li>
 +
</ul>
 +
<li>NAI-79C3-SF6</li>
 +
<ul>
 +
<li>Added support for the NAI 79C3 card's SF (4-channel measurement) and 6D (3-channel resolver output) modules.</li>
 +
</ul>
 +
<li>canasyncio</li>
 +
<ul>
 +
<li>Added support for CAN RTR frames.</li>
 +
<li>Added mapping controls to drive output messages properties. schedule rate, FIFO/Sched, Tx onchange/TX Now</li>
 +
<li>Added support for I/O monitor</li>
 +
</ul>
 +
<li>ddc 1553</li>
 +
<ul>
 +
<li>Added support to communicate with both 1553 A and B bus. Added API call to switch a specific BC message from Bus A to B or both.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" |SimWB Core
 +
| valign="top" |<ul>
 +
<li>cfgsrv</li>
 +
<ul>
 +
<li>Added support for copying, deleting, and renaming of resources that are outside of the currently selected project.</li>
 +
<li>Upgrade olicense binary to version 4.8.0.</li>
 +
<li>Add support to refresh CAN/LIN frames for the control center I/O monitor Panel.</li>
 +
</ul>
 +
<li>ccur library</li>
 +
<ul>
 +
<li>Enhanced DBC_CAN block to support CAN IDs in HEX.</li>
 +
</ul>
 +
<li>ccur main</li>
 +
<ul>
 +
<li>Added support for sharing block parameters across multiple Simulink models.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" |Java Installer / Installer
 +
| valign="top" |<ul>
 +
<li>C# API</li>
 +
<ul>
 +
<li>Added C# API in the Component panel.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" |MATLAB/Simulink
 +
| valign="top" |<ul>
 +
<li>MLToolkit</li>
 +
<ul>
 +
<li>Added support for Arrays of Buses.</li>
 +
</ul>
 +
<li>ccur library</li>
 +
<ul>
 +
<li>Enhanced DBC_CAN block to support CAN IDs in HEX.</li>
 +
</ul>
 +
<li>ccur main</li>
 +
<ul>
 +
<li>Added support for sharing block parameters across multiple Simulink models.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" |Python API
 +
| valign="top" |<ul>
 +
<li>PYToolkit</li>
 +
<ul>
 +
<li>The entire toolkit is now compatible with both Python 2 and 3.</li>
 +
</ul>
 +
</ul>
 +
 +
|}
 +
 +
===Release 7.4-0 (01/08/2016) ===
 +
{| cellpadding="5" width="85%"
 +
| '''<u>Module</u>'''
 +
| width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" | Control Center
 +
| valign="top" |<ul>
 +
<li>Generic</li>
 +
<ul>
 +
<li>Added new Test Archive Panel. User can archive a test, extract an archive, download or upload archives via the panel.</li>
 +
<li>Added support for a new user type poweruser.</li>
 +
<li>FMU Rebuild option moved to 'Parse FMU' section and works with Dymola & MapleSim FMUs.</li>
 +
</ul>
 +
<li>RTDB & I/O Mapping</li>
 +
<ul>
 +
<li>Added support for CP-MFIO board.</li>
 +
<li>Added support for DA3218Wave board.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" |FMU
 +
| valign="top" |<ul>
 +
<li>fmuMain</li>
 +
<ul>
 +
<li>Added support for different datatype (Integer, Boolean, String). We already support 'Double'.</li>
 +
<li>Added support for modifying parameters that are defined as 'tunable' during run-time for FMUs complying with FMI 2.0.</li>
 +
<li>Added support for modifying variables that are defined as 'Parameters' during run-time for FMUs complying with FMI 1.0.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" |I/O Tasks
 +
| valign="top" |<ul>
 +
<li>DA3218Waveform</li>
 +
<ul>
 +
<li>Added support for waveform on Concurrent DA3218 Board. (RedHawk 6.3 and after)</li>
 +
</ul>
 +
<li>NAI-79C3-K6</li>
 +
<ul>
 +
<li>Added lock file mechanism to lock/protect the hardware configuration. The configuration is set by placing NAI-79C3-K^.x files in /usr/local/ccursim/projects/RTDB/ folder.</li>
 +
</ul>
 +
<li>cpmfio</li>
 +
<ul>
 +
<li>Added support for Concurrent's CP-MFIO board, with 16 analog inputs, 16 analog outputs, and 96 digital input/output channels. For more information, see CP-MFIO.</li>
 +
</ul>
 +
<li>ddc 1553</li>
 +
<ul>
 +
<li>Added support to communicate with both 1553 A and B bus. Added API call to switch a specific BC message from Bus A to B or both.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" |SimWB Core
 +
| valign="top" |<ul>
 +
<li>cfgsrv</li>
 +
<ul>
 +
<li>Improved automatic rebuild of FMUs. We now support the following modeling packages:<br>
 +
Dymola® 2016 (FMI 1.0 and 2.0 CoSimulation)<br>
 +
Dymola® 2015 (FMI 1.0 CoSimulation)<br>
 +
MapleSim® 2015 (FMI 1.0 and 2.0 CoSimulation)<br></li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" |MATLAB/Simulink
 +
| valign="top" |<ul>
 +
<li>RTW</li>
 +
<ul>
 +
<li>- Faster code generation* for large Simulink®  models. Performance boost is best observed in large models. <br>
 +
(*Benchmark tests were done in MATLAB® Releases R2015a, R2013a, and R2010b. Tests show as much as 10-20x reduction in the total time required for RTDB creation and code generation.)
 +
</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 7.3-0 (10/05/2015) ===
 +
{| cellpadding="5" width="85%"
 +
| '''<u>Module</u>'''
 +
| width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" | I/O Tasks
 +
| valign="top" |<ul>
 +
<li>babylinasyncio</li>
 +
<ul>
 +
<li>Add support for event triggered frames.</li>
 +
</ul>
 +
<li>cpcos64</li>
 +
<ul>
 +
<li>Support for Concurrent's CP-COS-64 board, a 64-input, digital change of state board. For more information, see CP-COS-64 in Documentation.</li>
 +
</ul>
 +
<li>fiscasyncio</li>
 +
<ul>
 +
<li>Add support for high current FISC.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" | MATLAB/Simulink
 +
| valign="top" |<ul>
 +
<li>client module</li>
 +
<ul>
 +
<li>Added "Auto Login" option to MLToolkit GUI. The "Remember username and password" and "Enable auto-login into the real-time host" options have now been removed from the SIMulation Workbench Preferences GUI.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" |PythonAPI
 +
| valign="top" |<ul>
 +
<li>simwbDLClient.py</li>
 +
<ul>
 +
<li>You can truncate strings and vectors to N elements by appending or {N} to the extraction name or tag.</li>
 +
</ul>
 +
</ul>
 +
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" |SimWB API
 +
| valign="top" |<ul>
 +
<li>Java client API</li>
 +
<ul>
 +
<li>Added support to com.ccur.simclientapi.TestRecord.SessionRecord for RTDB snapshot feature. Also added a Snapshot class that specifies relevant constants.</li>
 +
</ul>
 +
</ul>
 +
|}
 +
 +
===Release 7.2-0 (06/25/2015) ===
 +
{| cellpadding="5" width="85%"
 +
| '''<u>Module</u>'''
 +
| width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" | I/O Tasks
 +
| valign="top" |<ul>
 +
<li>fastcomm</li>
 +
<ul>
 +
<li>Add support for new FASTCOMM device with selection of RS422/RS485. Number of channels can be a maximum of 8.</li>
 +
</ul>
 +
<li>fpga_eng_ns</li>
 +
<ul>
 +
<li>Add support for 16 channels of PWM inputs and outputs.</li>
 +
</ul>
 +
</ul>
 +
 +
|}
 +
===Release 7.1-0 (06/03/2015) ===
 +
{| cellpadding="5" width="85%"
 +
| '''<u>Module</u>'''
 +
| width="85%" align="left" | '''<u>Enhancements</u>'''
 +
|- bgcolor="#e0f0ff"
 +
| valign="top" | SimWB API
 +
| valign="top" |<ul>
 +
<li>RTDB access API - Add API call to take snapshot of RTDB. Parameters for the snapshot (file format, file name, item selection) are defined as part of the test properties.</li>
 +
</ul>
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" | SimWB Core
 +
| valign="top" |
 +
<ul>
 +
<li>scheduler</li>
 +
<ul>
 +
<li>Scheduler can take snapshot of RTDB at end of test run.</li>
 +
</ul>
 +
</ul>
 +
|- bgcolor="#F0F8FF"
 +
| valign="top" | Test Scripting
 +
| valign="top" |
 +
<ul>
 +
<li>SWM Script</li>
 +
<ul>
 +
<li>Add built-in language calls for RTDB snapshot, form capture and import.</li>
 +
<li>Add built-in language calls for asynchronous I/O functions.</li>
 +
<li>Add built-in language calls for math library (sin,cos, asin, acos, etc).</li>
 +
</ul>
 +
</ul>
 +
 +
|}
 +
 
===Release 7.0-0 (05/05/2015) ===
 
===Release 7.0-0 (05/05/2015) ===
 
{| cellpadding="5" width="85%"
 
{| cellpadding="5" width="85%"
 
| valign="top" |<ul>
 
| valign="top" |<ul>
 
<li>CIGI - First iteration of CIGI support with support for only Own-ship update.</li>
 
<li>CIGI - First iteration of CIGI support with support for only Own-ship update.</li>
<li>fpga_eng_ns - Add support for FPGA engine board. Board supports: Crank, Cams, Digital Input/Output, Analog Inputs, and Ignition/Injection Input Events.</li>
+
<li>fpga_eng_ns - Add support for [http://wiki.simwb.com/swbwiki/swbdoc/docs/UserManuals/io_devices/FPGA_ENG_NS.htm FPGA engine board]. Board supports: Crank, Cams, Digital Input/Output, Analog Inputs, and Ignition/Injection Input Events.</li>
 
</ul>
 
</ul>
 
|- bgcolor="#F0F8FF"
 
|- bgcolor="#F0F8FF"
 
<li>client module</li>
 
<li>client module</li>
 
<ul>
 
<ul>
Unexpected non-MediaWiki exception encountered, of type "Error"
[5b219674] /swbwiki/index.php?title=Release_Highlights&diff=2213&oldid=1602 Exception from line 436 of /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php: Call to undefined function each()
Backtrace:
#0 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(546): DiffEngine->diag()
#1 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(347): DiffEngine->compareSeq()
#2 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(228): DiffEngine->diffLocal()
#3 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(725): DiffEngine->diff()
#4 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(864): Diff->__construct()
#5 /var/www/html/mediawiki-1.23.3/includes/diff/DairikiDiff.php(987): MappedDiff->__construct()
#6 /var/www/html/mediawiki-1.23.3/includes/diff/TableDiffFormatter.php(193): WordLevelDiff->__construct()
#7 /var/www/html/mediawiki-1.23.3/includes/diff/DiffFormatter.php(143): TableDiffFormatter->changed()
#8 /var/www/html/mediawiki-1.23.3/includes/diff/DiffFormatter.php(83): DiffFormatter->block()
#9 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(910): DiffFormatter->format()
#10 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(813): DifferenceEngine->generateTextDiffBody()
#11 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(743): DifferenceEngine->generateContentDiffBody()
#12 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(665): DifferenceEngine->getDiffBody()
#13 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(635): DifferenceEngine->getDiff()
#14 /var/www/html/mediawiki-1.23.3/includes/diff/DifferenceEngine.php(443): DifferenceEngine->showDiff()
#15 /var/www/html/mediawiki-1.23.3/includes/Article.php(826): DifferenceEngine->showDiffPage()
#16 /var/www/html/mediawiki-1.23.3/includes/Article.php(549): Article->showDiffPage()
#17 /var/www/html/mediawiki-1.23.3/includes/actions/ViewAction.php(44): Article->view()
#18 /var/www/html/mediawiki-1.23.3/includes/Wiki.php(428): ViewAction->show()
#19 /var/www/html/mediawiki-1.23.3/includes/Wiki.php(292): MediaWiki->performAction()
#20 /var/www/html/mediawiki-1.23.3/includes/Wiki.php(588): MediaWiki->performRequest()
#21 /var/www/html/mediawiki-1.23.3/includes/Wiki.php(447): MediaWiki->main()
#22 /var/www/html/mediawiki-1.23.3/index.php(46): MediaWiki->run()
#23 {main}