callib

Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

Committer:
filipksiezyc
Date:
Tue Jun 09 10:21:57 2020 +0000
Revision:
0:befccd954577
1331;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
filipksiezyc 0:befccd954577 1 #include "mbed.h"
filipksiezyc 0:befccd954577 2 #include "ServoGUI.h"
filipksiezyc 0:befccd954577 3 #include "TokensHandling.h"
filipksiezyc 0:befccd954577 4
filipksiezyc 0:befccd954577 5 #define CR '\r'
filipksiezyc 0:befccd954577 6
filipksiezyc 0:befccd954577 7 Serial MySerialConnection(USBTX, USBRX, 9600);
filipksiezyc 0:befccd954577 8
filipksiezyc 0:befccd954577 9 int puts(char *pcCharsToSend, unsigned char ucNumberOfCharsToSend){
filipksiezyc 0:befccd954577 10 unsigned char ucCurrentChar;
filipksiezyc 0:befccd954577 11
filipksiezyc 0:befccd954577 12 for(ucCurrentChar=0; ucCurrentChar<ucNumberOfCharsToSend; ucCurrentChar++){
filipksiezyc 0:befccd954577 13 if(pcCharsToSend[ucCurrentChar]==NULL)
filipksiezyc 0:befccd954577 14 break;
filipksiezyc 0:befccd954577 15 else if((ucCurrentChar==ucNumberOfCharsToSend)&&(pcCharsToSend[ucCurrentChar]!=NULL))
filipksiezyc 0:befccd954577 16 return 1;
filipksiezyc 0:befccd954577 17 }
filipksiezyc 0:befccd954577 18
filipksiezyc 0:befccd954577 19 for(ucCurrentChar=0; pcCharsToSend[ucCurrentChar]!=NULL; ucCurrentChar++){
filipksiezyc 0:befccd954577 20 MySerialConnection.putc(pcCharsToSend[ucCurrentChar]);
filipksiezyc 0:befccd954577 21 }
filipksiezyc 0:befccd954577 22
filipksiezyc 0:befccd954577 23 MySerialConnection.putc(CR);
filipksiezyc 0:befccd954577 24 return 0;
filipksiezyc 0:befccd954577 25 }
filipksiezyc 0:befccd954577 26
filipksiezyc 0:befccd954577 27 int gets(char *pcGotCharDestination, unsigned char ucInputBufferSize){
filipksiezyc 0:befccd954577 28 unsigned char ucCurrentRecivedChar=0;
filipksiezyc 0:befccd954577 29
filipksiezyc 0:befccd954577 30 for(ucCurrentRecivedChar=0; ucCurrentRecivedChar<ucInputBufferSize; ucCurrentRecivedChar++){
filipksiezyc 0:befccd954577 31 char cInputChar=MySerialConnection.getc();
filipksiezyc 0:befccd954577 32
filipksiezyc 0:befccd954577 33 if(cInputChar == CR){
filipksiezyc 0:befccd954577 34 pcGotCharDestination[ucCurrentRecivedChar]=NULL;
filipksiezyc 0:befccd954577 35 return 0;
filipksiezyc 0:befccd954577 36 }
filipksiezyc 0:befccd954577 37 else {
filipksiezyc 0:befccd954577 38 pcGotCharDestination[ucCurrentRecivedChar]=cInputChar;
filipksiezyc 0:befccd954577 39 }
filipksiezyc 0:befccd954577 40 }
filipksiezyc 0:befccd954577 41 pcGotCharDestination[--ucCurrentRecivedChar]=NULL;
filipksiezyc 0:befccd954577 42 return 1;
filipksiezyc 0:befccd954577 43 }
filipksiezyc 0:befccd954577 44
filipksiezyc 0:befccd954577 45
filipksiezyc 0:befccd954577 46 int main(){
filipksiezyc 0:befccd954577 47 ServoGUI MyServo;
filipksiezyc 0:befccd954577 48 TokensHandler TokenDecoder;
filipksiezyc 0:befccd954577 49
filipksiezyc 0:befccd954577 50 char cInputString[MAX_KEYWORD_STRING_LTH];
filipksiezyc 0:befccd954577 51 char cErrorMessage[]="unknowncommand\n";
filipksiezyc 0:befccd954577 52 char cBoardId[]="DISCO_F429ZI\n";
filipksiezyc 0:befccd954577 53 char cOkMessage[]="OK\n";
filipksiezyc 0:befccd954577 54
filipksiezyc 0:befccd954577 55 while(1){
filipksiezyc 0:befccd954577 56
filipksiezyc 0:befccd954577 57 if(gets(cInputString, MAX_KEYWORD_STRING_LTH)==0){
filipksiezyc 0:befccd954577 58 TokenDecoder.DecodeMsg(cInputString);
filipksiezyc 0:befccd954577 59
filipksiezyc 0:befccd954577 60 if((TokenDecoder.asToken[0].eType==KEYWORD)&&(TokenDecoder.ucTokenNr>0)){
filipksiezyc 0:befccd954577 61
filipksiezyc 0:befccd954577 62 switch(TokenDecoder.asToken[0].uValue.eKeyword){
filipksiezyc 0:befccd954577 63 case GOTO:
filipksiezyc 0:befccd954577 64 if(TokenDecoder.asToken[1].eType==NUMBER){
filipksiezyc 0:befccd954577 65 MyServo.GoTo(TokenDecoder.asToken[1].uValue.uiNumber);
filipksiezyc 0:befccd954577 66 puts(cOkMessage, (strlen(cOkMessage)+1));
filipksiezyc 0:befccd954577 67 }
filipksiezyc 0:befccd954577 68 break;
filipksiezyc 0:befccd954577 69
filipksiezyc 0:befccd954577 70 case CALLIB:
filipksiezyc 0:befccd954577 71 MyServo.Callib();
filipksiezyc 0:befccd954577 72 puts(cOkMessage, (strlen(cOkMessage)+1));
filipksiezyc 0:befccd954577 73 break;
filipksiezyc 0:befccd954577 74
filipksiezyc 0:befccd954577 75 case STEP:
filipksiezyc 0:befccd954577 76 if(TokenDecoder.asToken[1].eType==NUMBER){
filipksiezyc 0:befccd954577 77 MyServo.Shift(TokenDecoder.asToken[1].uValue.uiNumber);
filipksiezyc 0:befccd954577 78 puts(cOkMessage, (strlen(cOkMessage)+1));
filipksiezyc 0:befccd954577 79 }
filipksiezyc 0:befccd954577 80 break;
filipksiezyc 0:befccd954577 81
filipksiezyc 0:befccd954577 82 case ID:
filipksiezyc 0:befccd954577 83 puts(cBoardId, (strlen(cBoardId)+1));
filipksiezyc 0:befccd954577 84 break;
filipksiezyc 0:befccd954577 85
filipksiezyc 0:befccd954577 86 default:
filipksiezyc 0:befccd954577 87 puts(cErrorMessage, (strlen(cErrorMessage)+1));
filipksiezyc 0:befccd954577 88 break;
filipksiezyc 0:befccd954577 89 }
filipksiezyc 0:befccd954577 90 }
filipksiezyc 0:befccd954577 91 else {
filipksiezyc 0:befccd954577 92 puts(cErrorMessage, (strlen(cErrorMessage)+1));
filipksiezyc 0:befccd954577 93 }
filipksiezyc 0:befccd954577 94 }
filipksiezyc 0:befccd954577 95 }
filipksiezyc 0:befccd954577 96 }
filipksiezyc 0:befccd954577 97
filipksiezyc 0:befccd954577 98
filipksiezyc 0:befccd954577 99
filipksiezyc 0:befccd954577 100
filipksiezyc 0:befccd954577 101