Ethernet Как передать IP через переменную
- Войдите на сайт для отправки комментариев
Пт, 15/04/2016 - 11:44
IP устройства хранится на SD. Это строка. Чтобы присвоить адрес шидлу, её нужно разделить на четыре октета. То есть толко парсить вручную.
Я правильно понимаю?
Хотя, с другой стороны всё равно весь конфиг построчно парсить, функцией меньше, функцией больше -- разницы нет.
Вы управляете шилдом через библиотеку и напрямую? Если через библиотеку. точно нет метода/функции для передачи адреса как строки?
В каком виде Вы сохраняете конфиг на SD, можно посмотреть пример?
На вскидку, можно сохранять каждай октет - как отдельную переменную; либо хранить адрес как массив из четерех байт (char).
Управление напрямую. И, прошу прощения, там не шилд будет, а модуль. Хотя без разницы.
Да пока ещё ни как не сохраняем. Точнее будет обычный текстовый конфиг, даже с комментариями и примерами. Для простоты, чтобы можно было быстро вручную исправить и перезапустить, а не шить по-новой.
Нужно передать (из конфига) адресные параметры - ип, хост, маска, mac. Ну и кроме них около полутора десятков параметров. SD нужна для хранения логов, по этому решили задействовать и для конфигурации.
Вообще, пока идёт разработка концепции устройства. Не прикидывали ещё даже, во что мы влазим.
Понятно.
Можно еще посмотреть в строну функции strtok, что бы уж не совсем вручную парсить.
Понял, спасибо.
Я, собственно, зачем заходил... Спросить, а может у нативной либы Ethernet какие методы есть... Извините...
По мне так ip адрес правильнее получать через dhcp
По мне так ip адрес правильнее получать через dhcp
Этого ни кто не отменял.
Нативная либа интерент принимает IP как 4 байтный массив. Так что придется парсить. Вроде ini файлы не сложно парсить - знак равенства отделяет имя переменной от значения. IP тоже не сложно парсить - точки отделяют байты друг от друга. Если поискать на гитхабе - то наверно уже есть что-то готовое.
Нативная либа интерент принимает IP как 4 байтный массив. Так что придется парсить. Вроде ini файлы не сложно парсить - знак равенства отделяет имя переменной от значения. IP тоже не сложно парсить - точки отделяют байты друг от друга. Если поискать на гитхабе - то наверно уже есть что-то готовое.
попробуйте найти что то более "готовое" чем sscanf ;)
Я, собственно, зачем заходил... Спросить, а может у нативной либы Ethernet какие методы есть... Извините...
а) Кто мешает создать класс наследник нативной библиотеки и добавить там методы, понимающие IP адрес в виде строки?
б) Передовать строкой IP адрес мнее удобно, ибо её там придётся разбирать, проверять. Удобнее это делать в чтении конфига.
г) Вы даташит смотрели на 5110?
Оказывается, всё придумано до нас, но хорошо забыто. https://github.com/stevemarple/IniFile А стоило только этот же форум с самого начала пролистать.