Dependencies: LCD_DISCO_F429ZI STEPPER_LED_GUI mbed BSP_DISCO_F429ZI DECODER
main.cpp@1:8db86d36b823, 2020-05-18 (annotated)
- Committer:
- lolkusus
- Date:
- Mon May 18 18:03:56 2020 +0000
- Revision:
- 1:8db86d36b823
- Parent:
- 0:2d7fdb94682a
final
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lolkusus | 0:2d7fdb94682a | 1 | #include "DECODER.h" |
lolkusus | 0:2d7fdb94682a | 2 | #include "STEPPER_LED_GUI.h" |
lolkusus | 0:2d7fdb94682a | 3 | |
lolkusus | 0:2d7fdb94682a | 4 | #define CR '\r' |
lolkusus | 0:2d7fdb94682a | 5 | |
lolkusus | 1:8db86d36b823 | 6 | Serial MyUart(USBTX, USBRX, 9600); |
lolkusus | 1:8db86d36b823 | 7 | Decoder MyDecoder; |
lolkusus | 1:8db86d36b823 | 8 | StepperLedGui MyGui; |
lolkusus | 0:2d7fdb94682a | 9 | |
lolkusus | 0:2d7fdb94682a | 10 | int puts (char *cBuffer, unsigned char ucBufferSize) |
lolkusus | 0:2d7fdb94682a | 11 | { |
lolkusus | 0:2d7fdb94682a | 12 | unsigned char ucBufferPointer; |
lolkusus | 0:2d7fdb94682a | 13 | for (ucBufferPointer = 0; ucBufferPointer <= ucBufferSize; ucBufferPointer++) |
lolkusus | 0:2d7fdb94682a | 14 | { |
lolkusus | 0:2d7fdb94682a | 15 | if (cBuffer[ucBufferPointer] == NULL) |
lolkusus | 0:2d7fdb94682a | 16 | break; |
lolkusus | 0:2d7fdb94682a | 17 | |
lolkusus | 0:2d7fdb94682a | 18 | } |
lolkusus | 0:2d7fdb94682a | 19 | if (ucBufferPointer == ucBufferSize) |
lolkusus | 0:2d7fdb94682a | 20 | return 1; |
lolkusus | 0:2d7fdb94682a | 21 | |
lolkusus | 0:2d7fdb94682a | 22 | for (unsigned char ucBufferPointer = 0; cBuffer[ucBufferPointer] != NULL; ucBufferPointer++) |
lolkusus | 0:2d7fdb94682a | 23 | { |
lolkusus | 1:8db86d36b823 | 24 | MyUart.putc(cBuffer[ucBufferPointer]); |
lolkusus | 0:2d7fdb94682a | 25 | } |
lolkusus | 1:8db86d36b823 | 26 | MyUart.putc(CR); |
lolkusus | 0:2d7fdb94682a | 27 | return 0; |
lolkusus | 0:2d7fdb94682a | 28 | } |
lolkusus | 0:2d7fdb94682a | 29 | |
lolkusus | 0:2d7fdb94682a | 30 | int gets (char *cBuffer, unsigned char ucBufferSize) |
lolkusus | 0:2d7fdb94682a | 31 | { |
lolkusus | 0:2d7fdb94682a | 32 | unsigned char ucBufferPointer = 0; |
lolkusus | 0:2d7fdb94682a | 33 | |
lolkusus | 0:2d7fdb94682a | 34 | while(ucBufferPointer < ucBufferSize) |
lolkusus | 0:2d7fdb94682a | 35 | { |
lolkusus | 1:8db86d36b823 | 36 | cBuffer[ucBufferPointer] = MyUart.getc(); |
lolkusus | 0:2d7fdb94682a | 37 | if (cBuffer[ucBufferPointer] == CR) |
lolkusus | 0:2d7fdb94682a | 38 | { |
lolkusus | 0:2d7fdb94682a | 39 | cBuffer[ucBufferPointer] = NULL; |
lolkusus | 0:2d7fdb94682a | 40 | return 0; |
lolkusus | 0:2d7fdb94682a | 41 | } |
lolkusus | 0:2d7fdb94682a | 42 | ucBufferPointer++; |
lolkusus | 0:2d7fdb94682a | 43 | } |
lolkusus | 0:2d7fdb94682a | 44 | return 1; |
lolkusus | 0:2d7fdb94682a | 45 | } |
lolkusus | 0:2d7fdb94682a | 46 | |
lolkusus | 0:2d7fdb94682a | 47 | void handleMessage(Token *pToken) |
lolkusus | 0:2d7fdb94682a | 48 | { |
lolkusus | 0:2d7fdb94682a | 49 | char cUnknownCommand[] = "unknowncommand"; |
lolkusus | 0:2d7fdb94682a | 50 | char cID[] = "id 0xABCD"; |
lolkusus | 0:2d7fdb94682a | 51 | char cOK[] = "ok"; |
lolkusus | 0:2d7fdb94682a | 52 | |
lolkusus | 0:2d7fdb94682a | 53 | if (pToken[0].eType == KEYWORD) |
lolkusus | 0:2d7fdb94682a | 54 | { |
lolkusus | 0:2d7fdb94682a | 55 | switch(pToken[0].uValue.eKeyword) |
lolkusus | 0:2d7fdb94682a | 56 | { |
lolkusus | 0:2d7fdb94682a | 57 | case ID: |
lolkusus | 0:2d7fdb94682a | 58 | puts(cID, sizeof(cID)); |
lolkusus | 0:2d7fdb94682a | 59 | break; |
lolkusus | 0:2d7fdb94682a | 60 | case CALLIB: |
lolkusus | 1:8db86d36b823 | 61 | MyGui.MotorCallib(); |
lolkusus | 0:2d7fdb94682a | 62 | puts(cOK, sizeof(cOK)); |
lolkusus | 0:2d7fdb94682a | 63 | break; |
lolkusus | 0:2d7fdb94682a | 64 | case GOTO: |
lolkusus | 0:2d7fdb94682a | 65 | if (pToken[1].eType == NUMBER) |
lolkusus | 0:2d7fdb94682a | 66 | { |
lolkusus | 1:8db86d36b823 | 67 | MyGui.gotoPosition(pToken[1].uValue.uiNumber); |
lolkusus | 0:2d7fdb94682a | 68 | puts(cOK, sizeof(cOK)); |
lolkusus | 0:2d7fdb94682a | 69 | } |
lolkusus | 0:2d7fdb94682a | 70 | else |
lolkusus | 0:2d7fdb94682a | 71 | { |
lolkusus | 0:2d7fdb94682a | 72 | puts(cUnknownCommand, sizeof(cUnknownCommand)); |
lolkusus | 0:2d7fdb94682a | 73 | } |
lolkusus | 0:2d7fdb94682a | 74 | break; |
lolkusus | 0:2d7fdb94682a | 75 | case STEP: |
lolkusus | 0:2d7fdb94682a | 76 | if (pToken[1].eType == NUMBER) |
lolkusus | 0:2d7fdb94682a | 77 | { |
lolkusus | 1:8db86d36b823 | 78 | MyGui.MotorSteps(pToken[1].uValue.uiNumber); |
lolkusus | 0:2d7fdb94682a | 79 | puts(cOK, sizeof(cOK)); |
lolkusus | 0:2d7fdb94682a | 80 | } |
lolkusus | 0:2d7fdb94682a | 81 | else |
lolkusus | 0:2d7fdb94682a | 82 | { |
lolkusus | 0:2d7fdb94682a | 83 | puts(cUnknownCommand, sizeof(cUnknownCommand)); |
lolkusus | 0:2d7fdb94682a | 84 | } |
lolkusus | 0:2d7fdb94682a | 85 | break; |
lolkusus | 0:2d7fdb94682a | 86 | default: |
lolkusus | 0:2d7fdb94682a | 87 | puts(cUnknownCommand, sizeof(cUnknownCommand)); |
lolkusus | 0:2d7fdb94682a | 88 | break; |
lolkusus | 0:2d7fdb94682a | 89 | } |
lolkusus | 0:2d7fdb94682a | 90 | } |
lolkusus | 0:2d7fdb94682a | 91 | else |
lolkusus | 0:2d7fdb94682a | 92 | { |
lolkusus | 0:2d7fdb94682a | 93 | puts(cUnknownCommand, sizeof(cUnknownCommand)); |
lolkusus | 0:2d7fdb94682a | 94 | } |
lolkusus | 0:2d7fdb94682a | 95 | } |
lolkusus | 0:2d7fdb94682a | 96 | |
lolkusus | 0:2d7fdb94682a | 97 | int main() |
lolkusus | 0:2d7fdb94682a | 98 | { |
lolkusus | 0:2d7fdb94682a | 99 | char cBuffor[50]; |
lolkusus | 0:2d7fdb94682a | 100 | char cUnknownCommand[] = "unknowncommand"; |
lolkusus | 0:2d7fdb94682a | 101 | |
lolkusus | 0:2d7fdb94682a | 102 | while(1) |
lolkusus | 0:2d7fdb94682a | 103 | { |
lolkusus | 0:2d7fdb94682a | 104 | if (gets(cBuffor,sizeof(cBuffor)) == 0) |
lolkusus | 0:2d7fdb94682a | 105 | { |
lolkusus | 1:8db86d36b823 | 106 | if (MyDecoder.DecodeMsg(cBuffor) == OK) |
lolkusus | 0:2d7fdb94682a | 107 | { |
lolkusus | 1:8db86d36b823 | 108 | handleMessage(MyDecoder.asToken); |
lolkusus | 0:2d7fdb94682a | 109 | } |
lolkusus | 0:2d7fdb94682a | 110 | else |
lolkusus | 0:2d7fdb94682a | 111 | { |
lolkusus | 0:2d7fdb94682a | 112 | puts(cUnknownCommand, sizeof(cUnknownCommand)); |
lolkusus | 0:2d7fdb94682a | 113 | } |
lolkusus | 0:2d7fdb94682a | 114 | } |
lolkusus | 0:2d7fdb94682a | 115 | } |
lolkusus | 0:2d7fdb94682a | 116 | } |