Пошаговая инструкция по использованию
Этот раздел сейчас дорабатывается. Приносим извинения за неудобства. Если вам нужна срочная помощь, обратитесь в службу поддержки Tibbo.
Шаги ниже предполагают, что для тестирования вы используете плату NB1010 (устройство DS101x).
- Убедитесь, что в вашем проекте есть библиотека SOCK.
- Добавьте в проект файлы gprs.tbs и gprs.tbh (они находятся в current_library_set\gprs\trunk).
- Добавьте #define GPRS_DEBUG_PRINT 1 в раздел определений файла global.tbh вашего проекта. Так вы будете "видеть, что происходит". Не забудьте убрать это позже, когда убедитесь, что библиотека работает как ожидается.
- Добавьте include "gprs\trunk\gprs.tbh" в раздел подключаемых файлов global.tbh.
- Добавьте gprs_proc_timer() в код обработчика события on_sys_timer() (см. "Дополнительные замечания" ниже).
- Добавьте pppoe_proc_sock_data() в код обработчика события on_sock_data_arrival().
- Добавьте pppoe_proc_ser_data() в код обработчика события on_ser_data_arrival().
- Создайте пустые тела функций обратного вызова (скорее всего, в device.tbs): callback_gprs_ok(), callback_gprs_failure(), callback_gprs_pre_buffrq(). Подсказка: скопируйте их из объявлений в pppoe.tbh или из нашего примера кода.
- Вызовите gprs_start() откуда-нибудь. Самое очевидное решение - вызвать из обработчика события on_sys_init(). Передайте правильные строку ATDT и APN. В наших тестах в сети Taiwan Cellular пришлось использовать *99# и INTERNET. Вашей сети может понадобиться другая строка. Учтите, что pppoe_start() может завершиться ошибкой, поэтому разумно проверять возвращённый код состояния.
- Реализуйте осмысленный код в callback_gprs_ok(). Когда эта процедура вызвана, PPP-соединение установлено.
Всё перечисленное выше показано в примере кода.
Дополнительные замечания
Библиотека GPRS ожидает, что gprs_proc_timer() вызывается с интервалом 0.5 с. Это значение по умолчанию, его можно изменить через свойство sys.onsystimerperiod. Если вашему проекту нужно, чтобы событие on_sys_timer() происходило с другой частотой, следите, чтобы gprs_proc_timer() всё равно вызывалась 2 раза в секунду. Например, если on_sys_timer() срабатывает 4 раза в секунду, добавьте код-"делитель", который вызывает gprs_proc_timer() только при каждом втором срабатывании on_sys_timer().
Если вы используете внешний GPRS-модем, добавьте #define GPRS_MODULE_EXTERNAL 1 в global.tbh.
В зависимости от способа подключения GPRS-модема могут понадобиться и такие собственные определения:
- GPRS_SER_PORT
- GPRS_SER_PORT_RTSMAP
- GPRS_SER_PORT_CTSMAP
- GPRS_SWITCH
- GPRS_RESET