Skip to content

OpenDeveloper Tech Notes

Block List Empty when Tank is selected

TN0977

Product: TTankX, OpenEx, OpenDeveloper
Version: < 2.24
Date Added: 2016-08-02

Issue

When a Legacy tank is selected in a Tank Window, the BlockSelect window remains empty, making navigation and data extraction impossible. This may be caused by misidentified tank paths or tank type.

Solution

Upgrade to the latest version of OpenEx.

Can't read epoc timestamps from long recordings

TN0976

Product: TTankX, OpenEx, OpenDeveloper
Version: < 2.24
Date Added: 2016-08-02

Issue

In recordings with a duration of more than a day, epoc timestamps beyond about 24 hours can't be read in OpenScope or using GetEpocsV.

Solution

Upgrade to the latest version of OpenEx or Synapse.

SetFilter sometimes doesn't persist

TN0972

Product: OpenDeveloper
Version: All
Date Added: 2016-08-02

Issue

If you call ResetFilters followed by a SetFilter, the SetFilter sometimes doesn't persist.

Workaround

Adding a pause after the ResetFilters makes this work consistently.

Solution

Use TDTbin2mat and TDTfilter from the TDT Matlab SDK to extract and filter data: SDK webpage

TDevAccX loses connection with MATLAB 2015 and above

TN0961

Product: OpenDeveloper
Version: All
Date Added: 2016-01-29

Issue

When using MATLAB 2015 and above, TDevAccX loses connection to Workbench server sporadically.

Workaround

Downgrade to 2014 or earlier version of Matlab.

Solution

Upgrade to the Synapse recording platform, which doesn't rely on ActiveX controls to dynamically interact with the hardware during a recording.

Using OpenEx clients across a network with Windows 7

TN0954

Product: OpenEx, OpenDeveloper, OpenController, OpenScope
Version: All
Date Added: 2015-04-28

Issue

Security settings must be modified on both the server and client computers to allow simultaneous access to a Workbench server running an OpenEx project from more than one computer.

Solution

Before software components distributed across networked computers can communicate with each other, several DCOM security settings must be modified on the server computer. The steps below ensure a client computer can access data from a registered new or legacy format tank located on a server computer.

In this example, the computer connected to the TDT hardware is named TDTServer. The computer that will run OpenController or TDevAccX remotely has a user account client1 with password password1.

Server Computer

Create a user account on the server computer:

  1. From the Control Panel, double-click Administrative Tools and then double-click Computer Management. If necessary, expand System Tools in the left panel and then expand Local Users and Groups.
  2. Right-click Users and select New User from the shortcut menu.

    The account user name and password MUST match the client computer's user name and password.

  3. In the New User dialog box, type the user name (client1) and password (password1) in the corresponding fields.

    Clear the User must change password at next logon check box and then select the User cannot change password and Password never expires check boxes.

  4. Click Create and then click Close.

This account must be an Administrator. To grant administrator privileges you must add that user to the Administrators group.

Add the user to the Administrators group:

  1. In the Computer Management window, under System Tools and then Local Users and Groups, click **Groups **in the left panel.

  2. In the window on the right, right-click the Administrators group and select Add to Group on the shortcut menu.

    The Administrators Properties window will open.

  3. Click the Add button. The Select Users, Computers, Service Accounts, or Groups window will open.

  4. Enter the user name in the Enter the object names to select field and click the Check Names button.

    Note

    If the user is not found, you may need to browse for a different location, using the Locations button.

    If the computer is on a domain, this step will have to be performed for both the local account and the network account.

    To change between the local machine and the network, click Locations and select either the machine or the network and click OK to return to the previous window.

  5. In the Select Users, Computers, Service Accounts, or Groups window Verify the spelling, and click OK.

  6. Close the **Computer Management **window.

  7. The Control Panel and Administrative Tools windows should still be open (if not, reopen now). Double-click **Component Services**in the panel on the left.

  8. Expand Component Services, expand Computers, right-click My Computer, and click Properties.

  9. In the My Computer Properties window, click the COM Security tab.

  10. Under Access Permissions, click the Edit Default button.

  11. Under Access Permissions in the My Computer Properties window, click the Add button. The Select Users, Computers, or Groups window is displayed.

  12. In the Enter the object names to select field, type client1.

  13. Click the Check Names button.

    Note

    If the user is not found, you may need to browse for a different location, using the Locations button.

  14. Verify spelling, then click OK.

  15. In the Access Permissions window, ensure the names SYSTEM, INTERACTIVE, and client1 are all present and all have Local Access and Remote Access permission.

    If any group names are missing, click Add to enter the group name.

  16. Click OK.

  17. Under Access Permissions in the My Computer Properties window, click the Edit Limits button and then click the Add button.

  18. In the Enter the object names to select field, type client1. Click the Check Names button, verify spelling, then click OK.

  19. In the Access Permission window, ensure the group names ANONYMOUS (or ANONYMOUS LOGON), Everyone, and client1 are all present and all have Local Access and Remote Access permission. If any group names are missing, click Add to enter the group name as before.

  20. Click OK. and return to the My Computer Properties window, COM Security tab.

  21. Repeat steps 10-20 under the Launch and Activation Permissions options.

