Как разрешить запуск дела N раз - PullRequest
0 голосов
/ 26 февраля 2019

Я запускаю некоторый код C ++ в SDK, который использует оператор switch для каждого конкретного события.Я работаю над случаем, который возникает, когда изменяется уровень сигнала Bluetooth, и он сообщит новое значение обратно.Я только хочу, чтобы это отчитывалось N раз, а не непрерывно, однако, как я могу достичь этого?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Речь идет не о Bluetooth, или сигналах, ни о case запуске N раз.

Это о деактивации фрагмента кода послекакое-то условие было выполнено.

Ваше условие - ваш код уже был выполнен, N раз.

Вы хотите, чтобы ваш код делал что-то другое на N + 1 th время (и, предположительно, после этого).

Лучший способ сделать это зависит от кода, который мы не видим.Это может быть так же просто, как счетчик и оператор if.Это может быть снятие привязки с указателя на функцию.Это может быть удаление триггера событий из какой-либо сторонней библиотеки.Выбор за вами.

0 голосов
/ 26 февраля 2019
static int rssi_changed_counter = 0;

switch( /* ... */ ) {
// ...

case BLE_GAP_EVT_RSSI_CHANGED:
    if(rssi_changed_counter < N) {

        // ...

        ++rssi_changed_counter;
    }
    break;

// ...
}
...