startstop[0] = (double)(starttime/1000) + ((double)(starttime%1000)/1000);
startstop[1] = (double)(stoptime/1000) + ((double)(stoptime%1000)/1000);
TDataType npts = new TDataType(npoints);
TDataType din = new TDataType(startstop);
TLink nl = new TLink(srv,key,npts,din,TAccess.CA_READ);
cc = nl.execute(1000,true); // number of points in region
if (cc != 0) return -cc;
TDataType dout = new TDataType(fiArray);
TLink tl = new TLink(srv,key,dout,din,TAccess.CA_READ);
cc = tl.execute(1000,true); // data returned
if (cc != 0) return -cc;
return npoints[0];
}