Turn off the windows firewall:

  1. From the Control Panel, open Windows Firewall, and select the Off radio button.

  2. Click OK.

  3. From the Control Panel, double-click Administrative Tools, and then Component Services. Expand Component Services, expand Computers, expand My Computer, and double-click DCOM Config (you can click No if you are asked to record a registry value at this point).

  4. Right-click XpMaker and select Properties.

  5. On the Identity tab, ensure that The Interactive User is the account selected to run this application.

  6. Repeat steps 3 and 4 for TTankEng in the DCOM Config.

  7. After you finished making the security setting changes, reboot the server computer.

Client Computer

Test the communication link by pinging the server computer from the client computer and verifying the connection in OpenController.

To ping the server computer from the client computer:

  1. From the Start menu type cmd in the search box.

    Press the Enter key.

  2. A DOS command prompt opens, type ping TDTServer

  3. Verify that the server computer was reached and responded to the ping.

Add a registry entry with the user name and password of the client computer:

  1. From the Start menu type regedit in the search box, and press the Enter key. If a prompt for confirmation is display, click Yes.

  2. In the Registry Editor window, expand HKEY_LOCAL_MACHINE, SOFTWARE, Wow6432Node, TDT, and then TTank.

    Note

    For Windows 7 32-bit systems, expand HKEY_LOCAL_MACHINE, SOFTWARE, TDT, and then TTank.

  3. Right-click the EnumServers folder and select New String Value.

  4. Type the server name (TDTServer) as the Value Name and press Enter.

  5. Right-click the Value name and click Modify. Add the server name, user name and password for Value Data in the following form:

    TDTServer client1 * password1

    Important

    This is case sensitive and must include the asterisk and spaces

    After the entry is added, the registry should look like the example below:

    While Workbench is running on the server computer, test communication from the client in OpenController.

  6. Launch OpenController.

  7. In the Edit menu, click Window Property. The Setup Default Properties dialog will open.

  8. In the Default Server Name box, click the "..." browse button to view available servers.

    The server name that was entered in the registry is now available.

  9. Click TDTServer to highlight it, then right-click TDTServer, and click Test Connection on the shortcut menu.

  10. If the connection was successful, the following message dialog will be displayed:

  11. Click OK.

  12. Double-click TDTServer to select it as the default server for Controller.

  13. Click OK.

    You should now have access to the Workbench server running the TDT equipment just like you would if you were running Controller locally on that machine.

  14. On the client computer, launch OpenController.

  15. Add a ValueWatch control.

  16. Double-click the ValueWatch control and click the "..." browse button for the Source Target. The Select Target dialog will launch and display available targets as shown below. If this dialog is empty, or if you get an Access Denied error, try turning off User Account Control (UAC) on both machines, reboot and test again.

  17. If you are simultaneously accessing tank data while Workbench is recording, test tank communication from the client in OpenScope.

    1. Launch OpenScope.

    2. In the File menu, click Data Source to open the Select Tank dialog.

    3. Click the Server button to open the Select Server dialog.

    4. Repeat steps 8-11 to test communication and select the remote server.

TTankInterfaces doesn't display correctly in Matlab R2013b

TN0928

Product: OpenDeveloper
Version: All
Date Added: 2014-01-27

Issue

GUIs created through Matlab's GUIDE program do not display graphical ActiveX objects correctly in Matlab R2013b. This includes the TTankInterfaces example that installs with our OpenDeveloper and TTankMin packages. The resulting Matlab figure is always blank.

Solution

Use the TTankInterfaces example files found at

TTankInterfaces improperly opens legacy tanks

TN0914

Product: OpenEx, OpenDeveloper
Version: 2.16
Date Added: 2013-01-17

Issue

When a new legacy tank is selected in TTankInterfaces, the tank name has a '.tbk' appended to it. When you try to access that tank, it fails saying it couldn't find it.

Solution

Upgrade to the latest version of OpenEx.

Events read from the tank are missing if there is a gap in the data

TN0909

Product: OpenSorter, OpenExplorer, OpenDeveloper, OpenBrowser, OpenBridge
Version: All
Date Added: 2012-10-17

Issue

In order to save time, the TTank server will stop searching for data that matches the requested criteria if there are no matches in the last 1 million events. If the data is sparse and there is a large gap, the data after the gap might not be extracted.

Solution

Note: This solution is only valid in v2.16 and above.

To override the search limiting feature and force the tank to search the entire block for data on each channel, you must manually enter a registry key:

  1. Run the Registry Editor (regedit.exe).

  2. Browse to **HKEY_LOCAL_MACHINE\SOFTWARE\TDT\TTank**

    Note

    For 64-bit machines, the registry path is HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\TDT\TTank

  3. Right-click the right pane, point to New and click DWORD (32-bit) Value on the shortcut menu.

  4. Name the new entry SEARCHLIMIT.

  5. Right-click SEARCHLIMIT and click Modify on the shortcut menu.

  6. Enter a Value data of 1.

  7. Click OK.

  8. The TTank server will now search until the end of the block for events instead of performing a quick search.

To restore default behavior:

  1. Use the Registry Editor to browse to the SEARCHLIMIT DWORD (32-bit) Value you created and delete the entry or set to 0.
ReadsWavesV drops samples

TN0899

Product: OpenDeveloper
Version: 2.14
Date Added: 2012-06-07

Issue

ReadWavesV drops a sample at regular intervals. For a 24414.0625 Hz stream (2048 points per event) it drops one sample every 8192 points, meaning it returns 0 for that point regardless of what the value is.

Solution

Upgrade to the latest version of OpenEx or TTankMin or use the TDT Matlab SDK.

TTankInterfaces not compatible with 64-bit Matlab

TN0845

Product: OpenDeveloper
Version: < 2.13
Date Added: 2009-03-03

Issue

TTankInterfaces does NOT support 64-bit Matlab. Attempting to access TTankInterfaces through 64-bit Matlab results in the following error:

"??? Input PROGID does not represent an Activex control. If this PROGID used to work before, please check vendor's documentation for equivalent activex control progid."

Solution

Fixed in v 2.14. Upgrade to latest version of OpenDeveloper.

GetDeviceRCO method in OpenDeveloper returns a null string

TN0841

Product: OpenDeveloper
Version: All
Date Added: 2008-12-01

Issue

In OpenDeveloper, when using the GetDeviceRCO method in Matlab, VB, or VC++ the method returns a null string regardless of the circuit loaded.

Workaround

The Workbench application shows which circuit is currently assigned to hardware. The circuit filename as well as its path is shown in the workbench RCO Circuit File area.

Solution

Upgrade to the latest version of OpenEx and OpenDeveloper. This issue was resolved in v2.16.

Using the Gigabit interface with 32-Bit versions of Windows Vista or Windows 7

TN0837

Product: TDT Drivers, OpenEx, OpenDeveloper, OpenExplorer, OpenSorter
Version: 70
Date Added: 2008-08-15

Issue

After performing a typical installation of the TDT Drivers, running RPvdsEx results in an error message which states "Error loading component specification file: CmpSpec.txt". Or, if you launch zBUSmon, you will see "NO TDT card Detected."

Workaround

32-bit versions of Windows Vista or Windows 7 can be used with some adjustments to security settings and program compatibility settings. This procedure has proved successful for running OpenEx with a Gigabit interface.

