with 36errors

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

Fork of Dot-AT-Firmware by MultiTech

Committer:
faendder
Date:
Sun Jul 09 23:37:23 2017 +0000
Revision:
18:75cd82d6298c
Parent:
14:f9a77400b622
i have 36 errors but i dont now how fixit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mike Fiore 1:e52ae6584f1c 1 #include "Command.h"
Mike Fiore 1:e52ae6584f1c 2 #include <algorithm>
Mike Fiore 1:e52ae6584f1c 3
Mike Fiore 1:e52ae6584f1c 4 const char Command::newline[] = "\r\n";
Mike Fiore 1:e52ae6584f1c 5
Mike Fiore 14:f9a77400b622 6 Command::Command() : _name(""), _text(""), _desc(""), _usage("NONE")
Mike Fiore 1:e52ae6584f1c 7 {
Mike Fiore 1:e52ae6584f1c 8 _queryable = false;
Mike Fiore 1:e52ae6584f1c 9 }
Mike Fiore 1:e52ae6584f1c 10
Mike Fiore 14:f9a77400b622 11 Command::Command(const char* name, const char* text, const char* desc, const char* usage) :
Mike Fiore 14:f9a77400b622 12 _name(name), _text(text), _desc(desc), _usage(usage)
Mike Fiore 1:e52ae6584f1c 13 {
Mike Fiore 14:f9a77400b622 14 _queryable = false;
Mike Fiore 1:e52ae6584f1c 15 }
Mike Fiore 1:e52ae6584f1c 16
Mike Fiore 9:ff62b20f7000 17 std::string Command::usage() const
Mike Fiore 1:e52ae6584f1c 18 {
Mike Fiore 1:e52ae6584f1c 19 std::string usage(_text);
Mike Fiore 1:e52ae6584f1c 20 usage.append(": ");
Mike Fiore 1:e52ae6584f1c 21 usage.append(_usage);
Mike Fiore 1:e52ae6584f1c 22 return usage;
Mike Fiore 1:e52ae6584f1c 23 }
Mike Fiore 1:e52ae6584f1c 24
Mike Fiore 9:ff62b20f7000 25 bool Command::queryable() const
Mike Fiore 1:e52ae6584f1c 26 {
Mike Fiore 1:e52ae6584f1c 27 return _queryable;
Mike Fiore 1:e52ae6584f1c 28 }
Mike Fiore 1:e52ae6584f1c 29
Mike Fiore 1:e52ae6584f1c 30 void Command::readByteArray(const std::string& input, std::vector<uint8_t>& out, size_t len)
Mike Fiore 1:e52ae6584f1c 31 {
Mike Fiore 1:e52ae6584f1c 32 // if input length is greater than expected byte output
Mike Fiore 1:e52ae6584f1c 33 // there must be a delimiter included
Mike Fiore 1:e52ae6584f1c 34 if (input.length() > len * 2)
Mike Fiore 1:e52ae6584f1c 35 {
Mike Fiore 1:e52ae6584f1c 36 std::vector < std::string > bytes;
Mike Fiore 1:e52ae6584f1c 37 if (input.find(" ") != std::string::npos)
Mike Fiore 1:e52ae6584f1c 38 bytes = mts::Text::split(input, " ");
Mike Fiore 1:e52ae6584f1c 39 else if (input.find(":") != std::string::npos)
Mike Fiore 1:e52ae6584f1c 40 bytes = mts::Text::split(input, ":");
Mike Fiore 1:e52ae6584f1c 41 else if (input.find("-") != std::string::npos)
Mike Fiore 1:e52ae6584f1c 42 bytes = mts::Text::split(input, "-");
Mike Fiore 1:e52ae6584f1c 43 else if (input.find(".") != std::string::npos)
Mike Fiore 1:e52ae6584f1c 44 bytes = mts::Text::split(input, ".");
Mike Fiore 1:e52ae6584f1c 45
Mike Fiore 1:e52ae6584f1c 46 if (bytes.size() != len) {
Mike Fiore 1:e52ae6584f1c 47 return;
Mike Fiore 1:e52ae6584f1c 48 }
Mike Fiore 1:e52ae6584f1c 49
Mike Fiore 9:ff62b20f7000 50 int temp;
Mike Fiore 1:e52ae6584f1c 51 // Read in the key components...
Mike Fiore 1:e52ae6584f1c 52 for (size_t i = 0; i < len; i++)
Mike Fiore 1:e52ae6584f1c 53 {
Mike Fiore 1:e52ae6584f1c 54 sscanf(bytes[i].c_str(), "%02x", &temp);
Mike Fiore 1:e52ae6584f1c 55 out.push_back(temp);
Mike Fiore 1:e52ae6584f1c 56 }
Mike Fiore 1:e52ae6584f1c 57 }
Mike Fiore 1:e52ae6584f1c 58 else
Mike Fiore 1:e52ae6584f1c 59 {
Mike Fiore 1:e52ae6584f1c 60 // no delims
Mike Fiore 9:ff62b20f7000 61 int temp;
Mike Fiore 1:e52ae6584f1c 62
Mike Fiore 1:e52ae6584f1c 63 // Read in the key components...
Mike Fiore 1:e52ae6584f1c 64 for (size_t i = 0; i < len; i++)
Mike Fiore 1:e52ae6584f1c 65 {
Mike Fiore 1:e52ae6584f1c 66 if (i * 2 < input.size())
Mike Fiore 1:e52ae6584f1c 67 {
Mike Fiore 1:e52ae6584f1c 68 sscanf(input.substr(i * 2).c_str(), "%02x", &temp);
Mike Fiore 1:e52ae6584f1c 69 out.push_back(temp);
Mike Fiore 1:e52ae6584f1c 70 }
Mike Fiore 1:e52ae6584f1c 71 }
Mike Fiore 1:e52ae6584f1c 72 }
Mike Fiore 1:e52ae6584f1c 73 }
Mike Fiore 1:e52ae6584f1c 74
Mike Fiore 1:e52ae6584f1c 75 bool Command::isHexString(const std::string& str, size_t bytes) {
Mike Fiore 9:ff62b20f7000 76 int numDelims = bytes - 1;
Mike Fiore 1:e52ae6584f1c 77 size_t minSize = bytes * 2;
Mike Fiore 1:e52ae6584f1c 78 size_t maxSize = minSize + numDelims;
Mike Fiore 1:e52ae6584f1c 79
Mike Fiore 1:e52ae6584f1c 80 if (str.size() == minSize) {
Mike Fiore 1:e52ae6584f1c 81 return str.find_first_not_of("0123456789abcdefABCDEF") == std::string::npos;
Mike Fiore 1:e52ae6584f1c 82 }
Mike Fiore 1:e52ae6584f1c 83 else if (str.size() == maxSize) {
Mike Fiore 1:e52ae6584f1c 84 if (str.find_first_of(":-.") == std::string::npos) {
Mike Fiore 1:e52ae6584f1c 85 // no delim found
Mike Fiore 1:e52ae6584f1c 86 return false;
Mike Fiore 1:e52ae6584f1c 87 }
Mike Fiore 1:e52ae6584f1c 88 if (str.find(":") != std::string::npos && std::count(str.begin(), str.end(), ':') != numDelims) {
Mike Fiore 1:e52ae6584f1c 89 return false;
Mike Fiore 1:e52ae6584f1c 90 }
Mike Fiore 1:e52ae6584f1c 91 if (str.find(".") != std::string::npos && std::count(str.begin(), str.end(), '.') != numDelims) {
Mike Fiore 1:e52ae6584f1c 92 return false;
Mike Fiore 1:e52ae6584f1c 93 }
Mike Fiore 1:e52ae6584f1c 94 if (str.find("-") != std::string::npos && std::count(str.begin(), str.end(), '-') != numDelims) {
Mike Fiore 1:e52ae6584f1c 95 return false;
Mike Fiore 1:e52ae6584f1c 96 }
Mike Fiore 1:e52ae6584f1c 97
Mike Fiore 1:e52ae6584f1c 98 return str.find_first_not_of("0123456789abcdefABCDEF:-.") == std::string::npos;
Mike Fiore 1:e52ae6584f1c 99 }
Mike Fiore 1:e52ae6584f1c 100
Mike Fiore 1:e52ae6584f1c 101 return false;
Mike Fiore 1:e52ae6584f1c 102 }
Mike Fiore 1:e52ae6584f1c 103