with 36errors

Dependencies:   MTS-Serial libxDot-dev-mbed5-deprecated

Fork of Dot-AT-Firmware by MultiTech

CommandTerminal/CmdFrequencyBand.cpp

Committer:
Mike Fiore
Date:
2016-11-04
Revision:
14:f9a77400b622
Parent:
1:e52ae6584f1c
Child:
16:d5cf2af81a6d

File content as of revision 14:f9a77400b622:

#include "CmdFrequencyBand.h"


CmdFrequencyBand::CmdFrequencyBand() :
        Command("Frequency Band", "AT+FREQ", "Configured Frequency Band 'EU868', 'US915' or 'AU915'", "(EU868,US915,AU915)")
{
    _queryable = true;
}

uint32_t CmdFrequencyBand::action(std::vector<std::string> args)
                                  {
    if (args.size() == 1)
    {
        CommandTerminal::Serial()->writef("%s\r\n", mDot::FrequencyBandStr(CommandTerminal::Dot()->getFrequencyBand()).c_str());
    }

#ifdef DEBUG_MAC
    else if (args.size() == 2)
    {
        uint8_t band = mDot::FB_US915;
        std::string band_str = mts::Text::toUpper(args[1]);


        if (mDot::FrequencyBandStr(mDot::FB_EU868).find(band_str) != std::string::npos) {
            band = mDot::FB_EU868;
        }
        if (mDot::FrequencyBandStr(mDot::FB_AU915).find(band_str) != std::string::npos) {
            band = mDot::FB_AU915;
        }
        if (mDot::FrequencyBandStr(mDot::FB_US915).find(band_str) != std::string::npos) {
            band = mDot::FB_US915;
        }

        if (CommandTerminal::Dot()->setFrequencyBand(band) != mDot::MDOT_OK) {
            CommandTerminal::setErrorMessage(CommandTerminal::Dot()->getLastError());;
            return 1;
        }
    }
#endif

    return 0;
}

bool CmdFrequencyBand::verify(std::vector<std::string> args)
                              {
    if (args.size() == 1)
        return true;

#ifdef DEBUG_MAC
    if (args.size() == 2)
    {
        std::string band = mts::Text::toUpper(args[1]);

        if (mDot::FrequencyBandStr(mDot::FB_EU868).find(band) == std::string::npos &&
            mDot::FrequencyBandStr(mDot::FB_US915).find(band) == std::string::npos &&
            mDot::FrequencyBandStr(mDot::FB_AU915).find(band) == std::string::npos)
        {
            CommandTerminal::setErrorMessage("Invalid parameter, expects (EU868,US915,AU915)");
            return false;
        }

        return true;
    }
#endif

    CommandTerminal::setErrorMessage("Invalid arguments");
    return false;
}