final TDataType dout = link.dOutput;
long time = link.getLastTimeStamp();
//read data for the first time
cbk.onEvent(new EventData<Object>(getDataObject(dout), time));
//attach event listener
int rc = link.attach(TMode.CM_DATACHANGE, new TCallback() {
@Override
public void callback(int LinkIndex, int LinkStatus) {
if (TErrorList.isLinkSuccess(LinkStatus)) {
long time = link.getLastTimeStamp();
cbk.onEvent(new EventData<Object>(getDataObject(dout), time));