QUARC 2.5 QUARC 2.3 navigation bar

Table of Contents > QUARC > Release Notes

QUARC 2.4

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

New Software Compatibility

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

MATLAB R2013a

Compatibility with MATLAB, Simulink, and Simulink Coder R2013a has been added.

MATLAB R2013b

Compatibility with MATLAB, Simulink, and Simulink Coder R2013b has been added.

MATLAB R2014a

Compatibility with MATLAB, Simulink, and Simulink Coder R2014a has been added.

New Features

The new features introduced in QUARC 2.4 are mentioned below.

Q8-PCI and QPID Series Cards

Added support for accessing the Q8-PCI series and QPID series cards from 32-bit code under 64-bit Windows. This additional support means that 32-bit third party applications running under 64-bit Windows can now be interfaced to the Quanser Q8-PCI and QPID series cards.

Raw PWM for QPID-series Cards

Added support for low-level control of the PWM outputs of the QPID-series cards via the Other Output channels. The other outputs channels may now be used to control the exact timing of both the rising and falling edge of each PWM output within the PWM period.

Other output 0 controls the rising edge of PWM output 0. It is expressed as a fraction of the PWM period. For example, a value of 0.50 places the rising edge of PWM output 0 at 50% of the PWM period. Similarly, other output 1 controls the falling edge of PWM output 0. Subsequent pairs of other output channels control subsequent PWM outputs. The polarity of the PWM output will change depending on whether the rising edge is programmed to precede or follow the falling edge.

Improved Features

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

Display Image block

The Display Image block provides two new options: one that allows only the image to be displayed, with no tick marks or labels, and to another to resize the figure window to the original size of the image.

The performance of the Display Image block has also been substantially improved.

FIFO Read

The FIFO Read block now supports variable-size signals.

FIFO Write

The FIFO Write block now supports variable-size signals.

Log Message block

The Log Message block now supports variable-size signals for string and variable dimension format specifiers.

Print block

The Print block now supports variable-size signals for string and variable dimension format specifiers.

Stream Client block

The Stream Client block now supports sending and receiving variable-size signals. To receive variable-size signals, it must receive the current signal dimensions from the peer, along with the signal value. When sending data, it is also capable of sending the current signal dimensions to the peer.

Stream Formatted Write block

The Stream Formatted Write block now supports variable-size signals for string and variable dimension format specifiers.

Stream Print block

The Stream Print block now supports variable-size signals for string and variable dimension format specifiers.

Stream Read block

The Stream Read block now supports variable-size signals at its output. In this case, it must receive the current signal dimensions from the peer, along with the signal value. See the variable-size signal enhancements to the Stream Write for details.

Stream Receive block

The Stream Receive block now supports variable-size signals at its output. In this case, it must receive the current signal dimensions from the peer, along with the signal value. See the variable-size signal enhancements to the Stream Send for details.

Stream Send block

The Stream Send block now supports variable-size signals at its input. In this case, it uses the current dimensions of the signal to determine the number of elements to transmit. The block also provides an option to send those signal dimensions along with the signal value.

Stream Server block

The Stream Server block now supports sending and receiving variable-size signals. To receive variable-size signals, it must receive the current signal dimensions from the peer, along with the signal value. When sending data, it is also capable of sending the current signal dimensions to the peer.

Stream Write block

The Stream Write block now supports variable-size signals at its input. In this case, it uses the current dimensions of the signal to determine the number of elements to transmit. The block also provides an option to send those signal dimensions along with the signal value.

String Accumulate block

The String Accumulate block now supports variable-size signals. The input and output strings may be variable-size.

String Constant block

The String Constant block now supports variable-size signals. The output string may be configured as a variable-size output signal.

String Concatenate block

The String Concatenate block now supports variable-size signals. The input strings and output string may be variable-size.

The String Concatenate block can now automatically compute the maximum string length of its output by specifying a maximum string length of zero.

String Error block

The String Error block now supports variable-size signals. The output string may be variable-size.

String Print block

The String Print block now supports variable-size signals for string or variable dimension format specifiers. The output string may also be variable-size.

String Scan block

The String Scan block now supports a variable-size signal for an input string. A bug has also been fixed which prevented it from handling non-whitespace characters correctly.

String Select block

The String Select block now supports variable-size signals. The output string may be variable-size.

The String Select block can now automatically compute the maximum string length of its output by specifying a maximum string length of zero.

New Demonstrations

The QUARC demonstrations added in QUARC 2.4 are listed below.

Serial Demonstrations

QUARC Serial Interfacing Binary Demo

The QUARC Serial Interfacing Binary Demo example shows how to send and receive binary data over a serial port.

QUARC Serial Interfacing Text Demo

The QUARC Serial Interfacing Text Demo example shows how to send and receive formatted text over a serial port. (The original Serial Interfacing Demo was renamed to make the purpose of the demonstration clearer).

Speech Demonstrations

QUARC Host Speech Recognition Voice Commands Demo

