anchor.diff:    end
     else //add to list so we can match later
     begin
  -    linkidList.Add(aTimeStamp, aID);
  +    linkidList.AddOrSetValue(aTimeStamp, aID);
     end;
   end;
   
  
positive.code:   begin
      fieldInfo := aPayload.bb_read_uint32(aCursor);
      case fieldInfo of
      (icehTilerGeometry shl 3) or wtLengthDelimited:
      begin
        geometry := TWDGeometry.Create;
        len := aPayload.bb_read_uint64(aCursor);
        geometry.Decode(aPayload, aCursor, aCursor + Integer(len));
        TMonitor.Enter(scenarios);
        try
        begin
          for scenario in scenarios.Values do
            if scenario is TSesmiScenario then
              (scenario as TSesmiScenario).AddLink(guid, geometry);
        end;
        finally
          TMonitor.Exit(scenarios);
        end;
        TMonitor.Enter(fLinks);
        try
          fLinks.Add(guid, geometry);
        finally
          TMonitor.Exit(fLinks);
        end;
  
      end;
      (icehObjectID shl 3) or wtLengthDelimited:
      begin
        guid := aPayload.bb_read_guid(aCursor);
      end;
      else
        aPayload.bb_read_skip(aCursor, fieldInfo and 7);
      end;
  
negative.code:   fPrivateDataEvent := scenario.project.connection.Subscribe(scenario.project.Connection.privateEventName+'.'+'mobilesensordata', false);
    fPrivateDataEvent.OnEvent.Add(fDataEventHandler);
    // inquire
  //  fDataEvent.signalEvent(
  //    TByteBuffer.bb_tag_string(wdatReturnEventName shr 3, fPrivateDataEvent.eventName)+
  //    TByteBuffer.bb_tag_string(wdatObjectsInquire shr 3, ''));
  end;
  
  destructor TSesmiMobileSensorLayer.Destroy;
  