In the simpleBleCentral project, in simpleBleCentral.c, when simpleBLECentralEventCB() receives the GAP_LINK_ESTABLISHED_EVENT, it doesn't call GATT_DiscPrimaryServiceByUUID() directly, but rather starts a one second timer to delay service discovery. Is this logic and delay really required for discovery to work correctly? It smells like a workaround for some timing issue or race condition.
TIA,
Richard