Пребразование массива в строку
- Войдите на сайт для отправки комментариев
Пнд, 08/05/2017 - 18:51
Добрый день!
Заморочился одной проблемой, делаю 2 выносных пульта для снятия / постановки на охрану. Необходимо считать ключ iButton и отправить данные по протоколу MQTT.
void iButton(){ byte addr[8]; //ibutton if (ds.search(addr)){ for(int i = 0; i < 8; i++){ Serial.print(addr[i], HEX); } Serial.println(); >>> client.publish("/iButton", String(myStrArray).c_str(), true); ds.reset_search(); } }
В serial код ключа выводиться, но конвертировать данные в пребразовать для отправки не получается. Сохранить и сравнить с другим массивом могу, а тут что то тупик.
Не знаю, что Вы делаете, т.к. код без начала и без конца и нет описаний ключевых переменных. Замечу только, что если myStrArray - это массив char, то Ваша запись String(myStrArray).c_str() - еслть просто несколько извращённая ворма написать просто myStrArray. Ровно тоже самое, только "через Альпы".
ЕвгенийП, спасибо, что откликнулись!
Тут дело даже не во всем скетче, а в граблях которые я себе подложил. Опыта у меня мало, раньше не приходилось конвертировать массив. Не могу понять возможно ли из байтового массива в значении HEX (например: F0 F1 F2 F3 F4 F5 F6) получить строку с этими же значениями. Начинаю подозревать, что это невозможно из-за конвертирования переменных. Уже прихожу к мысли создать из массива по некой формуле число и передвать уже его. Мой колхоз перевода :
В serial получаю:
AlexAsino, зачем Вам вообще строка?
Выводите массив байтов в цикле через Serial.write().
Не могу понять возможно ли из байтового массива в значении HEX (например: F0 F1 F2 F3 F4 F5 F6)
Уверен, что Вам это нахрен не нужно. Там в массиве всё сидит как надо, просто передавайте байт за байтом и не парьтесь. Красивости типа F0 - только для человеческого восприятия, внутри в памяти все едино хоть F0, хоть 240, хоть 0360 - это всё ровно одно и тоже, и чем скорее Вы это поймёте, тем раньше сбросите с ушей огромный пласт лапши, который Вы сами туда нагрузили.
Да, Вы правы! Хотелось сделать красиво, а нужно лишь передать по mqtt значение ключа . А в каком значении будет передано не особо важно, лишь бы для каждого ключа значение было индивидуальным. Что и так уже получено.
Всем спасибо!