-1

gulin176
Offline
Зарегистрирован: 03.09.2016

имеется функция 

void narodmon() {
  float v = pzem.voltage(ip);
  float i = pzem.current(ip);
  float e = pzem.power(ip);
  float p = pzem.energy(ip);
  // создание TCP-соединения
  WiFiClient client;
  if (!client.connect(host, httpPort))
  {
    return;
  }
  if (pzem.power(ip) == -1 || pzem.energy(ip) == -1 || pzem.voltage(ip) == -1 || pzem.current(ip) == -1)
  {
    return;
  }
  client.print(String("#") + WiFi.macAddress() + " \r\n" +
               "#RSSI#" + WiFi.RSSI() + "#RSSI\r\n" +
               "#V#" + v + "#V\r\n" +
               "#A#" + i + "#A\r\n" +
               "#W#" + e + "#W\r\n" +
               "#Wh#" + p + "#Wh\r\n" +
               "##");
}

иногда датчик посылает -1 и графики становятся не красивые как минимум в строке 12 ввёл защиту от -1 однако она почему то не работает подскажите почему

Araris
Offline
Зарегистрирован: 09.11.2012

А так ? (сравнение float переменной с целым числом - разберитесь с этим на досуге)

void narodmon() {
  float v = pzem.voltage(ip);
  float i = pzem.current(ip);
  float e = pzem.power(ip);
  float p = pzem.energy(ip);
  // создание TCP-соединения
  WiFiClient client;
  if (!client.connect(host, httpPort))
  {
    return;
  }
  if e < 0 || p < 0 || v < 0 || i < 0)
  {
    return;
  }
  client.print(String("#") + WiFi.macAddress() + " \r\n" +
               "#RSSI#" + WiFi.RSSI() + "#RSSI\r\n" +
               "#V#" + v + "#V\r\n" +
               "#A#" + i + "#A\r\n" +
               "#W#" + e + "#W\r\n" +
               "#Wh#" + p + "#Wh\r\n" +
               "##");
}