Sept. 15, 2015

What's New In the 2015 Ring Buffer Library

Contents

What's new

"RingBuffer" is the new name for the BioSemi library that was formerly called "Labview_DLL". The new name was chosen to remove any inference that the library comes from or, is dependent on, the National Instruments "LabVIEW" product.

The most important new feature in RingBuffer library 2015 is support for remote access to the Usb sample stream.

While continuing to support all previous (i.e. Labview_DLL) API calls, the 2015 version of the library has the ability to stream samples from the Usb ring buffer through a Tcp socket to a client program.

Streaming is initiated by a client program and is handled on the server entirely by the library. No participation by the server application itself is required other than to maintain the flow of samples from the Usb interface into the ring buffer.

The impetus for this change was to give tablets and smartphones the ability to tap into acquisition sessions running on Windows, Linux or OSX systems for remote signal monitoring or data analysis.

The Requirement

To be useful four changes were seen as desireable:

The Solution

To implement these items, the following changes were made in the RingBuffer library:

The Result

Two methods were used to test and to illustrate the use of this new feature:

Install

For a first time install on a Windows computer see Install-Windows .

To update an existing Windows installation (e.g. ActiView or other program), replace all previous RingBuffer.dll (or Labview_DLL.dll) library files with the new version. If using an application that requires the Labview_DLL.dll library, copy and rename the RingBuffer.dll file and use that instead. Be careful to use the bit-width library file that matches the application's bit-width.

The Merging with ActiView or Other Existing Program section of Install-Windows describes in more detail how to prepare an existing program for use with the new RingBuffer library.

For a first time install on a Linux computer see Install-Linux.

To update an existing Linux installation (e.g. an ActiView or other program), replace all previous libRingBuffer (or liblabview_dll) and libusb-1.0 library files with the new versions. If using an application that requires the liblabview_dll library, copy and rename the libRingBuffer file and use that instead. Be careful to use bit-width library files that match the application's bit-width. The "file" command can be used to determine a program's bit-width.

The Merging with ActiView or Other Existing Application section of Install-Linux describes in more detail how to prepare an existing program for use with the new RingBuffer library.

For a first time install on an OSX computer see Install-OSX.

To update an existing OSX installation (e.g. an ActiView or other program), replace all previous libRingBuffer (or liblabview_dll), libusb library files and BioSemi-Ringbuffer (or BioSemi-Labview_DLL) framework files with the new versions. If using an application that requires the liblabview_dll library, copy and rename the libRingBuffer file and use that instead. Be careful to use bit-width files that match the application's bit-width. The "file" command can be used to determine a program's bit-width. If you use the OSX ActiView Application itself (not the .vi's) to run, the National Instruments LabVIEW Application Builder must be used to update the Application - individual components cannot be updated.

The Merging with ActiView or Other Existing Application section of Install-OSX describes in more detail how to prepare an existing program for use with the new RingBuffer library.

Try Client/Server

For step-by-step instructions, see Try Client/Server.

Develop a Program

To develop your own client or server program using the RingBuffer library, see RingBufferLibrary-API for a description of the API's available.

To develop a client program without using the RingBuffer library to receive samples (e.g. as a tablet or smartphone App), see RingBufferLibrary-TransferProtocol for a description of the Tcp transfer protocol used.