Библиотека DHCP
Этот раздел сейчас дорабатывается. Приносим извинения за неудобства. Если вам нужна срочная помощь, обратитесь в службу поддержки Tibbo.
Библиотека DHCP реализует клиент DHCP для сетевых интерфейсов Ethernet (net.) и Wi-Fi (wln.). Протокол DHCP служит для автоматической настройки IP-адреса устройства, маски сети и IP-адреса шлюза. Подробнее о протоколе: http://en.wikipedia.org/wiki/Dhcp.
Библиотека может одновременно запускать клиенты DHCP на обоих сетевых интерфейсах. Она событийная и неблокирующая: тихо работает в фоне и отнимает минимум процессорного времени.
Сведения о библиотеке
| Поддерживаемые платформы: | Любая платформа, у которой есть хотя бы интерфейс Ethernet (net.) или Wi-Fi (wln.), кроме EM202. |
| Подключаемые файлы: | dhcp.tbs, dhcp.tbh (из current_library_set\dhcp\trunk\). |
| Зависимости: |
возможно, понадобится также библиотека WLN |
Процедуры API: Используйте процедуры API для взаимодействия с библиотекой. | dhcp_get_info() - возвращает сведения, специфичные для библиотеки (например, необходимое место под буферы). dhcp_start() - запускает клиент DHCP на указанном сетевом интерфейсе. dhcp_stop() - останавливает клиент DHCP на указанном сетевом интерфейсе. |
Процедуры событий: Вызывайте процедуры событий из соответствующих обработчиков событий, как описано здесь. | dhcp_proc_timer() - вызывайте из обработчика события on_sys_timer(). dhcp_proc_data() - вызывайте из обработчика события on_sock_data_arrival(). |
Процедуры обратного вызова: Реализуйте тела процедур обратного вызова в другом месте проекта. | callback_dhcp_ok() - вызывается, когда библиотека успешно завершает работу на одном из интерфейсов. callback_dhcp_failure() - вызывается, когда библиотеке не удаётся завершить работу на одном из интерфейсов после DHCP_MAX_RETRIES попыток. callback_dhcp_pre_clear_ip() - вызывается, когда библиотека собирается установить IP-адрес интерфейса в 0.0.0.0. callback_dchp_pre_buffrq() - вызывается, когда библиотеке нужно выделить место под буфер, а требуемого места нет. callback_dhcp_buff_released() - вызывается, когда библиотеке буферы больше не нужны и она их освободила. |
| Необходимое место под буферы: | Шесть страниц буфера. Они занимаются, когда нужны, и освобождаются, когда клиент DHCP завершает работу. Объём необходимого места постоянен и не зависит от числа задействованных сетевых интерфейсов. |