Configuring 32-bit versions of Windows Vista or Windows 7 for TDT software installation

  1. First, you must be using an Administrator account.

    Turn off the User Account Control (UAC) for the account that will be used to install the applications.

    The option to turn this on or off is seen when viewing the details of your user account.

  2. Download the software installation packages from the web from here: V70 software installation packages Contact TDT to request passwords for applications you have purchased.

  3. Edit the properties of the *.EXE installation files. Under the Compatibility tab, click the Run this program in compatibility mode for: checkbox and choose Windows XP (Service Pack 2) in the dropdown.

  4. Run the install packages as normal. Start with the TDT Drivers and reboot when asked. Install OpenEx before installing OpenDeveloper, OpenExplorer or OpenSorter.

Hardware Installation

Windows will recognize your hardware when it is first installed. When prompted, let windows search for drivers automatically. If you have any further difficulty, contact TDT Support.

Solution

Upgrade to Optibit Interface (FO5 with PO5/PO5e/PO5c/UZ3) and the latest version of TDT software. Current drivers are also compatible with the 64-bit USB Interface.

The number of events returned is less than expected when applying both epoch value filtering and epoch time filtering

TN0836

Product: OpenEx, OpenExplorer, OpenDeveloper
Version: 2.6, 2.8
Date Added: 2008-08-06

Issue

This issue is known to occur in OpenExplorer and OpenDeveloper when using epoch value filters as well as an epoch time filter but might occur in other OpenEx clients that access and filter data. The overall time range of events could be limited erroneously, resulting in events returned for only a fraction of the total desired time range.

For example, you have a block of data that includes spike snippets and epochs storing stimulus parameters. You apply value filters to the epoch stimulus events while also applying an epoch time filter to the snippet data before reading back the spike events. Your data is known to have good epoch conditions spanning timestamps from 0 to N seconds and spike events timestamped in the range from 0 to N seconds. After applying both epoch value and time filters, the number of events returned reduces drastically and the query appears to miss events that should be returned, with maximum timestamps of the spike events being much less than N seconds.

Solution

Upgrade to OpenEx version 2.10 or later.

Writing console applications with ActiveX or OpenDeveloper controls

TN0830

Product: ActiveX, OpenDeveloper
Version: > 66
Date Added: 2008-05-13

Issue

Console-based ("formless") applications written in C++ or Python (console driven and no user interface) are not compatible with previous versions of ActiveX and OpenDeveloper controls. Methods called on an instantiated ActiveX or OpenDeveloper control fail to work.

Solution

The latest versions of ActiveX and OpenDeveloper controls provide support for formless applications. Update to the latest version of ActiveX or OpenDeveloper.

GetGlobalStringV returns erroneous values when WaveSFEvent is passed

TN0274

Product: OpenDeveloper
Version: < 68
Date Added: 2008-01-25

Issue

When calling the GetGlobalStringV method, assigning a four-character string (such as an event name) to the WaveSFEvent global parameter causes erroneous values to be returned along with the assigned string.

Workaround

Instead of assigning the event name to WaveSFEvent use the event code. To do this, use the StringToEvCode and SetGlobalV methods. For Example:

MyEvent = TTX.StringToEvCode('Snip') ;
TTX.SetGlobalV('WaveSFEvent', MyEvent);

Solution

Update to OpenDeveloper version 68 or greater.

IndexEvent method not implemented

TN0272

Product: OpenDeveloper
Version: All
Date Added: 2008-01-08

Issue

The TTank ActiveX method IndexEvent is not currently supported and will not function as expected.

Sort Codes generated with OpenSorter are not used by the Global parameter SortCode or SortCode arguments

TN0240

Product: OpenDeveloper
Version: <= 2.8
Date Added: 2007-02-19

Issue

The Global parameter SortCode, or argument SortCode for methods such as ReadEvents and ReadEventsV, cannot be used to define or condition the sort code of snippet events based on SortId results generated in OpenSorter. Even after SetUseSortName is called, the TTank server will use the default set of sort codes originally saved to the tank.

For example, the following Matlab code fails to cache Snip events with sort code 1, from the OpenSorter generated sort set "Sort1" and uses the default "TankSort" sort set instead:

