Control up to 4 DC Motors from a serial port

Dependencies:   mbed

Committer:
jm
Date:
Sat Feb 12 16:39:20 2011 +0000
Revision:
0:dedab08b24ea
jmMotor Command Line Interface Module

Who changed what in which revision?

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