API for On-line Data Analysis and Experiment Control
NetCom is an application programming interface (API) that provides an effective interface to Cheetah for on-line interaction with custom user-written programs (NetCom programs). NetCom provides network delivery of standard data records generated by Cheetah for real-time data analysis and experiment control. The data may be distributed across the network to one or more computers, each running multiple analysis programs for a very powerful experiment control environment. Commands may be sent to control Cheetah and it’s hardware interfaces as well as requesting status of most Cheetah parameters.
Programming languages supported by NetCom include: C++/MFC, all Microsoft TM .NET languages (ie, C, C++, C#, VB.NET, Java) and any .NET supported applications such as LabViewTM and MATLAB®.
NetCom programs can generate Event Records to mark significant events during an experiment. These will be logged to the Cheetah Event Record file (.nev). All Event Records processed by Cheetah will be sent to all NetCom programs.
There are two modes for NetCom: a simple single NetCom program connection and a multiple NetCom program connection mode.
Simple Single Connection Mode
This mode provides the easiest method for running a NetCom program because a direct connection is made to Cheetah. This scenario is used when running Spike Sort 3D on-line.
Multiple NetCom programs running through the NetCom Router
This mode provides multiple NetCom programs to receive Cheetah data records and to control Cheetah and Hardware Interfaces. The NetCom Router program is used to manage the multiple NetCom connections.
This mode allows a very complex experiment control and data analysis program to be “broken up” between several NetCom programs with each program handling one aspect of the task. For example, one NetCom program can generate randomized trial types, another controls the specific steps in each trial type, a third performs signal processing and trial scoring, while a fourth segregates and displays data for each trial outcome. The multiple NetCom programs can communicate using Event Records because all event records are “echoed” back out from Cheetah through NetCom. This allows each unique aspect of the task to be written in several simpler NetCom programs, each easier to write, test, debug and enhance.
Ethernet socket functions allows virtual network communications between programs running on the same computer through a service known as the Local Host. Thus, separate computers are not required for NetCom to be used.
The NetCom library and several example programs (including source code) can be found on our website at www.neuralynx.com/research_software and www.neuralynx.com/research_software/netcom