Sort Codes generated with OpenSorter are not used by the Global parameter SortCode or SortCode arguments
Tech Note: 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.