Skip to content

Which API functions work and don't work in MATLAB

Zoltan Derzsi edited this page Nov 8, 2017 · 9 revisions

This page is a compilation of what works properly with this toolbox, and which functions are either not implemented, or completely dysfunctional.

Generally

Out of the API, anything should work that doesn't require the use of unions, structure arrays, or nested structures. Simple variable types, such as floats, strings and others should work without issues.
Data handling functions that require pre-allocated memory pointers will not work directly.

API functions

API function name Works? Why?
CombineXfrms() ? Untested, but it should work.
CvtQuatToRotationMatrix() No Only Euler angles are implemented for rigid body tracking.
CvtRotationMatrixToQuat() No Only Euler angles are implemented for rigid body tracking.
DataBufferAbortSpooling() Yes Works.
DataBufferInitializeFile() Yes Works.
DataBufferInitializeMem() No While technically this works, the pointer will not be accessible and will crash Matlab as soon as something else wants to use it.
DataBufferSpoolData() Yes Works.
DataBufferStart() Yes Works.
DataBufferStop () Yes Works.
DataBufferWriteData() Yes Works.
DataGetNextTransforms() No This uses a nested structure. Use DataGetNextTransforms2_as_array() instead.
DataGetLatest3D No Uses a structure array as a return variable. Use DataGetLatest3d_as_array() instead.
DataGetLatestCentroid() No Raw data is not is not accessible directly from the toolbox.
DataGetLatestOdauRaw() ? Untested. Most probably won't work.
DataGetLatestRaw() No Raw data is not is not accessible directly from the toolbox.
DataGetLatestTransforms() No This uses a nested structure. Use DataGetLatestTransforms2_as_array instead.
DataGetLatestTransforms2() No Returns data in a structure array. Use DataGetLatestTransforms2_as_array instead.
DataGetNext3D() No Returns data in a structure array. Use DataGetNext3D_as_array() instead.
DataGetNextCentroid() No Raw data is not is not accessible directly from the toolbox.
DataGetNextOdauRaw() ? Untested.
DataGetNextRaw() No Raw data is not is not accessible directly from the toolbox.
DataGetNextTransforms2() No Returns data in structure arrays. Use DataGetNextTransforms2_as_array() instead.
DataIsReady() Yes Works, but repeatedly calling it can cause communication errors (with API v3.14).
DataReceiveLatest3D() No Returns structure arrays. Use DataReceiveLatest3D_as_array() instead.
DataReceiveLatestCentroid() No Raw data is not is not accessible directly from the toolbox.
DataReceiveLatestOdauRaw() ? Untested.
DataReceiveLatestRaw() No Raw data is not is not accessible directly from the toolbox.
DataReceiveLatestTransforms() No Returns nested structures.
DataReceiveLatestTransforms2() No Returns structure arrays. Use DataReceiveLatestTransforms2_as_array() instead.
DetermineEuler() ? Untested, but should work.
DetermineR() ? Untested, but should work.
FileClose() Yes Works.
FileCloseAll() Yes Works.
FileConvert() Yes Works, but only on a properly initialised system.
FileOpen() ? Untested, but should work.
FileOpenAll() ? Untested, but should work.
FileRead() ? Untested. Most probably won't work.
FileReadAll() ? Untested. Won't work.
FileWrite() ? Untested.
FileWriteAll() ? Untested.
InverseXfrm() ? Untested, but it should work.
nOptotrakAlignSystem() Yes While this works, using optotrak_align_my_system() is recommended.
nOptotrakCalibRigSystem() No Use optotrak_align_my_system() instead.
nOptotrakRegisterSystem() Yes Use optotrak_align_my_system() instead.
OdauGetStatus() ? Untested.
OdauSaveCollectionToFile() ? Untested.
OdauSetAnalogOutputs() ? Untested.
OdauSetDigitalOutputs() ? Untested.
OdauSetTimer() ? Untested.
OdauSetupCollection() ? Untested.
OdauSetupCollectionFromFile() ? Untested, but it should work.
OptotrakLoadAutoScale() ? Untested, but should work.
OptotrakActivateMarkers() Yes Works.
OptotrakChangeCameraFOR() ? Untested, but it should work.
OptotrakConvertCentroidAndStatusTo3D() No Uses structure arrays. Also, raw data is not available in the toolbox.
OptotrakConvertCentroidAndStatusTo6D() No Uses structure arrays. Also, raw data is not available in the toolbox.
OptotrakConvertFullRawTo3D() No Uses structure arrays. Also, raw data is not available in the toolbox.
OptotrakConvertFullRawTo6D() No Uses structure arrays. Also, raw data is not available in the toolbox.
OptotrakConvertRawTo3D() No Uses structure arrays. Also, raw data is not available in the toolbox.
OptotrakConvertTransforms() No Uses structure arrays.
OptotrakDeActivateMarkers() Yes Works.
OptotrakDeviceHandleEnable() ? Untested, but it should work.
OptotrakDeviceHandleFree() ? Untested, but it should work.
OptotrakDeviceHandleGetNumberProperties() ? Untested, but it should work.
OptotrakDeviceHandleGetProperties() ? Untested, most probably won't work.
OptotrakDeviceHandleGetProperty() ? Untested, but it should work.
OptotrakDeviceHandleSetBeeper() ? Untested but it should work.
OptotrakDeviceHandleSetProperties() ? Untested, most probably won't work
OptotrakDeviceHandleSetVisibleLED() ? Untested, but it should work.
OptotrakEnableWireless() ? Untested, but it should work.
OptotrakGetCameraParameterStatus() ? Untested, but it should work.
OptotrakGetDeviceHandles() ? Untested, and most probably won't work.
OptotrakGetErrorString() No Use optotrak_tell_me_what_went_wrong() instead.
OptotrakGetNodeInfo() ? Untested, and most probably won't work.
OptotrakGetNumberDeviceHandles() ? Untested, and it should work.
OptotrakGetProcessingFlags() ? Untested, but it should work.
OptotrakGetStatus() Yes Works. Use optotrak_get_setup_info() instead.
OptotrakGetSubNodeInfo() ? Untested. Should work.
OptotrakLoadCameraParameters() Yes Use optotrak_set_up_system() instead.
OptotrakSaveAutoScale() ? Untested.
OptotrakSaveCollectionToFile() Yes Works.
OptotrakSetCameraParameters() ? Untested. Use optotrak_set_up_system() instead.
OptotrakSetProcessingFlags() ? Untested, but should work.
OptotrakSetStroberPortTable() Yes Works.
OptotrakSetupCollection() Yes Use optotrak_set_up_system() instead.
OptotrakSetupCollectionFromFile() Yes Use optotrak_set_up_system() instead.
OptotrakSplitFullRaw() No Raw data is not available directly in the toolbox.
OptotrakStopCollection() Yes Works.
RequestLatest3D() Yes Works.
RequestLatestCentroid() No Raw data is not available directly in the toolbox.
RequestLatestOdauRaw() ? Untested. Most probably won't work.
RequestLatestRaw() No Raw data is not available directly in the toolbox.
RequestLatestTransforms() Yes Works.
RequestNext3D() Yes Works.
RequestNextCentroid() No Raw data is not available directly in the toolbox.
RequestNextOdauRaw() ? Untested. Most probably won't work.
RequestNextRaw() No Raw data is not available directly in the toolbox.
RequestNextTransforms() Yes Works.
RetrieveSwitchData() ? Untested, but it should work.
RigidBodyAdd() ? Untested.
RigidBodyAddFromDeviceHandle() ? Untested.
RigidBodyAddFromFile() Yes Works.
RigidBodyChangeFOR() ? Untested. Might work.
RigidBodyChangeSettings() ? Untested. Most probably will work.
RigidBodyDelete() Yes Works.
TransformPoint() ? Untested, but it should work.
TransputerDetermineSystemCfg() Yes Works. Use optotrak_startup instead.
TransputerInitializeSystem() Yes Works, but use optotrak_startup instead.
TransputerLoadSystem() Yes Works, but use optotrak_startup instead.
TransputerShutdownSystem() Yes Works, but use optotrak_kill instead.