Table of Contents > QUARC > Release Notes
QUARC 2.3
These release notes describe the new features and changes introduced in QUARC 2.3. They are divided into the sections enumerated below.
New Software Compatibility
QUARC 2.3 has introduced compatibility with the following third-party software.
Compatibility with MATLAB, Simulink, and Simulink Coder R2012a has been added.
Compatibility with MATLAB, Simulink, and Simulink Coder R2012b has been added. Along with this compatibility comes code efficiency improvements, as code generation now shares some of the features of Embedded Coder.
Compatibility with the Microsoft compiler (based on Visual C++ 2010) included in the Microsoft Windows SDK 7.1 has been added.
Added support for exporting X3D files from 3dsMax 2013. The X3D files are now exported in Unicode UTF-8 encoding.
New Features
The new features introduced in QUARC 2.3 are mentioned below.
QUARC now includes a Check for Updates hyperlink, as displayed, for example, on the Web Resources page. The Check for Updates hyperlink allows the latest version of the QUARC 2.3 software to be downloaded, if available. There is also a menu item to check for updates under the "QUARC/Web resources" menu.
QUARC now allows the default compiler to be specified via the QUARC Preferences dialog. This facility is particularly useful for the Linux Verdex and Linux Overo targets. There are new QUARC MATLAB functions to support this feature as well.
Added a "Download to target" checkbox to the QUARC tab for most QUARC targets that allows downloading to the target at the end of a build to be disabled. This option is useful for building code without downloading it to the target so that a model can be built without a remote target connected.
The installation experience for QUARC 2.3 is improved over previous versions, with an improved look-and-feel and more automatic configuration to make setup easier. For example, QUARC nows configures a compiler automatically for the default Windows target if necessary. Hence, calling mex -setup is typically no longer necessary to set up QUARC. The new autorun application also distinguishes between 32-bit and 64-bit platforms and invokes the appropriate installer. Note that the End-User License Agreement has been updated. A link has also been added that allows QUARC to be updated directly from the Control Panel.
Help pages now include a Home link in the navigation bar to go to the root level of the documentation. This feature opens the Supplementary Software help browser in MATLAB R2012b and above and is a convenient way to get from the help page for a particular block to the full QUARC help.
The Windows mailslot protocol is now supported. The mailslot protocol may be used for broadcasting small packets over a domain or synchronizing with scripts using the WAITFOR command.
A QUARC Quick Installation Guide has been created, as a complement to the existing fully-detailed QUARC Installation Manual. The QUARC Quick Installation Guide provides, in a condensed and graphical way, the main steps required to successfully install QUARC, test the installation, and get started with using QUARC by running the provided examples.
The quarc_run command has been enhanced by adding a -Q
option
that causes it to run quietly. Error dialogs are suppressed. This option is useful in batch scripts when errors can be safely
ignored. For example, the command:
quarc_run -q -Q *.rt-win64
stops all QUARC models running on 64-bit Windows, without generating an error dialog if no models are currently running.
The String Display block has been enhanced by adding different display modes: single line, multiple lines and console. Single line mode corresponds to the original functionality.
In multiple line mode, any newlines or carriage returns in the input string cause it to display multiple lines of text.
Console mode is like multiple line mode except that it also displays a history of previous inputs, much like a console. This feature can be useful when communicating with serial devices which output ASCII text.
Support for variable-sized signals has also been added.
There is now a convenient link at the bottom of every QUARC help page to submit feedback to Quanser. A default email application must be configured for the mailto protocol in Control Panel/Default Programs for this link to work.
The QUARC help now integrates into Visual Studio 2010 as it did for Visual Studio 2005 in previous versions of QUARC. However, the QUARC help is only visible in Visual Studio when offline help is used.
Improved Features
Some of the features improved in QUARC 2.3 are enumerated below. There a great many miscellaneous improvements that have not been listed. Only some of the highlights are listed below.
The Asynchronous Thread block has been enhanced to allow the CPU affinity of the thread to be specified. Hence, it is now possible to restrict the asynchronous thread to a subset of the CPUs available on the target.
The Controller block has had numerous bug fixes and is now consistent with the documentation.
The Display Image block now displays 2-D image data in 256 shades of grey while continuing to display 3-D image data in full colour. The axes have also been shifted by 0.5 to properly align the image within the axes, particularly for small images.
The file protocol may now be used with the Basic Stream blocks with the multi-threaded implementation to read and write files. Improvements were made to the Stream API and file protocol driver to recognize read-only and write-only streams and act accordingly for persistent streams. However, be sure to read the limitations section of the help page for the Stream Client block before using the file protocol with the Stream Client (or Stream Server) block.
Numerous improvements and corrections have been made to the QUARC help pages, particularly for the data acquisition cards and blocks. The help structure on disk was revamped completely to be compatible with the newer versions of MATLAB which use a supplementary help system for third-party products.
The HiQ embedded DAQ for Quanser Unmanned Vehicle Systems (UVS) platforms now supports running QUARC 2.3 on the Gumstix Verdex. Therefore by using the QUARC Linux Verdex Target, this upgrade allows QUARC-supported Windows-based cross-compilers to be utilized when building QUARC models for the Quanser HiQ. Additional upgrades to the HiQ include bug fixes related to default IMU range settings and additional configuration options.
Enhanced Host Game Controller block to handle more than one button press at the same time.
The Minimum and Maximum parameters have been replaced with a single Modulus parameter because the original parameters were deceptive, particularly for integer-valued input signals. The Modulus parameter is roughly equivalent to the range of the input signal, but be sure to read the new documentation on the Inverse Modulus help page for details.
The number of times the input signal has wrapped relative to the starting position may now be output from the block as an optional output. The sign of this output indicates the direction it wrapped.
Finally, the algorithm has been enhanced to handle arbitrary offsets in the input signal.
QUARC licensing has been updated to resolve installation and licensing issues. New license files are required when upgrading from earlier versions of QUARC to QUARC 2.3.
The LLVM-GCC compilers for the QUARC Linux Verdex and Linux Overo Targets have been updated to use a newer version of LLVM. These compiler enhancements resolve compilation errors that occurred for some models. The compiler options for the CodeSourcery Lite compiler have also been modified to fix compilation errors while building large models.
The NaturalPoint OptiTrack blocks now support 64-bit Windows using the new Tracking Tools 2.5.1 software release from NaturalPoint.
MAT-file logging is now enabled from the Interface tab of the Configuration Parameters dialog under the Code Generation section and no longer appears under the QUARC tab. The MAT-file logging feature has been enhanced to work under the new code generation framework (based on Embedded Coder) of MATLAB R2012b and above.
The NI drivers have been enhanced to support the new Quanser MX-Series Terminal board.
An option has been added to the qc_set_target_type QUARC MATLAB function to allow certain model configuration parameters to be preserved, such as the stop time.
The qc_terminate_unconnected_ports function has been enhanced so that it may be invoked for individual blocks rather than the entire model.
The serial protocol has been enhanced to account for bugs in Prolific USB-to-serial drivers which was causing the serial protocol to operate incorrectly during large data transfers. Since the Prolific chipset is at the core of many USB-to-serial adapters, this change should allow these adapters to now be used reliably with QUARC. Also improved validation of the serial options to ensure the selected baud rate, etc. are compatible with the serial port selected.
Compile times for models using SimMechanics blocks have been dramatically improved for non-Windows targets (except when building natively on a remote target).
The Sleep block now supports timeouts shorter than one millisecond on Windows targets.
Enhanced the stream_set_swap_bytes MATLAB function to support logical values.
Added a Save button to the Target Information dialog so that more information about the system can be provided when contacting Quanser technical support.
Changed the name of the timeout option of the TCP/IP URI to connect_timeout instead to be clearer as to its purpose.
The recommended version of the Point Grey Research's FlyCapture software is now version 2.4. Installation instructions have been updated in the PGR Grab Image block help.
New Cards Supported
The full list of all the data acquisition cards supported by QUARC 2.3 is given by the following link. QUARC 2.3 may now also interface to the cards listed below.
The Quanser QUBE-SERVO-USB is an integrated DC-servo motor experiment. It is designed to help teach fundamental control concepts and theories on an easy-to-use and intuitive platform.
New Demonstrations
The QUARC demonstrations added in QUARC 2.3 are listed below.
The QUARC Multi-Rate Demo example illustrates the advantages of the multithreading capabilities of QUARC for multi-rate models. Interestingly, the example uses a PI Controller to tune the computation time of its subrate task so that it is consistent on all targets regardless of the target's computational power.
The QUARC Mailslot Server example demonstrates how to use the Basic Communications blockset to implement a mailslot server capable of servicing multiple clients. The clients may be run on the local machine or on remote hosts. It also addresses important considerations in mailslot communications.
The QUARC Mailslot WAITFOR example demonstrates how to use the Basic Communications blockset to synchronize with a batch file via the WAITFOR command. The client may be run on the local machine or on a remote host. It also addresses important considerations in mailslot communications particular to the WAITFOR command.
The QUARC UDP Server example demonstrates how to use the Basic Communications blockset to implement a UDP server capable of servicing multiple clients. The clients may be run on the local machine or on remote hosts. It also addresses important considerations in UDP communications. The example employs the "peer=any" option of the UDP protocol. It does not make use of the UDP broadcast capability of QUARC.
The QUARC UDP Supervisory example demonstrates how to use the Basic Communications blockset to implement a UDP server capable of servicing multiple clients that employs the UDP broadcast capabilities of QUARC. Each client must be run on a separate remote host. This example also addresses important considerations in UDP communications.
The QUARC UDP Multi-Agent example demonstrates how to use the Basic Communications blockset to implement a set of multiple cooperating agents which communicate with each other using UDP broadcasting. The agents may be run on the local machine or on remote hosts. The example also addresses important considerations in UDP communications.
New Blocks
New blocks have been added to the QUARC Targets library in QUARC 2.3. The new blocks are listed below.
Signal Routing Blocks
The Demultiplexer block routes its input signal to one of many outputs based on a selection input. It is equivalent to the demultiplexer used in digital logic.
New Functions
New MATLAB functions have been added to the QUARC MATLAB functions in QUARC 2.3. The new functions are listed below.
Configuration Functions
The new configuration functions allow a default compiler to be configured for a QUARC target. This new feature is particularly useful for the QUARC Linux Verdex and QUARC Linux Overo targets in order to select which of the supported compilers is used by default to compile models. This functionality has also been incorporated into the QUARC Preferences dialog (see the Default Compiler section under New Features for details).
The new qc_get_default_compiler function returns the default compiler used with the specified QUARC target type.
The qc_set_default_compiler function sets the default compiler used with the specified QUARC target type.
The qc_get_compilers function returns a cell array of strings containing valid compilers for the given target type. Note that the values it returns may vary depending on the version of MATLAB and which compilers are actually installed on the system.
Deprecated Features
Some of the previous QUARC features have been deprecated in QUARC 2.3, as mentioned below. Many of the deprecated features may continue to work, but are no longer supported and should be avoided. |
Deprecated Blocks
This block has been deprecated and should not be used in new models because the Simulink
MATLAB Command Line
Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:
doc('Selector');MATLAB Command Line
Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:
qc_open_library('quarc_library_deprecated/Discontinuities')This block dynamically selects elements of an input array for its output based on an index vector input.
Bug Fixes
Some of the bug fixes in QUARC 2.3 are enumerated below. This list is not complete. Only some of the highlights are listed below.
Fixed an issue with the sorted order that occurred in complex models when a HIL Timebase block was placed in a subsystem. Corrected the configuration settings for numerous HIL cards. Resolved issue whereby an incorrect value entered on the Digital Outputs tab caused it to switch to the Digital Inputs tab. Also resolved a bug in which it could cause a page fault while checking parameters. Added limits on the PWM output frequency for QPID and QPIDe cards. Enhanced PWM configuration dialog to handle encoder emulation mode and to resolve minor issues.
Resolved -QERR_WOULD_BLOCK being output under certain circumstances from the err port.
Corrected the number of code units being output by the stream_scan QUARC MATLAB function.
Reduced the number of hardware clocks configurable to one instead of three, since the Q2-USB only supports one hardware clock. Fixed communications issues which occurred under certain circumstances. Added a workaround for a bug in old firmware. Corrected encoder range specified in help.
Fixed call to ishghandle in the quanser.checkbox class so that it includes the extra arguments required by newer versions of MATLAB. This fix eliminates errors in QUARC dialogs that make use of the Quanser checkbox.
Changed the IR UART from serial port 3 to port 2. Also corrected documentation for the other input channels. The receiver inputs are measured in seconds, not percent. Added new properties for setting accelerometer offsets.
Added new functions to the HIL API to set the final termination states when a board is closed. Also changed the calling convention to cdecl instead of stdcall for all HIL API functions. The HIL API underlies all the HIL blocks and functions in Simulink and MATLAB respectively.
Resolved an issue in persistent streams in which listening streams did not always shut down properly on some targets and an issue in which errors on startup might not be detected correctly. Fixed a bug in the Stream Client and Stream Server blocks in which the new output was not being updated correctly when using bus objects and the receive most recent option. Added other checks to ensure robust closure of persistent streams.
Fixed bug in SPI communications protocol that caused it to crash when no options were specified on the URI.
Changed default URI used by Basic Stream examples to tcpip://localhost:18000 instead of shmem://foobar:1 in order to be consistent with the Intermediate and Advanced examples. Made similar changes to the Stream C API examples.
Resolved issue in which byte swapping not set correctly if the connection could not be made immediately in non-blocking mode. Also fixed a comparision in the generated code.
Fixed a bug in the TCP/IP protocol in non-blocking mode in which a client would pause for the close_timeout (5 seconds by default) on closure if no server was present. Also resolved an issue on closure when the connection was aborted and made closure more robust. Resolved an issue in which sockets were not closed correctly if the thread was cancelled during closure.
Fixed the documentation for the Q8-USB series and QPID series cards with respect to the card-specific options for encoders.
Resolved a bug in the communications API that led to a UDP server not always closing the communications channel correctly and preventing the UDP server from binding to the port on the next run. Added support for unidirectional streams, which allows the file protocol to be used with persistent streams such as the Basic Communications blockset with blocking I/O.
Fixed numerous installation issues, particularly with device drivers, due to improper file versioning.
Made UDP closure more robust in blocking mode.
Fixed closure of Q8-USB series cards when interrupt operations are pending. Also added code to stop data streaming on closure.
Fixed encoding of stream_receive_array script that was causing MATLAB to not recognize the function. Also corrected an internal bug in which it was misinterpreting a return value.
Changed Visualization Initialize block so that it attempts to use the current MATLAB directory to find the scene file if the model has not yet been saved and therefore does not have a model path yet.
Removed deprecated setting in QUARC Model Standard I/O Demo which was causing it not to build.
Set stop time of QUARC Data Logging Demo to 10 seconds to match help for the demo.
Fixed the code generation for the Host Force Feedback Button-Triggered Periodic Torque block, which did not build correctly.
Eliminated unreferenced variables in the code generated for the Visualization Set Variables block. A similar fix was made to the Altia Plot block.
Added stream_receive_utf16_chars and stream_receive_utf32_chars functions to the Quanser Stream API, which were missing. Fixed a bug in stream_receive_utf8_chars in which it was not returning the correct return value (it was returning -QERR_WOULD_BLOCK when it should have been returning the number of code units read).
Rewrote the Haptic 3-DOF Pantograph blocks to resolve code generation problems due to the Embedded MATLAB on some versions of MATLAB.
Fixed display of Sigmoids subsystem within the QUARC Targets library.
Corrected error handling in GPS NMEA block.
Removed border from blocks in Logos library that appeared only in newer versions of MATLAB.
Eliminated a warning produced when an Inverse Modulus block is placed in a user-defined Simulink library.
Corrected a callback of the Host Force Feedback Externally-Triggered Condition Torque block that led to incorrect copying behaviour.
Resolved errors compiling Roomba blocks in newer versions of MATLAB.
Added support for cross-compiling the Vehicle (VAL) blocks between Windows platforms.
Copyright ©2024 Quanser Inc. This page was generated 2024-10-17. Submit feedback to Quanser about this page.
Link to this page.