конвертация int в char для передачи по MQTT

ZhenyaRUS39
Offline
Зарегистрирован: 08.10.2015

​</span>
..
int a
a = analogRead (pin);
if (b == HIGH ) 
{
       client.publish("/test", a);
  }
...
ошибка "converting to 'String' from initializer list would use explicit constructor 'String::String(int, unsigned char)'"
 
Добрый день.

Ребят, нужна Ваша помощь:

Подскажите, как снять показания с сенсора и отправить данные полученные в int через mqtt?

Я так понимаю, что надо конвертировать значения int в char?

Но в интернете я так и не нашёл, как это просто сделать, везде какие-то громоздкие костыли через кучи переменных, неужели нет какой-то библиотеки, способа, которая бы упростила это? Может у кого есть какой-то пример понятный или что-то иное? Конвертировать полученные из mqtt значения в int проблемы не составило, а вот наоборот...

Заранее, спасибо.

про передачу float я вообще молчу...

Schwarz78
Offline
Зарегистрирован: 19.01.2019

ZhenyaRUS39 пишет:

ошибка "converting to 'String' from initializer list would use explicit constructor 'String::String(int, unsigned char)'"
 

Вам параметры конструктора ни о чём не говорят? Намекаю, вы вызываете с параметрами (unsigned char*, int).

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

Schwarz78 пишет:
параметры конструктора ни о чём не говорят?
У них рота нету :(

b707
Offline
Зарегистрирован: 26.05.2017

ZhenyaRUS39 пишет:

Я так понимаю, что надо конвертировать значения int в char?

Но в интернете я так и не нашёл, как это просто сделать, везде какие-то громоздкие костыли через кучи переменных, неужели нет какой-то библиотеки, способа, которая бы упростила это?



про передачу float я вообще молчу...

что там упрощать-то? куда уж проще - прсто печатаешь в порт и все... хоть целое, хоть флоат...

Schwarz78
Offline
Зарегистрирован: 19.01.2019

ZhenyaRUS39 пишет:

Я так понимаю, что надо конвертировать значения int в char? 

Это проще простого, мало того, есть несколько способов.

Можно пойти простым путём, и написать:

int = char;

можно сложнее:

#define int char

можно ещё сложнее:

typedef int char;

Компилятор может ругаться сколько угодно, он наверняка Кернигана не читал)

 

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

Schwarz78 пишет:

можно ещё сложнее:

typedef int char;

Вот с этого места поподробнее, пожалуйста. Так точно можно?

Schwarz78
Offline
Зарегистрирован: 19.01.2019

А предыдущие параграфы вас не смутили? Так точно нельзя, за исключением второго случая.

#define true false

Schwarz78
Offline
Зарегистрирован: 19.01.2019

Встроенные типы переопределять нельзя в Си.

Schwarz78
Offline
Зарегистрирован: 19.01.2019

Цитата:

Вот с этого места поподробнее, пожалуйста. Так точно можно?

Кто Кернигана не читал - вполне можно. Вы - читали, вам - нельзя. Dixi

Schwarz78
Offline
Зарегистрирован: 19.01.2019

Сильно пьян я, подушка хотела чтоб рядом. Слова вижу ваши. Красиво. Бьёрн мне привиделся, стали с ним рядом. Мне говорит он... """"Товарищь очнитесь!!! Вы заснули на партсобрании!!!!""""""

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

Schwarz78 пишет:

Кто Кернигана не читал - вполне можно. Вы - читали, вам - нельзя. Dixi

И тут дискриминация :(

Schwarz78
Offline
Зарегистрирован: 19.01.2019

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

И тут дискриминация :(

Калейдоскоп, Евгений, калейдоскоп.