The QUARC Host Speech Recognition Voice Commands Demo example uses the Host Speech Recognition block to recognize spoken voice commands that might be used to drive a mobile robot.

QUARC Host Speech Recognition Kuka Robot Demo

The QUARC Host Speech Recognition Kuka Robot Demo example uses the Host Speech Recognition block to control a Kuka robot animation. It demonstrates the block's ability to recognize arbitrary spoken numbers.

QUARC Host Speech Synthesis Animation Demo

The QUARC Host Speech Synthesis Animation Demo example illustrates a simple facial animation using the viseme output of the Host Speech Synthesis block to generate speech. It animates a mouth in coordination with the words being spoken.

QUARC Host Speech Synthesis Event-Driven Demo

The QUARC Host Speech Synthesis Event-Driven Demo example illustrates use of the Host Speech Synthesis block to generate speech in response to events. It speaks every time a Manual Switch is moved and tells the user the new position of the switch as well as the simulation time at which the switch was moved.

QUARC Host Speech Synthesis State-Driven Demo

The QUARC Host Speech Synthesis State-Driven Demo example illustrates use of the Host Speech Synthesis block to generate speech in response to state changes in a state machine. It reads the name of the current state whenever the state changes.

Variable-Size Signal Demonstrations

QUARC Basic Communications variable-size signals Demo

The QUARC Basic Communications variable-size signals Demo example illustrates the transmission and reception of variable-size signals using the Basic Communications blocks in QUARC. This functionality allows the amount of data sent or received by a block to vary dynamically.

QUARC Intermediate Communications variable-size signals Demo

The QUARC Intermediate Communications variable-size signals Demo example illustrates the transmission and reception of variable-size signals using the Intermediate Communications blocks in QUARC. This functionality allows the amount of data sent or received by a block to vary dynamically.

QUARC Advanced Communications variable-size signals Demo - Blocking Mode

The QUARC Advanced Communications variable-size signals Demo - Blocking Mode example illustrates the transmission and reception of variable-size signals using the Advanced Communications blocks in QUARC. This functionality allows the amount of data sent or received by a block to vary dynamically. The ability of the FIFO blocks to handle variable-size signals is also demonstrated.

New Blocks

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

Host Blocks

Host Speech Recognition

The Host Speech Recognition block recognizes spoken commands on the host and outputs an identifier associated with the command. It can also handle numbers, characters and general dictation. The speech recognition is done on the host but like all Host blocks can work with remote targets, like the gumstix, as well.

Host Speech Synthesis

The Host Speech Synthesis block synthesizes speech based on a formatted text string. It operates much like the C printf functions but speaks the resulting text. It can also notify the model of events that allow it to coordinate visualizations or control with the speech, including detection of phoneme, word and sentence boundaries as well as bookmarks and visemes. Visemes are particularly useful for coordinating speech with facial animations or robotics.

String Blocks

String Subset

The String Subset block extracts a subset of characters from a string. It is useful in conjunction with the Host Speech Synthesis block for extracting the word or sentence currently being spoken.

Discrete Blocks

Stall Monitor

The Stall Monitor monitors whether a device has stalled. It is typically used to protect a device from overheating.

New Functions

New MATLAB functions have been added to the QUARC MATLAB functions in QUARC 2.4. The new functions are listed below.

Miscellaneous Functions

A new miscellaneous function allows formatted text to be spoken using synthesized speech.

stream_set_byte_order

The new stream_set_byte_order MATLAB function may be used to configure the byte order used by a communications stream for sending and receiving multi-byte data types. In many cases, it is more convenient than the stream_set_swap_bytes function.

qc_speak

The new qc_speak function speaks the given formatted text. It is similar to the C printf function except that it speaks the text instead of printing it.

Bug Fixes

Some of the bug fixes in QUARC 2.4 are enumerated below. This list is not complete. Only some of the highlights are listed below.

Q8-USB Series Drivers

Fixed setting of the most-significant byte of the 24-bit setpoint programmed at watchdog expiration when using the closed-loop control features of the Q8-USB series cards. The analog output range settings are now taken into account as well when setting the watchdog expiration states for the analog outputs.

QPIDe Driver

Fixed corruption of analog input measurements for the QPIDe card when analog inputs, encoder index positions and full quadrature encoder velocities were read simultaneously.

QPID-Series Drivers

Fixed memory corruption in hil_write_buffer functions for QPID-series drivers. Also fixed handling of other output channels.

Q8-Series and QPID-Series Drivers

Fixed invalid task timing when samples_in_buffer = 1 for a HIL task when using the Q8-PCI-series and QPID-series cards. This bug fix affected the HIL Timebase blocks in Simulink and the hil_task functions in MATLAB, Java, C and .NET.

Serial Protocol

Fixed bug in serial protocol driver in which the serial port would fail to open or would open with incorrect options, if specific options were not specified on the serial URI. This bug only affected the client-side blocks and functions, like the Stream Client, Stream Call and Stream Connect blocks. This bug fix may resolve serial communications issues on all targets in which the serial port failed to open.

 

navigation bar