firmware-autoreply
Это старая версия документа!
Автоматический ответ
В данном разделе приведена информауия по модификации исходного кода прошивки Meshtastic для реализации функционала автоматического ответа на сообщения с информированием об уровнях принятого сигнала.
Добавление обработчика принятого сообщения
В файл src\modules\ReplyModule.cpp добавляем метод обработки приема сообщения
ProcessMessage ReplyModule::handleReceived(const meshtastic_MeshPacket &mp)
{
auto reply = allocDataPacket();
float P = mp.rx_rssi + mp.rx_snr - 10*log10f(pow10f(mp.rx_snr/10)+1);
sprintf(reinterpret_cast<char*>(reply->decoded.payload.bytes), "RSSI: %ddBm, SNR: %.2fdB, Signal: %.2fdBm", mp.rx_rssi, mp.rx_snr, P);
reply->decoded.payload.size = strlen(reinterpret_cast<char*>(reply->decoded.payload.bytes));
setReplyTo(reply, mp);
service->sendToMesh(reply);
return ProcessMessage::CONTINUE;
}
Также требуется добавить метод в заголовочный файл src\modules\ReplyModule.h
ProcessMessage handleReceived(const meshtastic_MeshPacket &mp) override;
В нем же правим конструктор на следующее
ReplyModule() : SinglePortModule("reply", meshtastic_PortNum_TEXT_MESSAGE_APP) {}
Подключаем модуль
В файл src\modules\Modules.cpp в начальной секции добавляем подключение файла модуля
#include "modules/ReplyModule.h"
Также в сексии ниже создаем объект созданного модуля
new ReplyModule();
firmware-autoreply.1762541389.txt.gz · Последнее изменение: — rsgrinko

