Благодаря руководству экспертов, функциональная развязка модуля PPP_DEVICE выполнена хорошо;
Поддержка новых модулей требует изменения только файлов в папке class.
В качестве примера добавления модуля Air720, процесс от добавления модуля до загрузки на GitHub можно разделить на три части:
Примечание: Вы можете переименовать любой файл в папке class.
При настройке команды сброса модуля, следует обратить особое внимание на команду +++ и изучить руководство по AT-командам для соответствующего модуля;
В руководстве по 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 секунд, поддержка мягкого перезапуска не добавлена.
Оставшиеся изменения включают переименование функций и настройку макросов, что позволяет новому модулю быть поддержанным.
Добавьте следующее в подходящее место:
# Air720
if GetDepend(['PPP_DEVICE_USING_AIR720']):
src += Glob('class/ppp_device_air720.c')
Командные строки и форматы должны быть унифицированы, что повысит эффективность при создании pull request (PR).
Здесь основное изменение заключается в редактировании файла Kconfig для добавления поддержки нового модуля в env.
Путь к файлу:
env/packages/iot/ppp_device/Kconfig
Добавьте следующий код в подходящее место:```c config PPP_DEVICE_USING_AIR720 bool "Luat Air720"
Если названия будут иметь унифицированный формат, то здесь не придётся много думать.
**ВНИМАНИЕ:** Изменение файлов в env может привести к проблемам при обновлении, поэтому рекомендуется делать резервные копии изменённых данных для возможности их восстановления.
## Приглашаем всех создавать pull request (PR), чтобы реализовать поддержку большего количества модулей
* Для PR требуется наличие двух разных репозиториев, рекомендуется добавить звёздочку и форкнуть.
* Дополнительная информация о PR доступна в группе, перед отправкой можно опубликовать ссылку на свой репозиторий в группе, чтобы другие могли проверить код и улучшить его качество.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )