few changes for RTS/CTS control

Dependencies:   MTS-Serial libmDot mbed-rtos mbed

Fork of mDot_AT_firmware by MultiTech

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers CmdTxFrequency.cpp Source File

CmdTxFrequency.cpp

00001 #include "CmdTxFrequency.h"
00002 #include <climits>
00003 
00004 CmdTxFrequency::CmdTxFrequency(mDot* dot, mts::MTSSerial& serial) :
00005     Command(dot, "Tx Frequency", "AT+TXF", "Set Tx frequency"), _serial(serial)
00006 {
00007     _help = std::string(text()) + ": " + std::string(desc());
00008     if (_dot->getFrequencyBand() == mDot::FB_868)
00009         _usage = "(0,863000000-870000000)";
00010     else
00011         _usage = "(0,902000000-928000000)";
00012     _queryable = true;
00013 }
00014 
00015 uint32_t CmdTxFrequency::action(std::vector<std::string> args)
00016 {
00017     if (args.size() == 1)
00018     {
00019         if (_dot->getVerbose())
00020             _serial.writef("Tx Frequency: ");
00021 
00022         _serial.writef("%lu\r\n", _dot->getTxFrequency());
00023     }
00024     else if (args.size() == 2)
00025     {
00026         int32_t code;
00027         int frequency = 0;
00028 
00029         sscanf(args[1].c_str(), "%d", &frequency);
00030         if ((code = _dot->setTxFrequency(frequency)) != mDot::MDOT_OK)
00031         {
00032             
00033             setErrorMessage(_dot->getLastError());;
00034             return 1;
00035         }
00036     }
00037 
00038     return 0;
00039 }
00040 
00041 bool CmdTxFrequency::verify(std::vector<std::string> args)
00042 {
00043     if (args.size() == 1)
00044         return true;
00045 
00046     if (args.size() == 2)
00047     {
00048         int frequency = ULONG_MAX;
00049         if (sscanf(args[1].c_str(), "%d", &frequency) != 1) {
00050             setErrorMessage("Invalid argument");
00051             return false;
00052         }
00053 
00054         if (frequency != 0 && (frequency < int(_dot->getMinFrequency()) || frequency > int(_dot->getMaxFrequency()))) {
00055             if (_dot->getFrequencyBand() == mDot::FB_868)
00056                 setErrorMessage("Invalid frequency, expects (0,863000000-870000000)"); 
00057             else
00058                 setErrorMessage("Invalid frequency, expects (0,902000000-928000000)");
00059 
00060             return false;
00061         }
00062 
00063         return true;
00064     }
00065 
00066     setErrorMessage("Invalid arguments");
00067     return false;
00068 }
00069