QUARC 1.3 QUARC 1.1 navigation bar

Table of Contents > QUARC > Release Notes

QUARC 1.2

These release notes describe the new features and changes introduced in QUARC 1.2. They are divided into the sections enumerated below.

New Blocks

New blocks have been added to the QUARC Targets library in QUARC 1.2. The new blocks are listed below.

HIL Read Write
The HIL Read Write block has been added to the Immediate I/O Data Acquisition blockset. It may be used to read and write to a data acquisition card in a single operation and is particularly useful for devices based on SPI or I2C communications.
Invalid Stream
The Invalid Stream block has been added to the Advanced Communications blockset. It outputs an invalid stream. This block is typically used with the FIFO Read block to pass a stream between two asynchronous threads.
Model Argument
The Model Argument block has been added to the Signals Sources blockset. It outputs the value of a model command-line argument. The Model Argument block allows user-specified arguments to be passed when a model is executed.
Show Message on Host
The Show Message on Host block has been added to the Error Handling Sinks blockset. It displays a message in a dialog on the host machine when its input is non-zero. Unlike the Stop with Message block it does not stop the model.
Smooth Signal Generator
The Smooth Signal Generator block has been added to the Signals Sources blockset. It outputs a waveform whose amplitude and frequency may be changed without causing a discontinuity in the output and may be driven by inputs to the block, e.g., coming from an external graphical user interface. It supports sine, square, sawtooth up, sawtooth down, and triangle waves. Note that the Smooth Sine Wave block has been removed from QUARC because it is superseded by the Smooth Signal Generator block.
Stop with Message
The Stop with Message block has been added to the Error Handling Sinks blockset. It displays the error message in a dialog box on the host machine and stops the model when its input is non-zero. Unlike the Stop with Error block, the error does not appear in the Simulink Diagnostics window and the model is terminated normally, not with the error status set.
Stream Answer State Comparison
The Stream Answer State Comparison block has been added to the Intermediate Communications blockset. It compares the connection state of a Stream Answer block to a particular state.
Stream Answer State Constant
The Stream Answer State Constant block has been added to the Intermediate Communications blockset. It outputs the value of a particular Stream Answer block connection state.
Stream Call State Comparison
The Stream Call State Comparison block has been added to the Intermediate Communications blockset. It compares the connection state of a Stream Call block to a particular state.
Stream Call State Constant
The Stream Call State Constant block has been added to the Intermediate Communications blockset. It outputs the value of a particular Stream Call block connection state.
Stream State Comparison
The Stream State Comparison block has been added to the Basic Communications blockset. It compares a signal to a persistent stream state. The Basic Stream blocks, such as the Stream Client and Stream Server blocks, have a state output. The Stream State Comparison block may be used to compare the output of this state port to one of the possible persistent stream states.
Stream State Constant
The Stream State Constant block has been added to the Basic Communications blockset. It outputs the value of a persistent stream state. The Basic Stream blocks, such as the Stream Client and Stream Server blocks, have a state output. The Stream State Constant block outputs the possible states that may be produced by this state port.
String Constant
The String Constant block has been added to the Signals Sources blockset. It outputs a tunable constant string value.
String Display
The String Display block has been added to the To Host Sinks blockset. It displays the current value of its input (a string signal) on the block itself.
Text Figure
The Text Figure block has been added to the Figures Sinks blockset. It prints formatted text in a separate window or on a uicontrol within a MATLAB GUI.

New Cards Supported

The full list of all the data acquisition cards supported by the latest version of QUARC is given by the following link. In QUARC 1.2 the following cards were added to the supported cards.

Gumstix Robostix
The Gumstix's Robostix is a board built and sold by Gumstix, Inc. (www.gumstix.com). The Robostix card can only be used with QUARC when connected to a Gumstix Verdex board. Communication between the Robostix and the Verdex (which is where QUARC actually runs) is done using the Inter-Integrated Circuit (I2C) bus.
Gumstix Verdex
The Gumstix's Verdex is a board built and sold by Gumstix, Inc. (www.gumstix.com). On top of running the QUARC Linux ARM (gumstix) Target, the Verdex can also act as a data acquisition board.
National Instruments DAQCard-6715
The National Instruments DAQCard-6715 board is an Analog Output card for laptops and handheld devices that have a PCMCIA slot. Please see National Instruments' website (www.ni.com) for the card data sheet.

