anchor.diff:          fLastLat := aPayload.bb_read_double(aCursor);
         sensordata_no2:
           begin
  +          no2 := aPayload.bb_read_double(aCursor);
             if ((fScenario.project is TSesmiProject) and (fScenario is TSesmiScenario) and ((fScenario.project as TSesmiProject).ExpertScenarioGUID = (fScenario as TSesmiScenario).fGUID)) or (objectID.ToString = fScenario.ID) then //check if we need to add this point
             begin
  -            no2 := aPayload.bb_read_double(aCursor);
               if (fLastLat<>0) and (fLastLon<>0)
               then AddPoint(objectID, timestamp, fLastLat, fLastLon, sensordata_no2, no2);
               // todo: ignoring values on 0,0 for now
  
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:   end
    else //add to list so we can match later
    begin
      linkidList.AddOrSetValue(aTimeStamp, aID);
    end;
  end;
  
  