如何允许案例运行N次

问题描述 投票:0回答:2

我在SDK上运行一些C ++代码,该代码在发生特定事件时使用switch语句。我正在处理当蓝牙信号的信号强度发生变化时会发生的情况,它将报告新值。我只希望这次报告N次而不是连续报告,但我怎么能实现这一点?

case BLE_GAP_EVT_RSSI_CHANGED:
    sd_ble_gap_rssi_get(p_ble_evt->evt.gap_evt.conn_handle, &RSSI);
    printf("\nRSSI =%d dBm", RSSI);
    break;
c++ switch-statement case
2个回答
1
投票
static int rssi_changed_counter = 0;

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

case BLE_GAP_EVT_RSSI_CHANGED:
    if(rssi_changed_counter < N) {

        // ...

        ++rssi_changed_counter;
    }
    break;

// ...
}

1
投票

这不是关于蓝牙,或信号,或关于使case运行N次。

这是关于在满足某些条件后停用一段代码。

你的条件是你的代码已经运行了N次。

您希望您的代码在第N + 1次(并且可能在此之后)执行不同的操作。

执行此操作的最佳方法取决于我们无法看到的代码。它可以像计数器和if声明一样简单。它可能是函数指针的解绑定。它可能是从某些第三方库中删除事件触发器。这是你的选择。

© www.soinside.com 2019 - 2024. All rights reserved.