Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void get_frame(void)
- {
- if (Busy_Rx != Empty_Rx) {
- static char c;
- c = getchar_BuffRx();
- switch (actual_frame_stage) {
- case FRAME_WAIT_FOR_START:
- if (c == START_FRAME) {
- actual_frame_stage = FRAME_MESSAGE;
- }
- break;
- case FRAME_MESSAGE:
- if (c == END_FRAME) {
- analyze_frame(receivedFrameBuffer);
- clearReceivedFrameBuffer();
- actual_frame_stage = FRAME_WAIT_FOR_START;
- } else if (c == ESCAPE) {
- actual_frame_stage = FRAME_ESCAPE;
- }
- else if ( c == START_FRAME)
- {
- clearReceivedFrameBuffer();
- actual_frame_stage = FRAME_MESSAGE;
- break;
- }
- else {
- receivedFrameBuffer[receivedFrameBufferIDX] = c;
- if(receivedFrameBufferIDX>=256)
- {
- clearReceivedFrameBuffer();
- actual_frame_stage = FRAME_WAIT_FOR_START;
- break;
- }
- else
- {
- receivedFrameBufferIDX++;
- }
- }
- break;
- case FRAME_ESCAPE:
- if (c == ESCAPE_START) {
- receivedFrameBuffer[receivedFrameBufferIDX] = START_FRAME;
- if(receivedFrameBufferIDX>=256)
- {
- clearReceivedFrameBuffer();
- actual_frame_stage = FRAME_WAIT_FOR_START;
- break;
- }
- else
- {
- receivedFrameBufferIDX++;
- }
- } else if (c == ESCAPE_END) {
- receivedFrameBuffer[receivedFrameBufferIDX] = END_FRAME;
- if(receivedFrameBufferIDX>=256)
- {
- clearReceivedFrameBuffer();
- actual_frame_stage = FRAME_WAIT_FOR_START;
- break;
- }
- else
- {
- receivedFrameBufferIDX++;
- }
- } else if (c == ESCAPE_ESCAPE) {
- receivedFrameBuffer[receivedFrameBufferIDX] = ESCAPE;
- if(receivedFrameBufferIDX>=256)
- {
- clearReceivedFrameBuffer();
- actual_frame_stage = FRAME_WAIT_FOR_START;
- break;
- }
- else
- {
- receivedFrameBufferIDX++;
- }
- }
- else {
- clearReceivedFrameBuffer();
- actual_frame_stage = FRAME_WAIT_FOR_START;
- break;
- }
- actual_frame_stage = FRAME_MESSAGE;
- break;
- }
- }
- if ((HAL_GetTick() - lastReceivedCharFrame) > 40) {
- clearReceivedFrameBuffer();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement