Страница 1 из 1

Как в mqtt отправить hex данные?

Добавлено: Чт окт 19, 2023 3:54 pm
workpage
Собственно вопрос в заголовке. Нужно прочитать низкоуровневую железку. Отправить и принять hex данные. Можно пример, как это сделать?

Re: Как в mqtt отправить hex данные?

Добавлено: Вс окт 22, 2023 7:41 am
ZyaK
ЕСПи у меня вот так принимает

Код: Выделить всё

void callback(char* topic, uint8_t* payload, unsigned int length){
  Serial.print("Message arrived ");
  Serial.print(topic);
  Serial.print(" ");
  Serial.println(" ");
  String strTopic = String(topic);
  String strPayload = String((char*)payload);
  for (unsigned int i = 0; i < length; i++) {
  Dannie[1]=(char)payload[0];
  Dannie[2]=(char)payload[1];
  Dannie[3]=(char)payload[2];
  Dannie[4]=(char)payload[3];
  Dannie[5]=(char)payload[4];
  if (length == 1)
  {
    Dannie[2] = Dannie[1];
    Dannie[1] = '0';
    Dannie[3] = '0';
    Dannie[4] = '0';
    Dannie[5] = '0';
    Serial.print("length = 1");
    Serial.println();
  }
  if (length == 2)
  {
    Dannie[3] = Dannie[2];
    Dannie[2] = Dannie[1];
    Dannie[1] = '0';
    Dannie[4] = '0';
    Dannie[5] = '0';
    Serial.print("length = 2");
    Serial.println();
  }
  if (length == 3)
  {
    Dannie[4] = Dannie[3];
    Dannie[3] = Dannie[2];
    Dannie[2] = Dannie[1];
    Dannie[1] = '0';
    Dannie[5] = '0';
    Serial.println("length = 3");
  }
  if (length == 4)
  {
    Dannie[5] = Dannie[4];
    Dannie[4] = Dannie[3];
    Dannie[3] = Dannie[2];
    Dannie[2] = Dannie[1];
    Dannie[1] = '0';
    Serial.println("length = 4");
  }
    Serial.print("Dannie [1] = ");
    Serial.println(Dannie[1]);
    Serial.print("Dannie [2] = ");
    Serial.println(Dannie[2]);
    Serial.print("Dannie [3] = ");
    Serial.println(Dannie[3]);
    Serial.print("Dannie [4] = ");
    Serial.println(Dannie[4]);
    Serial.print("Dannie [5] = ");
    Serial.println(Dannie[5]);
    Serial.println();
    Serial.println();
  }