1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/RT-Thread-Mirror-ppp_device

Клонировать/Скачать
port.md 5.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 03.06.2025 00:15 6d4a0d6

Модульная переносимость

Благодаря руководству экспертов, функциональная развязка модуля PPP_DEVICE выполнена хорошо;

Поддержка новых модулей требует изменения только файлов в папке class.

В качестве примера добавления модуля Air720, процесс от добавления модуля до загрузки на GitHub можно разделить на три части:

1. Добавление файла ppp_device_air720.c в папку class

Примечание: Вы можете переименовать любой файл в папке class.

code_transplantation_one

При настройке команды сброса модуля, следует обратить особое внимание на команду +++ и изучить руководство по AT-командам для соответствующего модуля;

code_transplantation_two

В руководстве по AT-командам указано, что перед командой +++ не должно быть данных в течение 1 секунды, а после отправки команды +++ не должно быть данных в течение 0.5 секунды;

То есть, команда должна быть настроена следующим образом:

{"+++",          MODEM_CHAT_RESP_NOT_NEED,        30, 1, RT_TRUE},

Если руководство по AT-командам не требует такого поведения, можно использовать следующую конфигурацию:

{"+++",          MODEM_CHAT_RESP_NOT_NEED,        30, 1, RT_FALSE},

Основное различие между этими конфигурациями заключается в том, отправляется ли символ завершения '\r' после команды +++;

Поскольку AT-команды обычно требуют символа завершения, но команда +++ является исключением, следует обратить на это особое внимание.ВНИМАНИЕ:

MODEM_CHAT_RESP_NOT_NEED указывает, требуется ли ответ на отправку команды, и зависит от личных предпочтений;

Текущие варианты ответов на команды включают:

MODEM_CHAT_RESP_OK,         "OK"
MODEM_CHAT_RESP_READY,      "READY"
MODEM_CHAT_RESP_CONNECT,    "CONNECT"
MODEM_CHAT_RESP_BUSY,       "BUSY"
MODEM_CHAT_RESP_NO_CARRIER, "NO CARRIER"
MODEM_CHAT_RESP_ERROR,      "ERROR"
MODEM_CHAT_RESP_NOT_NEED

Если время перезагрузки модуля короткое (около нескольких секунд), можно добавить поддержку мягкого перезапуска (естественно, следует проверить команду в руководстве по AT-командам);

{"AT+RESET",          MODEM_CHAT_RESP_NOT_NEED,        30, 1, RT_FALSE},

Так как время перезагрузки модуля Air720 составляет около 20 секунд, поддержка мягкого перезапуска не добавлена.

Оставшиеся изменения включают переименование функций и настройку макросов, что позволяет новому модулю быть поддержанным.

2. Изменение скрипта SCons

Добавьте следующее в подходящее место:

# Air720
if GetDepend(['PPP_DEVICE_USING_AIR720']):
    src += Glob('class/ppp_device_air720.c')

Командные строки и форматы должны быть унифицированы, что повысит эффективность при создании pull request (PR).

3. Изменение индекса пакета

Здесь основное изменение заключается в редактировании файла Kconfig для добавления поддержки нового модуля в env.

Путь к файлу:

env/packages/iot/ppp_device/Kconfig

code_transplantation_three

Добавьте следующий код в подходящее место:```c config PPP_DEVICE_USING_AIR720 bool "Luat Air720"


Если названия будут иметь унифицированный формат, то здесь не придётся много думать.

**ВНИМАНИЕ:** Изменение файлов в env может привести к проблемам при обновлении, поэтому рекомендуется делать резервные копии изменённых данных для возможности их восстановления.

## Приглашаем всех создавать pull request (PR), чтобы реализовать поддержку большего количества модулей

* Для PR требуется наличие двух разных репозиториев, рекомендуется добавить звёздочку и форкнуть.
* Дополнительная информация о PR доступна в группе, перед отправкой можно опубликовать ссылку на свой репозиторий в группе, чтобы другие могли проверить код и улучшить его качество.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/RT-Thread-Mirror-ppp_device.git
git@api.gitlife.ru:oschina-mirror/RT-Thread-Mirror-ppp_device.git
oschina-mirror
RT-Thread-Mirror-ppp_device
RT-Thread-Mirror-ppp_device
master