New Device Supported

QUARC 1.2 may now interface to the device listed below.

SensAble PHANTOM Omni
The SensAble Technologies PHANTOM Omni®; is a 6 degree-of-freedom haptic device that makes it possible for users to touch and manipulate virtual objects. QUARC can interface with the SensAble PHANTOM Omni and treats it as a data acquisition card, allowing the user a huge amount of flexibility when creating custom haptic applications or adding haptics to existing experiments. The PHANTOM Omni easily connects to any PC or laptop with an available 6-pin FireWire®; (IEEE 1394) input. The specifications that follow only apply to the PHANTOM Omni as a HIL device in QUARC and is not an exhaustive list of the PHANTOM Omni specifications; see SensAble's website for more detailed and current PHANTOM Omni specifications.

New Features

The new features introduced in QUARC 1.2 are mentioned below.

Linux ARM (gumstix Verdex) Target
The Linux ARM (gumstix) target is now one of the target types supported by QUARC. It currently supports OpenEmbedded (OE) Linux running on a Gumstix™ Verdex board.
New Real-Time Configuration Options
Console (stdio) output may now be enabled or disabled for a model via the "Allow console output" option on the QUARC tab of the Real-Time Workshop configuration pane. This feature is most important for the upcoming INtime target, but is supported on all targets. The "Number of CPUs" field has also been changed to a "Model Affinity" parameter so that the model may be targeted for any subset of available CPUs rather than just the first N CPUs.
New QUARC MATLAB Function: qc_set_priority
The qc_set_priority QUARC MATLAB function sets the priority of the MATLAB process and/or thread. This function is typically used when implementing a control system in a MATLAB script or when time-sensitive operations are performed. This function MUST BE USED WITH CAUTION because MATLAB can interfere with other applications and even the operating system itself if the priorities are set too high.

Improved Features

Some of the features improved in QUARC 1.2 are enumerated below. There a great many miscellaneous bug fixes and improvements that have not been listed. Only some of the highlights are listed below.