SetSort = TT.SetUseSortName('Sort1')
SCode = 1;
nEvents = TT.ReadEventsV(10000,'Snip',1,SCode,0.0,0.0,'All');

Workaround

To use the alternate sort sets generated with OpenSorter, use the command SetFilterWithDescEx to set the sort code condition you want. Then use commands like ReadEventsV with the SortCode argument as 0, and the Options argument as 'FILTERED'. The Matlab code below will work to read Snip events of channel = 1and sort code = 1 from the sort set saved as "Sort1".

SetSort1 = TT.SetUseSortName('Sort1');
TT.SetFilterWithDescEx('sort=1');
AllSort1 = TT.ReadEventsV(10000,'Snip',1,0,0.0,0.0,'FILTERED');

Solution

Upgrade to the latest version of OpenDeveloper or use TDTbin2mat from the Matlab SDK to extract sort code information. Note that a 0 in ReadEventsV will always return all sort codes, so you will still have to use the Workaround if you would like to extract ONLY events with SortCode = 0.

Server Busy error with large blocks in OpenEx 2.0

TN0232

Product: OpenEx, OpenExplorer, OpenDeveloper
Version: 2.0
Date Added: 2007-01-07

Issue

"Server Busy" error occurs when accessing large blocks in OpenScope or other TDT applications. The *.tdx tank file will grow each time the block is accessed by OpenScope or other TDT applications. This is especially problematic with blocks that have a lot of epoc events.

Solution

Upgrade to latest version of OpenEx.

Using an OpenEx client across a network with Windows XP

TN0231

Product: OpenEx, OpenDeveloper, OpenScope, OpenController
Version: All
Date Added: 2006-12-20 (updated 2011-09-13)

Issue

Security settings must be modified on both the server and client computers to allow simultaneous access to a Workbench server running an OpenEx project from more than one computer.

Solution

Before software components distributed across networked computers can communicate with each other, several DCOM security settings must be modified on the server computer. The steps below ensure a client computer can access data from a registered new or legacy format tank located on a server computer.

In this example, the computer connected to the TDT hardware is named TDTServer. The computer that will run OpenControlleror TDevAccX remotely has a user account client1 with password password1.

Server Computer

Ensure that simple file sharing is disabled:

  1. Open a My Computer window.

  2. On the Tools menu, click Folder Options. Click the View tab.

  3. Under Advanced Settings, scroll down, and clear the Use simple file sharing (Recommended) check box.

  4. Click OK.

Create a user account on the server computer:

  1. From the Control Panel, double-click Administrative Tools, and then Computer Management.

  2. Expand System Tools, and then Local Users and Groups.

    Right-click Users and select New User from the shortcut menu.

  3. The account user name and password must match the client computer’s user name and password.

    Type the user name (client1) and password (password1) in the corresponding fields.

  4. Clear the User must change password at next logon check box, and select the User cannot change password and Password never expires check boxes.

  5. Click Create and then click Close.

This account can be a limited user account.

Give the user Local and Remote access:

  1. From the Control Panel, double-click Administrative Tools and then Component Services.

    Expand Component Services, expand Computers, right-click My Computer and click Properties.

  2. In the My Computer Properties window, click the COM Security tab.

  3. Under Access Permissions, click the Edit Default button and then click the Add button.

    The Select Users, Computers, or Groups window is displayed. In the Enter the object names to select field, type client1. Click the Check Names button, verify spelling, then click OK.

  4. In the Access Permissions window, ensure the names SYSTEM, INTERACTIVE, and client1 are all present and all have Local Access and Remote Access permission.

    If any group names are missing, click Add to enter the group name as before.

    Click OK.

  5. Under Access Permissions in the My Computer Properties window, click the Edit Limits button and then click the Add button.

    1. In the Enter the object names to select field, type client1.

    2. Click the Check Names button, verify spelling, then click OK.

    3. In the Access Permission window, ensure the group names ANONYMOUS (or ANONYMOUS LOGON), Everyone, and client1 are all present and all have Local Access and Remote Access permission. If any group names are missing, click Add to enter the group name as before.

    Click OK.

  6. Under Launch and Activation Permissions in the My Computer Properties window, click the Edit Default button and then click the Add button.

    1. In the Enter the object names to select field, type client1.

    2. Click the Check Names button, verify spelling, then click OK.

    3. In the Launch Permission window, ensure the group names SYSTEM, INTERACTIVE, and client1 are all present and all have Local Launch, Remote Launch, Local Activation, and Remote Activation permission. If any group names are missing, click Add to enter the group name as before.

      Click OK.

  7. Under Launch and Activation Permissions in the My Computer Properties window, click the Edit Limits button and then click the Add button.

    1. In the Enter the object names to select field, type client1.

    2. Click the Check Names button, verify spelling, then click OK

    3. In the Launch Permission window, ensure the group names Administrators, Everyone, and client1 are all present and all have Local Launch, Remote Launch, Local Activation, and Remote Activation permission. If any group names are missing, click Add to enter the group name as before.

      Click OK.

