diff options
| author | Mike Fiore <mfiore@multitech.com> | 2015-11-18 15:46:37 -0600 |
|---|---|---|
| committer | Mike Fiore <mfiore@multitech.com> | 2015-11-18 15:46:37 -0600 |
| commit | d48510e9c3a57753ff4b33b00e0c61a2b39ff9a1 (patch) | |
| tree | f04f39f7287a6bca826a6c22179b0542cd16f36f /CommandTerminal/CommandTerminal.h | |
| parent | 94990163d2b694373eb5b2b8ccc4d002aad4ecd9 (diff) | |
| parent | ce5c78c53be8d66da4a2cccdf18b622c0b77e773 (diff) | |
| download | mtdot-box-evb-factory-firmware-d48510e9c3a57753ff4b33b00e0c61a2b39ff9a1.tar.gz mtdot-box-evb-factory-firmware-d48510e9c3a57753ff4b33b00e0c61a2b39ff9a1.tar.bz2 mtdot-box-evb-factory-firmware-d48510e9c3a57753ff4b33b00e0c61a2b39ff9a1.zip | |
Merge branch 'atcommands'
configuration needs to be pulled out of main and implemented as a Mode object
Conflicts:
main.cpp
Diffstat (limited to 'CommandTerminal/CommandTerminal.h')
| -rw-r--r-- | CommandTerminal/CommandTerminal.h | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/CommandTerminal/CommandTerminal.h b/CommandTerminal/CommandTerminal.h new file mode 100644 index 0000000..0fcb9c4 --- /dev/null +++ b/CommandTerminal/CommandTerminal.h @@ -0,0 +1,107 @@ +/** + ****************************************************************************** + * File Name : command.h + * Date : 18/04/2014 10:57:12 + * Description : This file provides code for command line prompt + ****************************************************************************** + * + * COPYRIGHT(c) 2014 MultiTech Systems, Inc. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ + +#include "mbed.h" +#include "MTSSerial.h" +#include "Commands.h" +#include "mDot.h" + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __command_terminal_H__ +#define __command_terminal_H__ + +class CommandTerminal { + +public: + + enum WaitType { + WAIT_JOIN, + WAIT_RECV, + WAIT_LINK, + WAIT_SEND, + WAIT_NA + }; + + CommandTerminal(mts::MTSSerial& serial, mDot* dot); + + // Command prompt text... + static const char banner[]; + static const char helpline[]; + static const char prompt[]; + + // Command error text... + static const char command_error[]; + + // Response texts... + static const char help[]; + static const char cmd_error[]; + static const char newline[]; + static const char done[]; + static const char error[]; + + // Escape sequence + static const char escape_sequence[]; + + void start(); + +private: + + static void idle(void const* args) { + while (1) + __WFI(); + } + + mts::MTSSerial& _serial; + static mts::MTSSerial* _serialp; + + mDot* _dot; + mDot::Mode _mode; + std::vector<Command*> _commands; + Thread _idle_thread; + bool _serial_up; + + void addCommand(Command* cmd); + + void printHelp(); + + bool readable(); + bool writeable(); + char read(); + void write(const char* message); + void writef(const char* format, ... ); + +}; + +#endif // __command_terminal_H__ + |
