/*--------------------------------------------------------------------Monitor.c * * Description and docs... are in Monitor.h * * Copyright (c) 2012, Donald Delmar Davis, Suspect Devices * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 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. * * Neither the name of the Suspect Devices 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 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 "Monitor.h" const char *keywords = KEYWORDS; char actionBuffer[MAX_COMMAND_LINE_LENGTH]; //return buffer for console actions allocate this once use it often. const char *theNak="NAK:"; cmdBuffer deviceComm; cmdBuffer consoleComm; char keyBuff[4]; //fix this. void registerAction(uint8_t ndx, actionptr action){ if (ndx >=0 && ndx=0 && ndxargs=buff->line+4; buff->verb=buff->line[3]; //buff->line[3]='\0'; // dont need this since lookupindex uses tcharacters buff->kwIndex=lookupIndex(buff->line); } int handleDeviceInput(cmdBuffer * cmd) { int retval; parseLine(cmd); if ((cmd->kwIndex)>0) { retval=actions[cmd->kwIndex](DEVICE); } cmd->gotline=false; cmd->len=0; return retval; } int handleConsoleInput(cmdBuffer * cmd) { int retval; parseLine(cmd); if ((cmd->kwIndex) >=0 ) { retval=actions[cmd->kwIndex](CONSOLE); } cmd->gotline=false; cmd->len=0; return retval; }