ALPHA OMEGA Neuro Omega User Manual

ALPHA OMEGA Neuro Omega User Manual

Physiological navigation system for neurosurgery, sdk
Hide thumbs Also See for Neuro Omega:

Advertisement

Quick Links

Physiological Navigation System for
and Neurophysiological Clinical Applications
Neuro Omega SDK User Manual
December, 2014
Neuro Omega™
Neurosurgery
Version 1.3
Refer to Neuro Omega User Manual
ALPHA OMEGA
U.S. Office:
Toll Free 1-877-919-6288
Fax 1-877-471-2055
Europe Office:
Toll Free: 00-800-2-574-2111
Tel +49-7-251-440-6620
Home Office:
Nazareth Industrial Park Building, Mount
Precipice
P.O. Box 2268 Nazareth 1612102, Israel.
Tel. 972-4-6563-327 Fax: 972-4-6574-075
Email:
info@alphaomega-eng.com
Website:
www.alphaomega-eng.com

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the Neuro Omega and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Summary of Contents for ALPHA OMEGA Neuro Omega

  • Page 1 P.O. Box 2268 Nazareth 1612102, Israel. Tel. 972-4-6563-327 Fax: 972-4-6574-075 Email: info@alphaomega-eng.com Website: www.alphaomega-eng.com Neuro Omega™ Physiological Navigation System for Neurosurgery and Neurophysiological Clinical Applications Neuro Omega SDK User Manual Version 1.3 Refer to Neuro Omega User Manual December, 2014...
  • Page 2 “as-is” basis. In no event shall Alpha Omega Engineering Ltd. be liable to anyone for specific, collateral, incidental, or consequential damages in connections with or arising from purchase or use of these materials.
  • Page 3: Table Of Contents

    MATLAB Use Case #2 ..................55 MATLAB Use Case #3 ..................56 Troubleshooting Guidline ................57 MEX Compiler Error ................... 57 Missing Runtime Libraries ................. 58 Supported and Compatible Compilers – Release 2010B ........ 59 Neuro Omega SDK User Manual V1.3 Page 3...
  • Page 4: Overview

    1 Overview The Neuro Omega is a physiological navigation system intended for different neurosurgery and neurophysiological clinical applications, including recording from and stimulating brain motor and sensory neurons to accurately navigate for neurosurgery target localization in treatment of movement disorders and to aid in the placement of depth electrodes.
  • Page 5: Intended Uses

    Common Name: lntraoperative neurophysiological recording and stimulating device  Classification: Class II 1.2 Intended Uses The Neuro Omega System is intended for the following:  Assisting neurosurgeons in the operating room during functional neurosurgery  Recording from and stimulating brain motor and sensory neurons to aid in...
  • Page 6: Warnings

    Do not install any software packages (Matlab, C++, SDK software or other)  on the system unless provided by Alpha Omega Ltd. for the explicit use on the Neuro Omega. Neuro Omega system and Neuro Omega drive should be connected to Alpha ...
  • Page 7: Electromagnetic Conformance

    The Neuro Omega is intended for use in the electromagnetic environment specified in Table 1. The user of the Neuro Omega should assure that it is used in such an environment. Table 1: Guidance and Manufacturer’s Declaration – Electromagnetic Emissions Neuro Omega SDK User Manual V1.3...
  • Page 8 IEC 61000-3-3 The Neuro Omega is intended for use in the electromagnetic environment specified in Table 2. The customer or the user of the Neuro Omega should assure that it is used in such an environment. Table 2: Guidance and Manufacturer’s Declaration – Electromagnetic Immunity...
  • Page 9 If the measured field strength in the location in which the Neuro Omega is used exceeds the applicable RF compliance level above, the Neuro Omega should be observed to verify normal operation. If abnormal performance is observed, additional measures may be necessary, such as re-orienting or relocating the Neuro Omega.
  • Page 10 The Neuro Omega is intended for use in the electromagnetic environment in which radiated RF disturbances are controlled. The customer or the user of the Neuro Omega can help prevent electromagnetic interference by maintaining a minimum distance between portable and mobile RF communications equipment (transmitters) and the Neuro Omega as recommended in Table 3, according to the maximum output power of the communications equipment.
  • Page 11: Software Development Kit Research Capabilities

    2 Software Development Kit Research Capabilities 2.1 Software Development Kit Research Overview Aside from basic stimulation as described in the Neuro Omega Manual there is an additional method for controlling stimulation paradigms and completing data analysis:  Coding: For greater control and complexity, code and run the stimulation paradigms through the MATLAB or C++ tool on an external computer.
  • Page 12 To connect the MATLAB or C++ ethernet connection: Use a Cat6 ethernet cable and connect the external computer to the Neuro Omega (see Figure 1: Neuro Omega Trolley Side View) as follows: On the base of the Main Unit, plug in the ethernet cable to one of...
  • Page 13: Controlling Stimulation Paradigms Through Coding

    Preparing the External Computer This procedure describes how to prepare the external computer in order to use the MATLAB tool and connect to the Neuro Omega system. To prepare the external computer for using MATLAB: Install MATLAB Tool by running the supplied setup file and following the on screen instructions.
  • Page 14 Installation concludes iii. If the compile fails, see Troubleshooting Section 5 Test the installation by doing one of the following:  In the MATLAB command window, type , and then AO_IsConnected press ENTER. Neuro Omega SDK User Manual V1.3 Page 14...
  • Page 15: Matlab Functions And Usage

    AO_DefaultStartConnection Syntax: [Result] = AO_DefaultStartConnection(DspMac) Function: Used to connect MATLAB to Neuro Omega system Result: Function return is an integer, 0 = no function errors, other number indicate function error (see 6) Function parameters: DspMac: String of 6 hex values. This is the mac address of the ...
  • Page 16 Returns 1 if the system is connected, otherwise returns 0 Example: for j=1:100, pause(1); ret=AO_IsConnected; if ret==1 'The System is Connected' break; AO_CloseConnection Syntax: [Result] = AO_CloseConnection() Function: Used to close connection between MATLAB and the Neuro Omega system Result: Neuro Omega SDK User Manual V1.3 Page 16...
  • Page 17 BufferSizemSec = 10000; % set the size of the buffer in mSec AO_AddBufferingChannel(ChannelID, BufferSizemSec)% start gathering data for channel 10256 AO_GetAlignedData Syntax: [Result,pData,DataCapture,TS_FirstSample]= AO_GetAlignedData(ChannelIdArr,ChannelCount) Function: Used to get aligned data for several channels Result: Neuro Omega SDK User Manual V1.3 Page 17...
  • Page 18 The data value is A\D including gain Example: ChannelIdArr=[10000,10001,10002]; ChannelCount=3; [Result,pData,DataCapture,TS_FirstSample] = AO_GetAlignedData(ChannelIdArr,ChannelCount);% get aligned data from channels:10000,10001,10002 save them in the array pData, the alignment is done by time stamp TS_FirstSample Syntax: AO_GetChannelData [Result,pData,DataCapture] = AO_GetChannelData(ChannelId) Function: Neuro Omega SDK User Manual V1.3 Page 18...
  • Page 19 – Future use byte 15-16 First sample byte 17-18 Second sample In order to calculate the number of samples in this channel, do the following: HeaderSize=14bytes HeadrSizeWord=14bytes/2 samplescount=SizeOFtheBlock-HeaderSizeWord = (SizeOFtheBlock-14)/2 Example: [Result,pData,DataCapture]=AO_GetChannelData(10256); Neuro Omega SDK User Manual V1.3 Page 19...
  • Page 20 Knowledge in our stream Format realDataSizeWords: The count of the data copied to the array  data Note: StreamFormat.h file is saved in the include directory Example: realDataSizeWords=zeros(1,1); [res,arraydata,realDataSizeWords]=AO_GetNextBlock(50 000); AO_SendBlock Syntax: [Result] = AO_SendBlock(ArrayData) Function: Neuro Omega SDK User Manual V1.3 Page 20...
  • Page 21 Function Function syntax and example Used to send stream format data to the Neuro Omega system Result: Return is an integer, 0 = no function errors, other number indicate function error (see 6) Function parameters: ArrayData: Contain the data which will be sent to Neuro Omega ...
  • Page 22 Function Function syntax and example Used to set mpx file name saved by Neuro Omega system Result: Function returns an integer, 0 = no function errors, other number Indicate function error (see 6) Function parameters: FileName: Contains the file name.
  • Page 23 %the mask (00000101) value=3; %the value (00000011) Result = AO_SendDOut(mask,value); %set port 11701 %====> The output of the bits on port 11701 will be '0000 0001' Mask=00000101 Value=00000011 Port= 00000001 AO_StartDigitalStimulation Syntax: Neuro Omega SDK User Manual V1.3 Page 23...
  • Page 24 ReturnChannel: The ID of the channel we want to return the  stimulation with(set -1 for Global return) Note: This function should be called before starting stimulation, otherwise stimulation will be done using the parameters defined in the SW GUI Example: Neuro Omega SDK User Manual V1.3 Page 24...
  • Page 25 Note: In order to stop stimulation in all channels use: ChannelNumber= -1 Example: ChannelNumber=10000; AO_StopStimulation(ChannelNumber); AO_LoadWaveToEmbedded Syntax: [Results]=AO_ LoadWaveToEmbedded (pSource, SamplesCount, downSampleFactor, waveName); Function: Used to take an analog wave and load it into the Neuro Omega system Neuro Omega SDK User Manual V1.3 Page 25...
  • Page 26 ReturnChannel: The ID of the channel we want to return the  stimulation with (set -1 for Global return) Example: StimChannel= 10256; waveId= 1; Freq_hZ=10; %the frequncy of the stimulation Duration_sec=30 ;%duration of the stimulation ReturnChannel=-1; Neuro Omega SDK User Manual V1.3 Page 26...
  • Page 27 Syntax: [Results] = AO_ SetChannelSaveState(channelID,stateSave) Function: Used to Check the checkbox in the Neuro Omega Gui in v if the statesave=1 is on or unchecked if the statesave=0 is off Results: Returns an integer, 0 = no function errors, other number indicates...
  • Page 28 Result = AO_SendDigitalData(DigtalChannelNumber,mask,value); %Initialize port 11230 to 0 mask='0x05'; %the mask value=3; %the value Result = AO_SendDigitalData(DigtalChannelNumber,mask,value); %set port 11230 %====> The output of the bits on port 11230 will be '0000 0001' Neuro Omega SDK User Manual V1.3 Page 28...
  • Page 29 Direction = [Result] = AO_SetThreshold( ChannelID , ThresholdValue , Direction ); AO_SendTextEvent Syntax: [Results] = AO_ SendTextEvent (text) Function: Used to send text to the mpx file with the current time stamp Results: Neuro Omega SDK User Manual V1.3 Page 29...
  • Page 30 ChannelCount: number of channels the user want to see  channelsData: a struct that include all the channels with two  fields: name and id Examples: ChannelCount=220; [ Result , channelsData ] = AO_GetAllChannels(ChannelCount ) AO_GetCutOffFC Syntax: Neuro Omega SDK User Manual V1.3 Page 30...
  • Page 31 Returns an integer, 0 = no function errors, other number indicates function error (see 6) Function parameters: channelId: the id of the channel  status: 1 if the save state is true, 0 if the save state is false  Neuro Omega SDK User Manual V1.3 Page 31...
  • Page 32 (see 6) Function parameters: information: struct of information about the channels have 5  fields: name , id , LP frequency, HP frequency and save state Examples: information = AO_ GetChannelsInformation () Neuro Omega SDK User Manual V1.3 Page 32...
  • Page 33: C++ Functions And Usage

    DefaultStartConnection Syntax: int DefaultStartConnection(MAC_ADDR*core_macAdd , AOParseFunction ) ; Function: Used to connect C++ to Neuro Omega system Result: Function return is an integer, 0 = no function errors, other number indicate function error (see 6) Function parameters: DspMac: String of 6 hex values. This is the mac address of the ...
  • Page 34 Help > User Info, as illustrated in below. Figure 5: MAC Addresses Including MATLAB Computer Syntax: isConnected int isConnected(); Function: Checks if C++ is connected to Neuro Omega Result: Returns 1 if the system is connected, otherwise returns 0 Example: while(isConnected()==FALSE){ AOSLEEP_MSEC(1);...
  • Page 35 Function Function syntax and example Used to close connection between C++ and the Neuro Omega system Result: Function returns an integer, 0 = no function errors, other number indicate function error (see 6) Example: Result=CloseConnection(); if (Result==0) printf("\n Connection closed successfully\n");...
  • Page 36 AOSLEEP_MSEC(10000); GetAlignedData( pArray, ArraySize, &actualData, arrChannel, sizearrChannels, TS_Begin); //get aligned data from channels:10000,10001,10002 save them in the array pData, the alignment is done by time stamp TS_Begin printf("\n %d \n" , ActualData); Neuro Omega SDK User Manual V1.3 Page 36...
  • Page 37 13-14 OverFlowCount the over flow of the time stamp – Future use byte 15-16 First sample byte 17-18 Second sample In order to calculate the number of samples in this channel, do the following: HeaderSize=14bytes HeadrSizeWord=14bytes/2 samplescount=SizeOFtheBlock-HeaderSizeWord = (SizeOFtheBlock-14)/2 Neuro Omega SDK User Manual V1.3 Page 37...
  • Page 38 The count of the data copied to the array  data Note: StreamFormat.h file is saved in the include directory Example: int16 * arraydata = new int16[45000]; int sizeOfArrayWords = 45000; int realDataSizeWords = 0; GetNextBlock(arraydata, sizeOfArrayWords, &realDataSizeWords); AO_SendBlock Syntax: Neuro Omega SDK User Manual V1.3 Page 38...
  • Page 39 Function Function syntax and example int SendBlock(void* streamBlock); Function: Used to send stream format data to the Neuro Omega system Result: Return is an integer, 0 = no function errors, other number indicate function error (see 6) Function parameters: streamBlock: Contain the block of data which will be sent to the ...
  • Page 40 StartSave(); //start saving, the file will be saved at 'c:\logging_data\' StopSave Syntax: int StopSave(); Function: Used to stop saving by Neuro Omega system Result: Returns an integer, 0 = no function errors, other number indicate function error (see 6) Neuro Omega SDK User Manual V1.3 Page 40...
  • Page 41 Omega system for the specified StimChannel Resuls: Returns an integer, 0 = no function errors, other number indicate function error (see 6) Function parameters: See below for an illustration of the stimulation parameters. Neuro Omega SDK User Manual V1.3 Page 41...
  • Page 42 SW GUI Example: StimChannel=10000;%the channel we want to start stimualtion in FirstPhaseDelay_mS=1.1; FirstPhaseAmpl_mA=-3.5; FirstPhaseWidth_mS=0.5; SecondPhaseDelay_mS=1.5; SecondPhaseAmpl_mA=1.5; SecondPhaseWidth_mS=0.2; Freq_hZ=10; Duration_sec=30; ReturnChannel=10001; StartDigitalStimulation(StimChannel,FirstPhaseDelay_ mS,FirstPhaseAmpl_mA,FirstPhaseWidth_mS,SecondPhaseD elay_mS,SecondPhaseAmpl_mA,SecondPhaseWidth_mS,Freq_ hZ,Duration_sec,ReturnChannel); Neuro Omega SDK User Manual V1.3 Page 42...
  • Page 43 Syntax: int LoadWaveToEmbedded(short* pSource,int SamplesCount,int downSampleFactor,char* waveName) Function: Used to take an analog wave and load it into the Neuro Omega system Results: Returns an integer, 0 = no function errors, other number indicates function error (see 6) Function parameters: pSource: array of data ...
  • Page 44 Used to get the last time stamp Results: Returns an integer, 0 = no function errors, other number indicates function error (see 6) Examples: ULONG* plastTS = 0; GetLatestTimeStamp(&plastTS ); printf(" \n %d \n " , plastTS); Neuro Omega SDK User Manual V1.3 Page 44...
  • Page 45 Syntax: int SetChannelSaveState(int channelID,BOOL BState) Function: Used to Check the checkbox in the Neuro Omega Gui in v if the statesave=1 is on or unchecked if the statesave=0 is off Results: Returns an integer, 0 = no function errors, other number indicates...
  • Page 46 = 0; GetDriveDepth( &nDepth ); printf("Depth = %d\n" , nDepth); SetThreshold Syntax: int SetThreshold (int channelID, int ThresholdValue_uVolt, int Direction); Function: Used to set the thresh hold (level line) of a channel Results: Neuro Omega SDK User Manual V1.3 Page 46...
  • Page 47 Returns an integer, 0 = no function errors, other number indicates function error (see 6) Function parameters: qualityType: poor, medium or high  pQualityPercent: the rate of the quality connection in percent  Neuro Omega SDK User Manual V1.3 Page 47...
  • Page 48  Examples: ChannelID = 10256; real32 dFCLP = 0; real32 dFCHP = 0; GetCutOffFC( ChannelID , &dFCLP , &dFCHP ); printf("LP_freq = %d\n" , dFCLP); Neuro Omega SDK User Manual V1.3 Page 48...
  • Page 49 BOOL pSaveState = FALSE; GetChannelSaveState( ChannelId , &pSaveState) printf("status = %d\n" , pSaveState); AO_GetStopMotorTS Syntax: int GetStopMotorTS (uint32* pLastStopTS) Function: Used to get the last time stamp when the motor stopped moving Results: Neuro Omega SDK User Manual V1.3 Page 49...
  • Page 50 Returns an integer, 0 = no function errors, other number indicates function error (see 6) Function parameters: pLastStopTS: the last time stamp when the motor stopped  Examples: uint32 pLastStopTS =0; GetStopMotorTS(&pLastStopTS); printf("StopMotorTS = %d\n" , pLastStopTS); Neuro Omega SDK User Manual V1.3 Page 50...
  • Page 51 The channel id does not existed Null parameter The system is already connected Index not found There is no match Sampling rate is not the same Gap in data Wrong value for the Duration parameter Neuro Omega SDK User Manual V1.3 Page 51...
  • Page 52: Technical Specifications

    Min pulse width – 20us stimulation limits Max waveform length – 1000000 samples Max duty cycle – 300Hz – 6000 Hz Arbitrary analog stimulation limitations Macro stimulation output <7mA (macro contacts) <15mA (ECOG, Nerve) Neuro Omega SDK User Manual V1.3 Page 52...
  • Page 53: Use Case Code

    After connecting to the Neuro Omega system, start gathering data for the segmented channel #1. Start sending the command get channel data and every time the level line is crossed send a digital trigger. At the end of the use the connection to the Neuro Omega system is closed. function...
  • Page 54: Matlab Use Case #2

    4.2 MATLAB Use Case #2 Explanation about this use case: After connecting to the Neuro Omega system, start collecting for the three SPK channels 10256, 10257 and 10258 (Micro SPK channel 1, Micro SPK channel 2 and Micro SPK channel 3). Then start saving the data on mpx file.
  • Page 55: Matlab Use Case #3

    4.3 MATLAB Use Case #3 Explanation about this use case: After connecting to the Neuro Omega system, start generating stimulation trains which are repeated in a burst frequency note: stimulation parameters need to be set according to the AO_StartDigitalStimulation command.
  • Page 56: Mex Compiler Error

    Windows 7 ships with only .NET Framework 3.5. The MEX compilation  requires .NET Framework 4.0 and above. In case the message in Figure 7: MATLAB Compiler Configuration does not appear, there is no compiler installed on the system, do the following: Neuro Omega SDK User Manual V1.3 Page 56...
  • Page 57: Missing Runtime Libraries

    The information took from:  http://warpproject.org/trac/wiki/howto/MEX_Compile In case the EthernetStandAlone.lib is missing from the include file the following message will appear: In case EthernetStandAlone.h is missing from the include file the following message will appear: Neuro Omega SDK User Manual V1.3 Page 57...
  • Page 58: Supported And Compatible Compilers - Release 2010B

    5.3 Supported and Compatible Compilers – Release 2010B Figure 8: Supported Compilers for Windows 32bit (taken from the MathWorks website) Neuro Omega SDK User Manual V1.3 Page 58...
  • Page 59 Figure 9: Supported Compilers for Windows 64bit (taken from the MathWorks website) Neuro Omega SDK User Manual V1.3 Page 59...

Table of Contents