如何使 BLE 服务器仅在状态更改时通知.

How to make BLE Server Notify only when status has changed?

本文关键字:通知 状态 何使 BLE 服务器      更新时间:2023-10-16

我正在使用Arduino IDE在我的esp32上使用ble,并试图使它当有人打开LED时,esp32会通知客户端"ON"或"OFF"。目前使用我的代码,每次循环时都会发送更新,但我只想在引脚 15 的值发生变化时通知。

我想我需要探索一个相同的概念,即每当有事情发生变化时,他们都会想要发送 serial.print。

这是我的相关代码。

if (deviceConnected) {
    if(digitalRead(15)==LOW){
      pCharacteristic->setValue("ON");
    }
    else{
      pCharacteristic->setValue("OFF");
    }
    pCharacteristic->notify();

我找到了这个示例代码,但不确定它是否有帮助或如何将其组合到我的代码中

int old_something;
void loop ()
{
 int something = get_my_data ();
 if (something != old_something)
   Serial.print (something);  // display if it changed
 old_something = something;
 }

通了。现在在这里工作

//Way at the Top
boolean oldState = LOW;
//Down in Loop
 boolean newState = digitalRead(15);
  if (deviceConnected) {
    if (newState != oldState) {
      if (newState == LOW) {
        pCharacteristic->setValue("ON");
      }
      else {
        pCharacteristic->setValue("OFF");
      }
      pCharacteristic->notify();
    };
    oldState = newState;