Официальный сайт компании Arduino по адресу arduino.cc
Ethernet и OLED (uint8_t в String)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вс, 25/03/2018 - 19:21
Совсем не давно начал изучать платформу. Извините зарание за глупый вопрос.
По сути проекта надо вывести всю лан инфу на олед дисплей, в библиотеке EtherCard получить всю эту инфу непроблема, но она хранится в переменной типа uint8_t, дисплей на прямую вывести эту инфу не умеет. Все мои попытки перевести в читаемый вид для дисплея, ничем не увенчались успехом. Прошу вашей помощи и совета. Спасибо.
Чукча не читатель, чукча писатель?
Каждый день кто-нибудь из старожилов форума объясняет новичкам, как нужно оформить тему, чтобы иметь возможность получить ответ по существу.
Неужели так трудно прежде, чем создавать тему, прочесть все посты хотя бы за посление сутки?
Я просмотрел первые 8-10 страниц форума, ничего подходящего, не обнаружил. Поиск тоже искомых результатов не дал, поэтому решил описать свою проблему таким образом, в надежде напомощь)
Вы бы написали какие типы данных нужны дисплею, ну или кусок кода откуда взять данные и куда надо отправить
Вот такой код - Соответсвенно ошибка : call of overloaded 'println(uint8_t [4])' is ambiguous
на 32 строке.
Может вот так пройдет: Serial.println((IPAddress) ether.gwip);
Да в случае с Serial.println это сработало, я там в коде немного забыл исправить (что бы не мучить дисплей выводил строку в порт), а надо на олед дисплей. Такая конструкция не работает
и плюс в этом же скетче выводится и другая информация, тоже в формате uint8_t
в целом по сути мне нужно один из примеров библиотеки EthernetCard - pings переработать вывод всей инфы не на ком порт, а на олед дисплей. Я хоть и не долго занимаюсь ардуиной но не предполагал, что это вызовет столько разных проблем)
А в чем нет проблем? С чем вы сравниваете опенсорцную Ардуину - с коммерческими продуктами или с чем-то сферически-вакуумным? Так попробуйте на ассемблере пописать, к примеру...
Никто вам не мешает написать свою реализацию формирования строчки с ip адресом и остальным. Хотя-бы через snprintf() тот же.
Я не говорил, что видел лучше или хуже, просто по своей неопытности большинство вещей которые я делаю, это что то типа пазла, кусочек с одного урока, второй с другого, а вот если возникает какая то более глубокая проблема, справляться с ней очень тяжело. Ещё из курса с++ в инсте помню преобразование переменных вида IntToStr думал с этой переменной будет что то похожее. Вот и возникают проблемы, идеи есть, а реализовать не могу (
Правильно вы рассуждаете uint8_t это чтото типа чар. Я тоже начинающий и постоянно мозги кипят от преобразований типов данных.
В данном случае вы имеете дело не с Int, а с четырехбайтовым массивом (объект IPAddress), в каждом элементе которого хранится октет ip-адреса. И Serial его печатает не волшебным способом или преобразуя во что-то, а только потому, что у него есть реализация функции println для IPAddress. И там очень незамысловато делается что-то типа: print(addr[0]); print('.'); print(addr[1]); print('.'); print(addr[2]); print('.'); print(addr[3]);
Можете точно так же написать функцию, которая будет фигачить на OLED таким же способом любой объект IPAddress или uint8_t[4].