Turn off the windows firewall:

  1. From the Control Panel, open Windows Firewall, and select the Off radio button.

  2. Click OK.

Select The Interactive User account to run the client application:

  1. From the Control Panel, double-click Administrative Tools, and then Component Services.

  2. Expand Component Services, expand Computers, expand My Computer, and double-click DCOM Config (you can click No if you are asked to record a registry value at this point).

  3. Right-click XpMaker and select Properties.

  4. On the Identity tab, ensure that The Interactive User is the account selected to run this application.

  5. If you would like to simultaneously access the tank data file that is recording in OpenEx through TTankX or OpenScope,repeat steps 11 and 12 for TTankEng in the DCOM Config.

  6. After you finished making the security setting changes, reboot the server computer.

Client Computer

Test the communication link by pinging the server computer from the client computer and verifying the connection in OpenController.

To ping the server computer from the client computer:

  1. From the Start menu click Run, type cmd, and click OK.

  2. In the DOS command prompt that opens, type:

    ping TDTServer

  3. Verify that the server computer was reached and responded to the ping.

Add a registry entry with the user name and password of the client computer:

  1. From the Start menu click Run, type regedit, and click OK.

  2. In the Registry Editor window, expand HKEY_LOCAL_MACHINE, SOFTWARE, TDT, and then TTank.

  3. Right-click the EnumServers folder and select New String Value.

  4. Type the server name (TDTServer) as the Value Name and type the user name and password for Value Data in the following form:

    * client1 * password1

    Important

    This is case sensitive and must include the asterisk and spaces

  5. After the entry is added, the registry should look like this example below:

  6. While Workbench is running on the server computer, test communication from the client in OpenController.

  7. Launch OpenController.

  8. In the Edit menu, click Window Property. The Setup Default Properties dialog will open.

  9. In the Default Server Name box, click the "..." browse button to view available servers.

  10. The server name that was entered in the registry is now available.

    Click TDTServer to highlight it, then right-click TDTServer, and click Test Connection on the shortcut menu.

  11. If the connection was successful, the following message dialog will be displayed:

  12. Click OK.

  13. Double-click TDTServer to select it as the default server for Controller.

  14. Click OK.

    You should now have access to the Workbench server running the TDT equipment just like you would if you were runningController locally on that machine.

  15. If you are simultaneously accessing tank data while Workbench is recording, test tank communication from the client in OpenScope.

    1. Launch OpenScope.

    2. In the File menu, click Data Source to open the Select Tank dialog.

    3. Click the Server button to open the Select Server dialog.

    4. Repeat steps 10 - 12 to test communication and select the remote server.

Problems connecting to TTankEngine to access tank data from a network computer

TN0194

Product: OpenEx, OpenExplorer, OpenDeveloper
Version: All
Date Added: 2005-08-25

Issue

Security settings need to be modified on both the server and client computers if the user desires simultaneous access to a data tank from more than one computer. See

Workaround

If it is necessary to access a data tank across a network, you can map the networked PC's hard drive or folder to a 'drive' letter on the local PC. After the drive is mapped and the tank is registered on the local PC, you will be able to access the data as if it were stored on the local PC.

To map network drives on your computer, go to My Computer and select Map Network Drive from the Tools menu. A dialog will help you connect to a shared network folder and assign a drive letter to the connection.

Important

When using OpenDeveloper to initiate a connection to a tank server using the TTankX handle, the ServerName argument for the ConnectServer call should be 'Local'.