
callib
Dependencies: LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI
main.cpp@0:befccd954577, 2020-06-09 (annotated)
- Committer:
- filipksiezyc
- Date:
- Tue Jun 09 10:21:57 2020 +0000
- Revision:
- 0:befccd954577
1331;
Who changed what in which revision?
User | Revision | Line number | New 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 |