mDot AT-Firmware for testing

Dependencies:   MTS-Serial libmDot-mbed5

Fork of Dot-AT-Firmware by MultiTech

Committer:
Mike Fiore
Date:
Thu Jun 25 10:23:41 2015 -0500
Revision:
1:e52ae6584f1c
Child:
9:ff62b20f7000
update debug, add command source files

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mike Fiore 1:e52ae6584f1c 1 /**
Mike Fiore 1:e52ae6584f1c 2 ******************************************************************************
Mike Fiore 1:e52ae6584f1c 3 * File Name : Command.h
Mike Fiore 1:e52ae6584f1c 4 * Date : 18/04/2014 10:57:12
Mike Fiore 1:e52ae6584f1c 5 * Description : This file provides code for command line prompt
Mike Fiore 1:e52ae6584f1c 6 ******************************************************************************
Mike Fiore 1:e52ae6584f1c 7 *
Mike Fiore 1:e52ae6584f1c 8 * COPYRIGHT(c) 2014 MultiTech Systems, Inc.
Mike Fiore 1:e52ae6584f1c 9 *
Mike Fiore 1:e52ae6584f1c 10 * Redistribution and use in source and binary forms, with or without modification,
Mike Fiore 1:e52ae6584f1c 11 * are permitted provided that the following conditions are met:
Mike Fiore 1:e52ae6584f1c 12 * 1. Redistributions of source code must retain the above copyright notice,
Mike Fiore 1:e52ae6584f1c 13 * this list of conditions and the following disclaimer.
Mike Fiore 1:e52ae6584f1c 14 * 2. Redistributions in binary form must reproduce the above copyright notice,
Mike Fiore 1:e52ae6584f1c 15 * this list of conditions and the following disclaimer in the documentation
Mike Fiore 1:e52ae6584f1c 16 * and/or other materials provided with the distribution.
Mike Fiore 1:e52ae6584f1c 17 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Mike Fiore 1:e52ae6584f1c 18 * may be used to endorse or promote products derived from this software
Mike Fiore 1:e52ae6584f1c 19 * without specific prior written permission.
Mike Fiore 1:e52ae6584f1c 20 *
Mike Fiore 1:e52ae6584f1c 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Mike Fiore 1:e52ae6584f1c 22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Mike Fiore 1:e52ae6584f1c 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Mike Fiore 1:e52ae6584f1c 24 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Mike Fiore 1:e52ae6584f1c 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Mike Fiore 1:e52ae6584f1c 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Mike Fiore 1:e52ae6584f1c 27 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Mike Fiore 1:e52ae6584f1c 28 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Mike Fiore 1:e52ae6584f1c 29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Mike Fiore 1:e52ae6584f1c 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Mike Fiore 1:e52ae6584f1c 31 *
Mike Fiore 1:e52ae6584f1c 32 ******************************************************************************
Mike Fiore 1:e52ae6584f1c 33 */
Mike Fiore 1:e52ae6584f1c 34
Mike Fiore 1:e52ae6584f1c 35 #include "mbed.h"
Mike Fiore 1:e52ae6584f1c 36 #include "mDot.h"
Mike Fiore 1:e52ae6584f1c 37 #include "MTSSerial.h"
Mike Fiore 1:e52ae6584f1c 38 #include "MTSText.h"
Mike Fiore 1:e52ae6584f1c 39 #include <cstdlib>
Mike Fiore 1:e52ae6584f1c 40 #include <string>
Mike Fiore 1:e52ae6584f1c 41 #include <vector>
Mike Fiore 1:e52ae6584f1c 42 #include "limits.h"
Mike Fiore 1:e52ae6584f1c 43 #include "debug.h"
Mike Fiore 1:e52ae6584f1c 44
Mike Fiore 1:e52ae6584f1c 45 /* Define to prevent recursive inclusion -------------------------------------*/
Mike Fiore 1:e52ae6584f1c 46 #ifndef __command_H
Mike Fiore 1:e52ae6584f1c 47 #define __command_H
Mike Fiore 1:e52ae6584f1c 48
Mike Fiore 1:e52ae6584f1c 49 #define KEY_LENGTH 16
Mike Fiore 1:e52ae6584f1c 50 #define EUI_LENGTH 8
Mike Fiore 1:e52ae6584f1c 51 #define PASSPHRASE_LENGTH 128
Mike Fiore 1:e52ae6584f1c 52
Mike Fiore 1:e52ae6584f1c 53 class Command {
Mike Fiore 1:e52ae6584f1c 54
Mike Fiore 1:e52ae6584f1c 55 public:
Mike Fiore 1:e52ae6584f1c 56
Mike Fiore 1:e52ae6584f1c 57 Command(mDot* dot);
Mike Fiore 1:e52ae6584f1c 58 Command(mDot* dot, const char* name, const char* text, const char* desc);
Mike Fiore 1:e52ae6584f1c 59 virtual ~Command() {};
Mike Fiore 1:e52ae6584f1c 60
Mike Fiore 1:e52ae6584f1c 61 const char* name() const { return _name; };
Mike Fiore 1:e52ae6584f1c 62 const char* text() const { return _text; };
Mike Fiore 1:e52ae6584f1c 63 const char* desc() const { return _desc; };
Mike Fiore 1:e52ae6584f1c 64 const char* help() const { return _help.c_str(); };
Mike Fiore 1:e52ae6584f1c 65
Mike Fiore 1:e52ae6584f1c 66 virtual uint32_t action(std::vector<std::string> args) = 0;
Mike Fiore 1:e52ae6584f1c 67 virtual bool verify(std::vector<std::string> args);
Mike Fiore 1:e52ae6584f1c 68 const std::string usage() const;
Mike Fiore 1:e52ae6584f1c 69 std::string& errorMessage();
Mike Fiore 1:e52ae6584f1c 70 const bool queryable();
Mike Fiore 1:e52ae6584f1c 71
Mike Fiore 1:e52ae6584f1c 72 static const char newline[];
Mike Fiore 1:e52ae6584f1c 73 static void readByteArray(const std::string& input, std::vector<uint8_t>& out, size_t len);
Mike Fiore 1:e52ae6584f1c 74
Mike Fiore 1:e52ae6584f1c 75 static bool isHexString(const std::string& str, size_t bytes);
Mike Fiore 1:e52ae6584f1c 76 static bool isBaudRate(uint32_t baud);
Mike Fiore 1:e52ae6584f1c 77
Mike Fiore 1:e52ae6584f1c 78 protected:
Mike Fiore 1:e52ae6584f1c 79
Mike Fiore 1:e52ae6584f1c 80 void setErrorMessage(const char* message);
Mike Fiore 1:e52ae6584f1c 81 void setErrorMessage(const std::string& message);
Mike Fiore 1:e52ae6584f1c 82 std::string _help;
Mike Fiore 1:e52ae6584f1c 83 std::string _usage;
Mike Fiore 1:e52ae6584f1c 84 bool _queryable;
Mike Fiore 1:e52ae6584f1c 85 mDot* _dot;
Mike Fiore 1:e52ae6584f1c 86
Mike Fiore 1:e52ae6584f1c 87 private:
Mike Fiore 1:e52ae6584f1c 88
Mike Fiore 1:e52ae6584f1c 89 const char* _name;
Mike Fiore 1:e52ae6584f1c 90 const char* _text;
Mike Fiore 1:e52ae6584f1c 91 const char* _desc;
Mike Fiore 1:e52ae6584f1c 92 std::string _errorMessage;
Mike Fiore 1:e52ae6584f1c 93
Mike Fiore 1:e52ae6584f1c 94 };
Mike Fiore 1:e52ae6584f1c 95
Mike Fiore 1:e52ae6584f1c 96 #endif /*__ command_H */
Mike Fiore 1:e52ae6584f1c 97
Mike Fiore 1:e52ae6584f1c 98 /************************ (C) COPYRIGHT MultiTech Systems, Inc *****END OF FILE****/