Is there any actual difference between "Fast Advertising", and "Slow Advertising" - or is it just a way to easily specify two different sets of timing parameters?

The question has been asked before; eg,

But I don't see an answer to that question.

Also, how to specify indefinite advertising; ie, with no timeout?

Various threads have suggested that a timeout of zero should do it:

But I can't see anything in any documentation which actually states that this is so.

Parents
• I don't think it's linked anywhere

I eventually found this - in ble_gap.h:

```/**@brief GAP advertising parameters. */
typedef struct
{
:
:
uint16_t                 duration;                /**< Advertising duration in 10 ms units. When timeout is reached,
an event of type @ref BLE_GAP_EVT_ADV_SET_TERMINATED is raised.
@note The SoftDevice will always complete at least one advertising
event even if the duration is set too low. */
```

The SES 'Find in Project' doesn't work on on that Doxygen cross-reference to BLE_GAP_ADV_TIMEOUT_VALUES, but some raw text searching does eventually get to:

```/**@defgroup BLE_GAP_ADV_TIMEOUT_VALUES GAP Advertising timeout values in 10 ms units
* @{ */
#define BLE_GAP_ADV_TIMEOUT_HIGH_DUTY_MAX     (128)   /**< Maximum high duty advertising time in 10 ms units. Corresponds to 1.28 s. */
#define BLE_GAP_ADV_TIMEOUT_LIMITED_MAX       (18000) /**< Maximum advertising time in 10 ms units corresponding to TGAP(lim_adv_timeout) = 180 s in limited discoverable mode. */
/**@} */
```

• I don't think it's linked anywhere

I eventually found this - in ble_gap.h:

```/**@brief GAP advertising parameters. */
typedef struct
{
:
:
uint16_t                 duration;                /**< Advertising duration in 10 ms units. When timeout is reached,
an event of type @ref BLE_GAP_EVT_ADV_SET_TERMINATED is raised.
@note The SoftDevice will always complete at least one advertising
event even if the duration is set too low. */
```

The SES 'Find in Project' doesn't work on on that Doxygen cross-reference to BLE_GAP_ADV_TIMEOUT_VALUES, but some raw text searching does eventually get to:

```/**@defgroup BLE_GAP_ADV_TIMEOUT_VALUES GAP Advertising timeout values in 10 ms units
* @{ */
#define BLE_GAP_ADV_TIMEOUT_HIGH_DUTY_MAX     (128)   /**< Maximum high duty advertising time in 10 ms units. Corresponds to 1.28 s. */
#define BLE_GAP_ADV_TIMEOUT_LIMITED_MAX       (18000) /**< Maximum advertising time in 10 ms units corresponding to TGAP(lim_adv_timeout) = 180 s in limited discoverable mode. */