Официальный сайт компании Arduino по адресу arduino.cc
Сформировать пакет из бинарного кода и кодов ascii
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Втр, 15/12/2015 - 01:02
Доброго времени суток!
Пишу клиент-серверное приложение. По ходу работы клиент должен сформировать сетевой пакет, причем первые 6 байт это бинарный код, а деалее должны идти символы ascii. Пытался делать так:
byte buf[] = { 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 'H' , 'e' , 'l', 'l', 'o' }; if (client.connected()) { client.print(buf); }
но получаю ошибку: call of overloaded 'print(byte [11])' is ambiguous
Что то более ничего в голову не идет, как еще можно собрать строку, что бы ее client.print принял?
получаю ошибку: call of overloaded 'print(byte [11])' is ambiguous
Что то более ничего в голову не идет, как еще можно собрать строку, что бы ее client.print принял?
Строка собрана вполне правильно.
А компилятор, в принципе, жалуется не на то что не может что-то скомпилить, а наоборот - может скомпилить двумя (или более) способами, и не знает какой из них выбрать.
Надо посмотреть, какие варианты функции print описаны в .h-файле, выбрать из них подходящий для этого случая, и помочь компилятору определиться. Скорее всего, надо явно указать тип аргумента. Или явно добавить ещё один "неявный" аргумент.
Сам смотреть не полезу, но наверно как-нибудь так будет:
или
Думаю, второй вариант, т.к. первый, скорее всего, считает признаком конца строки нулевой байт, и поэтому не сможет вывести строку, содержащую нули где-то внутри.
Возможно также, что вместо client.print() следует пользоваться чем-то вроде client.write(). Вам ведь не нужно форматное преобразование первых байтов.
Вот так вот получилось:
Остальные варианты не работают. Всем спасибо!
Возможно также, что вместо client.print() следует пользоваться чем-то вроде client.write().
Даже больше похоже на правду.
print, всё-таки, обычно заточен под вывод именно строк - то есть последовательности печатаемых символов с непечатаемым нулём в конце.
-----
Upd: Вот, почти угадал. :)