Нужен совет.

alek2
Offline
Зарегистрирован: 05.07.2016

Здравствуйте. Делаю устройство для управления по MQQTT через ЕSP, за основу взял чужой код, передача на сервер уже работает, а вот в обратную сторону пока не получается. Данные прихадят если вывести переменныеую сh в монитор то видно например /topic/=1 Затем нужно от знака разделителя = отделить название топика и данные, для чего ищется позиция до знака разделителя pos_delim = RecvBufmySerial.indexOf("=") Вывожу в монитор RecvBufmySerial, там пусто, не пойму как в это буфер считываются данные.

[code]
// Получение данных от ESP
void RecvmySerial() {

  char ch;
  String pub_topic="";
  String val="";
  int pos_delim;
  int ret;
  
    while (mySerial.available()) {

      ch = (char)mySerial.read();

      if (ch == '\r') continue;

      if (ch == '\n') {

        // Проверим наличие разделителя в строке
        pos_delim = RecvBufmySerial.indexOf("=");

        // Если разделитель присутствует
        if (pos_delim != -1 ) {
          
          // Выделим свойство и значение
          pub_topic = RecvBufmySerial.substring(0,pos_delim);
          val = RecvBufSerial.substring(pos_delim+1);

[/code]

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Я тоже не пойму, что Вы это нам выложили. Это код? Так он просто не компилируется. не то, что не работает.

alek2
Offline
Зарегистрирован: 05.07.2016

Это часть кода.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Понятно. Тогда разбирайтесь с ним сами.

alek2
Offline
Зарегистрирован: 05.07.2016

ЕвгенийП пишет:

Понятно. Тогда разбирайтесь с ним сами.

Другого ответа с этого форума и не ожидал, спасибо.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Не за что, заходите ещё.

inspiritus
Offline
Зарегистрирован: 17.12.2012

Доктор у мну болит везде. Показывайте. Нет я вам только ухо дам посмотреть а дальше сами догадайтесь :)

Buzzer2010
Buzzer2010 аватар
Offline
Зарегистрирован: 10.03.2016

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Ничего вы не понимаете, просто код очень секретный и стоит кучу денег...