Control up to 4 steppers from serial port

Dependencies:   mbed

Committer:
jm
Date:
Sat Feb 12 16:42:08 2011 +0000
Revision:
0:0785901b085e
jmStepper Command Line Interface Module

Who changed what in which revision?

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