QUARC System Timer Performance
When a hardware timebase is not present in a model, QUARC uses its own "QUARC system timer". On the QUARC Target for Windows this system timer was limited to a minimum period of one millisecond and jitter performance was poor on many platforms. The jitter has been substantially reduced for sample times of two milliseconds or slower on all Windows platforms. The sample time is still limited to one millisecond. However, QUARC also provides a new "fast system timer" option for multiprocessor and multicore systems which may yield better performance at one millisecond and allows sample times faster than one millisecond! This option is disabled by default, but may be enabled on a per-model basis via the model's configuration parameters. The fast system timer is not available on single CPU platforms and works best on platforms with more than two processors or cores. See the Real-Time Workshop Pane - QUARC page for details.
System Timebase
The System Timebase block now supports sample rates faster than 1 kHz on the Windows target. Furthermore, opening the Simulink Library Browser on R2008a or above no longer causes the block to run out of system resources (These versions of MATLAB have a bug in the Simulink Library Browser, but Quanser has developed a workaround).
Driver Enhancements
The NI drivers have been enhanced to provide support for PWM outputs. Also, the watchdog support in the Q8-series drivers has been improved. Other miscellaneous improvements and bug fixes have been made to drivers. Support for new HIL properties functions was added to certain drivers.
HIL Block User Interface Additions
The HIL blocks now provide convenient channel selection buttons that make it easier to select the channels you wish to use. Channels may be selected from a list or even from an image of the card's connector or terminal board. The channel selection dialog also warns of conflicts and other potential issues. For instance, it keeps track of which digital I/O channels have been configured as inputs or outputs. Hence, only channels configured as digital outputs show up in the list for the HIL Write Digital block, for example.
Improvements to QUARC Monitor
The QUARC Monitor, which shows up in the system tray, has been improved and documented. It can now be used to monitor local or remote targets and provides more visual indications of the state of models on the target. It can also be configured to check periodically for the latest updates to QUARC.
Standardization of Robot Axes
The axes used by most of the blocks that support robotic and haptic devices have been standardized to make it easier to use and exchange these blocks. However, some blocks have not been changed due to backward-compatibility concerns.
Wiimote Support
Support for Toshiba-based bluetooth dongles has been added for the Wiimote along with other sundry improvements.
Image Processing Improvements
Various enhancements were made to the PGR Grab Image block, such as support for custom video modes with the FireflyMV as well as new options. The PGR Find Object block's algorithm for locating multiple objects has also been improved.
Network Licensing Improvements
Improvements were made to network licensing, particularly for remote Windows targets. It is now possible to install a QUARC Windows runtime target without a local license manager.
Enhanced Data Type Support
The FIFO and Circular Buffer blocks have been enhanced to support arbitrary data types, including multidimensional signals, such as RGB images, under certain conditions. This additional support allows strings and streams to be passed between synchronous and asynchronous threads. Support for strings has also been added to the Stream blocks.
Basic and Intermediate Stream Blocks Enhanced
The Basic and Intermediate Stream blocks have been enhanced in order to make them easier to use. For example, the err output is now zero on success and negative when an error occurs, never positive. This change allows Compare to Zero blocks to be removed from the diagram since the err output may now be fed directly into logical operators. There have also been additional outputs added to handle situations such as no peer being designated for UDP communications. Refer to the help for these blocks and the updated communications demonstrations for more information on the changes that have been made.
Communications Demonstrations Updated
The communications demonstrations have been updated to reflect the enhancements to the Basic and Intermediate Stream blocks. Some corrections have also been made to the Advanced Communications demonstrations.
Stream Blocks Now Support External URIs
The Stream blocks now support external URIs, so that the URI to which to connect (or on which to listen) may be specified as an input port. This enhancement allows models to use a variety of communications protocols without replicating blocks. Furthermore, by supplying the URI from a Model Argument block, it is even possible to supply the URI as an argument to the model, allowing a model to be reconfigured to use any communication protocol simply by changing a model argument.
UDP Protocol Improved
The UDP protocol has been improved in order to handle ICMP Port Unreachable messages on the Windows target. These messages are now disabled by default, so that the Stream blocks are easier to use with the UDP protocol. Handling of ICMP Port Unreachable messages may be enabled using the "unreachable" option of the UDP URI. Receipt of an ICMP Port Unreachable message now results in a -QERR_PORT_UNREACHABLE error. See the UDP Protocol page for more details.
More documentation
The documentation has been enhanced to include more information about QUARC features and external interfaces, such as the Quanser .NET Class Library and C APIs. A great deal of effort has been put into our documentation. Be sure to familiarize yourself with all it has to offer!
More Tips of the Day
More Tips of the Day have been added.

New Demonstrations

The QUARC demonstrations added in QUARC 1.2 are listed below.

