Jean Mercier / Mbed 2 deprecated jmGPIO

Dependencies:   mbed

Committer:
jm
Date:
Sat Feb 12 16:36:31 2011 +0000
Revision:
0:35df659aaddf
General IO Command Line Interface

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jm 0:35df659aaddf 1 /*************************************************************************
jm 0:35df659aaddf 2 * @file jmMessages.c
jm 0:35df659aaddf 3 * @brief Control System Messages
jm 0:35df659aaddf 4 *
jm 0:35df659aaddf 5 * @date December 27,2010
jm 0:35df659aaddf 6 */
jm 0:35df659aaddf 7
jm 0:35df659aaddf 8 #include "jmCommands.h"
jm 0:35df659aaddf 9 #include "jmRingBuffer.h"
jm 0:35df659aaddf 10 #include "stdio.h"
jm 0:35df659aaddf 11 #include "jmMessages.h"
jm 0:35df659aaddf 12 #include "stdint.h"
jm 0:35df659aaddf 13
jm 0:35df659aaddf 14 uint8_t Help;
jm 0:35df659aaddf 15 uint8_t Feedback;
jm 0:35df659aaddf 16 uint8_t Echo;
jm 0:35df659aaddf 17
jm 0:35df659aaddf 18
jm 0:35df659aaddf 19 /** @brief Enable only help messages
jm 0:35df659aaddf 20 * @param none
jm 0:35df659aaddf 21 * @returns none
jm 0:35df659aaddf 22 */
jm 0:35df659aaddf 23 void InitMessages(void){
jm 0:35df659aaddf 24 Help = 1;
jm 0:35df659aaddf 25 Echo = 0;
jm 0:35df659aaddf 26 Feedback = 0;
jm 0:35df659aaddf 27 }
jm 0:35df659aaddf 28
jm 0:35df659aaddf 29 /** @brief Send all command names in a project
jm 0:35df659aaddf 30 * @param none
jm 0:35df659aaddf 31 * @returns none
jm 0:35df659aaddf 32 */
jm 0:35df659aaddf 33 void cli_list(void){
jm 0:35df659aaddf 34 int i,j;
jm 0:35df659aaddf 35 printf("Commands:\n");
jm 0:35df659aaddf 36 printf(".......................\n");
jm 0:35df659aaddf 37 // for each command
jm 0:35df659aaddf 38 for(i=0,j=0; i<nbCommands; i++,j++){
jm 0:35df659aaddf 39 // print name
jm 0:35df659aaddf 40 while(cmdNames[j]) printf("%c",cmdNames[j++]);
jm 0:35df659aaddf 41 printf("\n");
jm 0:35df659aaddf 42 }
jm 0:35df659aaddf 43 printf("........................\n");
jm 0:35df659aaddf 44 }
jm 0:35df659aaddf 45
jm 0:35df659aaddf 46 /** @brief Send Message Unknown Command from interpreter
jm 0:35df659aaddf 47 * @param none
jm 0:35df659aaddf 48 * @returns none
jm 0:35df659aaddf 49 */
jm 0:35df659aaddf 50 void UnknownCommand(void){
jm 0:35df659aaddf 51 printf("\n?\n");
jm 0:35df659aaddf 52 }
jm 0:35df659aaddf 53
jm 0:35df659aaddf 54 /** @brief Send Build Version Message
jm 0:35df659aaddf 55 * @param none
jm 0:35df659aaddf 56 * @returns none
jm 0:35df659aaddf 57 */
jm 0:35df659aaddf 58 void cli_version(void){
jm 0:35df659aaddf 59 printf(jmCLIG);
jm 0:35df659aaddf 60 }
jm 0:35df659aaddf 61
jm 0:35df659aaddf 62 /** @brief Help Command Line Control.
jm 0:35df659aaddf 63 * Enable/disable help messages
jm 0:35df659aaddf 64 * When enabled, Typing name only prints Command Format
jm 0:35df659aaddf 65 * @param none
jm 0:35df659aaddf 66 * @returns none
jm 0:35df659aaddf 67 */
jm 0:35df659aaddf 68 void cli_help(void){
jm 0:35df659aaddf 69 unsigned int value;
jm 0:35df659aaddf 70 if(ExtractUInteger(pLine,&value,0,1)){
jm 0:35df659aaddf 71 if(value == 1) printf("Help Enabled ! type command name to print its format\n");
jm 0:35df659aaddf 72 else printf("Help Disabled !\n");
jm 0:35df659aaddf 73
jm 0:35df659aaddf 74 Help = (uint8_t) value; // save status
jm 0:35df659aaddf 75 return;
jm 0:35df659aaddf 76 }
jm 0:35df659aaddf 77 // Error on input, show format
jm 0:35df659aaddf 78 if(Help)printf("help (value)0..1\n");
jm 0:35df659aaddf 79 // Ignore pending command line
jm 0:35df659aaddf 80 NextCommand(nl,pLine);
jm 0:35df659aaddf 81 }
jm 0:35df659aaddf 82
jm 0:35df659aaddf 83 /** @brief Feedback Command Line Control.
jm 0:35df659aaddf 84 * Enable/disable feedback messages
jm 0:35df659aaddf 85 * When enabled, feedback from user input commands are returned
jm 0:35df659aaddf 86 * @param none
jm 0:35df659aaddf 87 * @returns none
jm 0:35df659aaddf 88 */
jm 0:35df659aaddf 89 void cli_feedback(void){
jm 0:35df659aaddf 90 unsigned int value;
jm 0:35df659aaddf 91 if(ExtractUInteger(pLine,&value,0,1)){
jm 0:35df659aaddf 92 if(value == 1) printf("Feedback Enabled !\n");
jm 0:35df659aaddf 93 else printf("Feedback Disabled !\n");
jm 0:35df659aaddf 94
jm 0:35df659aaddf 95 Feedback = (uint8_t)value; // save status
jm 0:35df659aaddf 96 return;
jm 0:35df659aaddf 97 }
jm 0:35df659aaddf 98
jm 0:35df659aaddf 99 // Error on input, show format
jm 0:35df659aaddf 100 if(Help)printf("feedback (value)0..1\n");
jm 0:35df659aaddf 101 // Ignore pending command line
jm 0:35df659aaddf 102 NextCommand(nl,pLine);
jm 0:35df659aaddf 103 }
jm 0:35df659aaddf 104
jm 0:35df659aaddf 105 /** @brief Echo Command Line Control.
jm 0:35df659aaddf 106 * Enable/disable communication echoes
jm 0:35df659aaddf 107 * When enabled, user inputs are echoed back
jm 0:35df659aaddf 108 * @param none
jm 0:35df659aaddf 109 * @returns none
jm 0:35df659aaddf 110 */
jm 0:35df659aaddf 111 void cli_echo(void){
jm 0:35df659aaddf 112 unsigned int value;
jm 0:35df659aaddf 113 if(ExtractUInteger(pLine,&value,0,1)){
jm 0:35df659aaddf 114 if(value == 1) printf("Echo Enabled !\n");
jm 0:35df659aaddf 115 else printf("Echo Disabled !\n");
jm 0:35df659aaddf 116
jm 0:35df659aaddf 117 Echo = (uint8_t)value; // save status
jm 0:35df659aaddf 118 return;
jm 0:35df659aaddf 119 }
jm 0:35df659aaddf 120
jm 0:35df659aaddf 121 // Error on input, show format
jm 0:35df659aaddf 122 if(Help)printf("echo (value)0..1\n");
jm 0:35df659aaddf 123 // Ignore pending command line
jm 0:35df659aaddf 124 NextCommand(nl,pLine);
jm 0:35df659aaddf 125 }