Hadi Ho / Mbed 2 deprecated mDot_USB_AT_firmware

Dependencies:   MTS-Serial libmDot mbed-rtos mbed

Fork of mDot_USB_AT_firmware by Hadi Ho

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers CmdRxDelay.cpp Source File

CmdRxDelay.cpp

00001 /*
00002  * CmdRxDelay.cpp
00003  *
00004  *  Created on: Nov 4, 2015
00005  *      Author: jreiss
00006  */
00007 
00008 #include "CmdRxDelay.h"
00009 
00010 CmdRxDelay::CmdRxDelay(mDot* dot, mts::MTSSerial& serial)
00011 :
00012   Command(dot, "Rx Delay", "AT+RXD", "Number of seconds before receive windows are opened (1 - 15)"),
00013   _serial(serial)
00014 {
00015     _help = std::string(text()) + ": " + std::string(desc());
00016     _usage = "(1-15)";
00017     _queryable = true;
00018 }
00019 
00020 CmdRxDelay::~CmdRxDelay()
00021 {
00022     // TODO Auto-generated destructor stub
00023 }
00024 
00025 uint32_t CmdRxDelay::action(std::vector<std::string> args) {
00026     if (args.size() == 1) {
00027         if (_dot->getVerbose())
00028             _serial.writef("Rx Delay: ");
00029 
00030         _serial.writef("%u\r\n", _dot->getRxDelay());
00031     } else if (args.size() == 2) {
00032         int32_t code;
00033         int rxDelay;
00034         sscanf(args[1].c_str(), "%d", &rxDelay);
00035 
00036         if ((code = _dot->setRxDelay(rxDelay)) != mDot::MDOT_OK) {
00037             
00038             setErrorMessage(_dot->getLastError());;
00039             return 1;
00040         }
00041     }
00042     return 0;
00043 }
00044 
00045 bool CmdRxDelay::verify(std::vector<std::string> args) {
00046     if (args.size() == 1)
00047         return true;
00048 
00049     if (args.size() == 2) {
00050 
00051         int rxDelay;
00052         if (sscanf(args[1].c_str(), "%d", &rxDelay) == 1) {
00053 
00054             if (rxDelay > 15 || rxDelay < 1) {
00055                 setErrorMessage("Invalid rx delay, expects (1-15)");
00056                 return false;
00057             }
00058 
00059             return true;
00060         }
00061     }
00062 
00063     setErrorMessage("Invalid arguments");
00064     return false;
00065 }