QUARC Data Logging Demo
The QUARC Data Logging Demo demonstration is now included with the QUARC Basic Features Demos. The example demonstrates how to log data into a variable in the MATLAB workspace using the To Workspace block from Simulink. It also demonstrates how to stream data to a MAT-file using the To File block from Simulink, the To Host File block from the QUARC targets library and the MAT-file logging feature of Simulink.
QUARC Computation Time Demo
The QUARC Computation Time Demo demonstration is now included with the QUARC Basic Features Demos. The example demonstrates how to use the Computation Time block from the QUARC Targets library to compute the time it takes for a Function-Call Subsystem to execute in one cycle.
QUARC System Timebase Demo
The QUARC System Timebase Demo demonstration is now included with the QUARC Basic Features Demos. The example demonstrates how to use the System Timebase block from the QUARC Targets library to allow a normal simulation to be run in real-time. This demonstration highlights benefits and limitations of using this block.
Running Models using the QUARC QNX x86 Target
The Running Models using the QUARC QNX x86 Target demonstration is now included with the QUARC Basic Features Demos. The example demonstrates how to run models using the QUARC QNX x86 target. The QUARC QNX x86 Target is a hard real-time target for the QNX Neutrino operating system.
Running Models using the QUARC gumstix (Linux ARM) Target
The Running Models using the QUARC gumstix (Linux ARM) Target demonstration is now included with the QUARC Basic Features Demos. The example demonstrates how to run models on a Gumstix's Verdex board using the QUARC gumstix (Linux ARM) target.
QUARC Hardware-In-Loop Timebase Demo
The QUARC Hardware-In-Loop Timebase Demo demonstration is now included with the QUARC Using Hardware Demos. The example demonstrates how to use a HIL Timebase block from the QUARC Targets library to improve timing performance of a model. With a HIL Timebase block in the model, the Hardware-In-Loop timer would be used as the timebase as opposed to the QUARC system timebase. Use of this family of blocks is recommended for the Windows target since it is more efficient than the QUARC system timebase. particularly on a single-core machine. For details of this family of blocks, please refer to the QUARC Generic HIL Blocks - Timebases reference section in the QUARC documentation.
QUARC Hardware-In-Loop Watchdog Demo
The QUARC Hardware-In-Loop Watchdog Demo demonstration is now included with the QUARC Using Hardware Demos. The example demonstrates how to use the HIL Watchdog block from the QUARC Targets library as a safety feature when performing operations that may take too much time to compute and eventually freeze the system.
QUARC Dynamic Reconfiguration Demo
The QUARC Dynamic Reconfiguration Demo demonstration is now included with the QUARC Dynamic Reconfiguration Demos. The example uses three Simulink models to demonstrate how to perform dynamic reconfiguration. For a detailed description of this feature, the models used and how they operate, please refer to the Dynamic Reconfiguration reference section of the QUARC documentation.
QUARC Host Mouse Demo
The QUARC Host Mouse Demo demonstration is now included in the "Peripherals: Host" section of the QUARC Using Devices Demos. The example demonstrates how to use the Host Mouse block from the QUARC Targets library to obtain the X-Y coordinates of the mouse cursor in addition to the state of the mouse buttons (up to 5 buttons).
QUARC Host Keyboard Demo
The QUARC Host Keyboard Demo demonstration is now included in the "Peripherals: Host" section of the QUARC Using Devices Demos. The example demonstrates how to use the Host Keyboard block from the QUARC Targets library to obtain the state of various keyboard keys.
QUARC Model Standard I/O Demo
The QUARC Model Standard I/O Demo demonstration is now included with the QUARC User Interface Demos. The example demonstrates how to use the Scan and Print blocks from the QUARC Targets library to interact with the model standard I/O.
QUARC MATLAB GUI Demo
The QUARC MATLAB GUI Demo demonstration is now included with the QUARC Targets Creating GUIs Demos. The example includes a Simulink model and a MATLAB GUI created using the GUIDE application which can be used to build, start and stop the model in addition to perform online parameter tunning on the model. For information on how to create MATLAB GUIs and modify them to control Simulink models, please refer to the Creating MATLAB GUIs section.
Integration with Virtual Reality Toolbox Demo
The Integration with Virtual Reality Toolbox Demo demonstration is now included with the QUARC Integration with Simulink and its Toolboxes Demos. The example demonstrates how to use QUARC specific blocks with the Virtual Reality Toolbox from Simulink. It showcases the ability of QUARC to be integrated with the Virtual Reality toolbox.
QUARC Model Referencing Demo
The QUARC Model Referencing Demo demonstration is now included with the QUARC Integration with Simulink and its Toolboxes Demos. The example showcases QUARC's ability to support the model referencing feature from Simulink.
QUARC Client Script Demo
The QUARC Client Script Demo demonstration is now included in the "Stream" section of the QUARC MATLAB Functions Demos. The example consists of two files: a server model and a client script. It demonstrates how to use the QUARC Stream MATLAB functions to establish a connection between a MATLAB script (client) and a Simulink model (server). For a detailed description of the server model and how it operates, please refer to the Basic Communications section of the QUARC documentation.
QUARC Server Script Demo
The QUARC Server Script Demo demonstration is now included in the "Stream" section of the QUARC MATLAB Functions Demos. The example consists of two files: a client model and a server script. It demonstrates how to use the QUARC Stream MATLAB functions to establish a connection between a MATLAB script (server) and a Simulink model (client). For a detailed description of the client model and how it operates, please refer to the Basic Communications section of the QUARC documentation.

New Software Compatibility

QUARC 1.2 has introduced compatibility with the following third-party software.

MATLAB R2008b
Compatibility with MATLAB, Simulink, and Real-Time Workshop R2008b has been added.
Microsoft Visual C++ 2008
Compatibility with Microsoft Visual Studio or C++ 2008 Professional or Express Edition (no SP or SP1) has been added.

 

navigation bar