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.
Copyright ©2024 Quanser Inc. This page was generated 2024-10-17. Submit feedback to Quanser about this page.
Link to this page.