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 CmdBatteryLevel.cpp Source File

CmdBatteryLevel.cpp

00001 #include "CmdBatteryLevel.h"
00002 
00003 CmdBatteryLevel::CmdBatteryLevel() :
00004 #if MTS_CMD_TERM_VERBOSE
00005     Command("Battery Level", "AT+BAT", "Battery Level of dot (0 - 255)", "(0-255)")
00006 #else
00007     Command("AT+BAT")
00008 #endif
00009 {
00010     _queryable = true;
00011 }
00012 
00013 uint32_t CmdBatteryLevel::action(const std::vector<std::string>& args) {
00014     int battery_level;
00015 
00016     if (args.size() == 1) {
00017         CommandTerminal::Serial()->writef("%d\r\n", CommandTerminal::getBatteryLevel());
00018     } else if (args.size() == 2) {
00019         sscanf(args[1].c_str(), "%d", &battery_level);
00020         CommandTerminal::setBatteryLevel(battery_level);
00021     }
00022     return 0;
00023 }
00024 
00025 bool CmdBatteryLevel::verify(const std::vector<std::string>& args) {
00026     int battery_level;
00027 
00028     if (args.size() == 1)
00029         return true;
00030 
00031     if (args.size() == 2) {
00032         if (sscanf(args[1].c_str(), "%d", &battery_level) == 1) {
00033             if (battery_level > 255 || battery_level < 0) {
00034 #if MTS_CMD_TERM_VERBOSE
00035                 CommandTerminal::setErrorMessage("Invalid battery level, expects (0-255)");
00036 #endif
00037                 return false;
00038             }
00039             return true;
00040         }
00041     }
00042 
00043 #if MTS_CMD_TERM_VERBOSE
00044     CommandTerminal::setErrorMessage("Invalid arguments");
00045 #endif
00046     return false;
00047 }
00048