AT command firmware for MultiTech Dot devices.

Fork of mDot_AT_firmware by MultiTech

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers CmdSnr.cpp Source File

CmdSnr.cpp

00001 #include "CmdSnr.h"
00002 #include "Lora.h"
00003 
00004 static inline void printSnrVal(int16_t val, const char* end) {
00005     CommandTerminal::Serial()->writef("%s%d.%d%s", (val < 0 ? "-" : "") , abs(val / 10), abs(val % 10), end);
00006 }
00007 
00008 CmdSnr::CmdSnr() :
00009 #if MTS_CMD_TERM_VERBOSE
00010     Command("Signal To Noise Ratio", "AT+SNR", "Display signal to noise ratio of received packets: last, min, max, avg in dB", "(-20.0-20.0),(-20.0-20.0),(-20.0-20.0),(-20.0-20.0)")
00011 #else
00012     Command("AT+SNR")
00013 #endif
00014 {
00015     _queryable = true;
00016 }
00017 
00018 uint32_t CmdSnr::action(const std::vector<std::string>& args)
00019 {
00020     mDot::snr_stats stats = CommandTerminal::Dot()->getSnrStats();
00021     if (stats.last == lora::INVALID_SNR) {
00022 #if MTS_CMD_TERM_VERBOSE
00023         CommandTerminal::Serial()->writef("No data\r\n");
00024 #endif
00025         return 1;
00026     }
00027     printSnrVal(stats.last, ", ");
00028     printSnrVal(stats.min, ", ");
00029     printSnrVal(stats.max, ", ");
00030     printSnrVal(stats.avg, "\r\n");
00031 
00032 
00033     return 0;
00034 }