База знаний / Справочник TiOS / Разработка (TiOS) / Справочник по программированию / Библиотеки / Справочник по библиотекам / Библиотека PPPOE
Пошаговая инструкция по использованию
Внимание
Этот раздел сейчас дорабатывается, приносим извинения за неудобства. Если вам нужна срочная помощь, обратитесь в службу поддержки Tibbo.
- Убедитесь, что в проекте есть библиотека SOCK.
- Добавьте в проект файлы pppoe.tbs и pppoe.tbh (они лежат в current_library_set\pppoe\trunk).
- Добавьте #define PPPOE_DEBUG_PRINT 1 в раздел определений файла global.tbh вашего проекта. Так вы будете «видеть, что происходит». Не забудьте убрать эту строку позже, когда убедитесь, что библиотека работает как надо.
- Добавьте include "pppoe\trunk\pppoe.tbh" в раздел подключений файла global.tbh.
- Добавьте pppoe_proc_timer() в код обработчика события on_sys_timer() (см. «Дополнительные соображения» ниже).
- Добавьте pppoe_proc_data() в код обработчика события on_sock_data_arrival().
- Создайте пустые тела функций обратного вызова (скорее всего, в device.tbs): callback_pppoe_ok(), callback_pppoe_failure(), callback_pppoe_pre_buffrq(). Подсказка: скопируйте объявления из pppoe.tbh или из нашего примера кода.
- Вызовите pppoe_start() откуда-нибудь. Самое очевидное решение - вызвать её из обработчика события on_sys_init(). Передайте правильные логин и пароль ADSL (совет: храните их с помощью библиотеки STG). Учтите, что pppoe_start() может завершиться ошибкой, поэтому разумно проверять возвращаемый код состояния.
- Напишите осмысленный код для callback_pppoe_ok(). Когда эта процедура вызвана, интерфейс PPPoE работает.
Всё перечисленное показано в примере кода.
Дополнительные соображения
Библиотека PPPOE рассчитывает, что pppoe_proc_timer() вызывается с интервалом 0.5 с. Это значение по умолчанию, его можно изменить через свойство sys.onsystimerperiod. Если проекту нужно, чтобы событие on_sys_timer() происходило с другой частотой, убедитесь, что pppoe_proc_timer() по-прежнему вызывается 2 раза в секунду. Например, если on_sys_timer() срабатывает 4 раза в секунду, добавьте код-«делитель», который вызывает pppoe_proc_timer() только при каждом втором вызове on_sys_timer().