Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of ESDC2014 by
communication.h@4:a377ecb9364f, 2014-07-04 (annotated)
- Committer:
- terryLAI
- Date:
- Fri Jul 04 13:05:15 2014 +0000
- Revision:
- 4:a377ecb9364f
- Parent:
- 3:4306d042af6f
- Child:
- 5:098e6a44bd94
test;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| TonyYI | 0:3417ca0a36c0 | 1 | /****************************************************** |
| TonyYI | 0:3417ca0a36c0 | 2 | |
| TonyYI | 0:3417ca0a36c0 | 3 | ****┏┓ ┏┓ |
| TonyYI | 0:3417ca0a36c0 | 4 | **┏┛┻━━━━━━┛┻┓ |
| TonyYI | 0:3417ca0a36c0 | 5 | **┃ ┃ |
| TonyYI | 0:3417ca0a36c0 | 6 | **┃ ━━━ ┃ |
| TonyYI | 0:3417ca0a36c0 | 7 | **┃ ┳┛ ┗┳ ┃ |
| TonyYI | 0:3417ca0a36c0 | 8 | **┃ ┃ |
| TonyYI | 0:3417ca0a36c0 | 9 | **┃ ''' ┻ ''' ┃ |
| TonyYI | 0:3417ca0a36c0 | 10 | **┃ ┃ |
| TonyYI | 0:3417ca0a36c0 | 11 | **┗━━┓ ┏━━┛ |
| TonyYI | 0:3417ca0a36c0 | 12 | *******┃ ┃ |
| TonyYI | 0:3417ca0a36c0 | 13 | *******┃ ┃ |
| TonyYI | 0:3417ca0a36c0 | 14 | *******┃ ┃ |
| TonyYI | 0:3417ca0a36c0 | 15 | *******┃ ┗━━━━━━━━┓ |
| TonyYI | 0:3417ca0a36c0 | 16 | *******┃ ┃━┓ |
| TonyYI | 0:3417ca0a36c0 | 17 | *******┃ NO BUG ┏━┛ |
| TonyYI | 0:3417ca0a36c0 | 18 | *******┃ ┃ |
| TonyYI | 0:3417ca0a36c0 | 19 | *******┗━┓ ┓ ┏━┏━┓ ━┛ |
| TonyYI | 0:3417ca0a36c0 | 20 | ***********┃ ┛ ┛ ┃ ┛ ┛ |
| TonyYI | 0:3417ca0a36c0 | 21 | ***********┃ ┃ ┃ ┃ ┃ ┃ |
| TonyYI | 0:3417ca0a36c0 | 22 | ***********┗━┛━┛ ┗━┛━┛ |
| TonyYI | 0:3417ca0a36c0 | 23 | |
| TonyYI | 0:3417ca0a36c0 | 24 | This part is added by project ESDC2014 of CUHK team. |
| TonyYI | 0:3417ca0a36c0 | 25 | All the code with this header are under GPL open source license. |
| TonyYI | 0:3417ca0a36c0 | 26 | This program is running on Mbed Platform 'mbed LPC1768' avaliable in 'http://mbed.org'. |
| TonyYI | 0:3417ca0a36c0 | 27 | **********************************************************/ |
| TonyYI | 0:3417ca0a36c0 | 28 | |
| TonyYI | 0:3417ca0a36c0 | 29 | /* |
| TonyYI | 0:3417ca0a36c0 | 30 | The communication protocol is inside source/intel_board/lib/message.h |
| TonyYI | 0:3417ca0a36c0 | 31 | */ |
| TonyYI | 0:3417ca0a36c0 | 32 | #include "lifter.h" |
| TonyYI | 0:3417ca0a36c0 | 33 | #include "camera_platform.h" |
| TonyYI | 0:3417ca0a36c0 | 34 | #include "mbed.h" |
| TonyYI | 0:3417ca0a36c0 | 35 | #include "compass.h" |
| TonyYI | 0:3417ca0a36c0 | 36 | #include "buzzer.h" |
| TonyYI | 0:3417ca0a36c0 | 37 | |
| TonyYI | 0:3417ca0a36c0 | 38 | #ifndef _COMMUNICATION_H |
| TonyYI | 0:3417ca0a36c0 | 39 | #define _COMMUNICATION_H |
| TonyYI | 0:3417ca0a36c0 | 40 | |
| terryLAI | 4:a377ecb9364f | 41 | #define BUFFER_SIZE 256 |
| TonyYI | 0:3417ca0a36c0 | 42 | #define STARTER 0x7e |
| TonyYI | 0:3417ca0a36c0 | 43 | #define COMPASS_STARTER 0x7d |
| terryLAI | 2:442902ec3aa1 | 44 | #define BUZZER_STARTER 0x7c |
| TonyYI | 0:3417ca0a36c0 | 45 | |
| TonyYI | 0:3417ca0a36c0 | 46 | #define DEBUG_ON 1 |
| TonyYI | 0:3417ca0a36c0 | 47 | |
| TonyYI | 0:3417ca0a36c0 | 48 | class Communication |
| TonyYI | 0:3417ca0a36c0 | 49 | { |
| TonyYI | 0:3417ca0a36c0 | 50 | public: |
| terryLAI | 4:a377ecb9364f | 51 | Communication(MySerial* _DEBUG, MySerial *_IntelToMbed, MySerial *_MbedToArduino, Compass *_compass); |
| TonyYI | 0:3417ca0a36c0 | 52 | ~Communication(); |
| TonyYI | 0:3417ca0a36c0 | 53 | |
| TonyYI | 0:3417ca0a36c0 | 54 | void putToBuffer(uint8_t _x, uint8_t communication_type); //0 is IntelToMbed, 1 is MbedTOArduino |
| TonyYI | 0:3417ca0a36c0 | 55 | uint8_t getByte(uint8_t communication_type); //0 is IntelToMbed, 1 is MbedTOArduino |
| TonyYI | 0:3417ca0a36c0 | 56 | uint16_t get2Bytes(uint8_t communication_type); //0 is IntelToMbed, 1 is MbedTOArduino |
| TonyYI | 0:3417ca0a36c0 | 57 | void putByte(uint8_t _x, uint8_t _i); //_i = 0 is _DEBUG, _i = 1 is _IntelToMbed, _i = 2 is _MbedToArduino |
| TonyYI | 0:3417ca0a36c0 | 58 | void put2Bytes(uint16_t _x, uint8_t _i); |
| TonyYI | 0:3417ca0a36c0 | 59 | void parseMessage(); |
| TonyYI | 0:3417ca0a36c0 | 60 | void forwardMessage(); //forward the message to the Arduino |
| TonyYI | 0:3417ca0a36c0 | 61 | void ACK(Lifter* lifter, Camera_platform* camera_platform); //send ACK back to the intel board |
| TonyYI | 0:3417ca0a36c0 | 62 | |
| TonyYI | 0:3417ca0a36c0 | 63 | uint8_t getInfoOK(uint8_t communication_type); //0 is IntelToMbed, 1 is MbedTOArduino |
| TonyYI | 0:3417ca0a36c0 | 64 | void resetInfoOK(uint8_t communication_type); //0 is IntelToMbed, 1 is MbedTOArduino |
| TonyYI | 0:3417ca0a36c0 | 65 | uint16_t getMoveDis(); |
| TonyYI | 0:3417ca0a36c0 | 66 | uint16_t getRotateDis(); |
| TonyYI | 0:3417ca0a36c0 | 67 | uint8_t getMoveDir(); |
| TonyYI | 0:3417ca0a36c0 | 68 | uint8_t getRotateDir(); |
| TonyYI | 0:3417ca0a36c0 | 69 | |
| terryLAI | 1:cbec1283a16a | 70 | uint16_t campass_degree; |
| terryLAI | 4:a377ecb9364f | 71 | Compass *compass; |
| terryLAI | 1:cbec1283a16a | 72 | |
| TonyYI | 0:3417ca0a36c0 | 73 | private: |
| TonyYI | 0:3417ca0a36c0 | 74 | void init(); |
| TonyYI | 0:3417ca0a36c0 | 75 | uint8_t* buffer_IntelToMbed; |
| TonyYI | 0:3417ca0a36c0 | 76 | uint8_t* buffer_MbedToArduino; |
| TonyYI | 3:4306d042af6f | 77 | uint8_t* forward_msg_buffer; //for forwarding message to the car |
| TonyYI | 0:3417ca0a36c0 | 78 | uint16_t in_IntelToMbed; |
| TonyYI | 0:3417ca0a36c0 | 79 | uint16_t out_IntelToMbed; |
| TonyYI | 0:3417ca0a36c0 | 80 | uint16_t in_MbedToArduino; |
| TonyYI | 0:3417ca0a36c0 | 81 | uint16_t out_MbedToArduino; |
| TonyYI | 0:3417ca0a36c0 | 82 | uint8_t state_IntelToMbed; |
| TonyYI | 0:3417ca0a36c0 | 83 | uint8_t state_MbedToArduino; |
| TonyYI | 0:3417ca0a36c0 | 84 | uint8_t check_sum; |
| TonyYI | 0:3417ca0a36c0 | 85 | uint8_t info_ok_IntelToMbed; //0 is not ok, 1 is car, 2 is lifter and 3 is camera platform |
| TonyYI | 0:3417ca0a36c0 | 86 | uint8_t info_ok_MbedToArduino; //0 is not ok, 1 is ok |
| TonyYI | 0:3417ca0a36c0 | 87 | |
| TonyYI | 0:3417ca0a36c0 | 88 | uint8_t action_type; |
| TonyYI | 0:3417ca0a36c0 | 89 | uint16_t move_dis; |
| TonyYI | 0:3417ca0a36c0 | 90 | uint8_t move_dir; |
| TonyYI | 0:3417ca0a36c0 | 91 | uint16_t rotate_dis; |
| TonyYI | 0:3417ca0a36c0 | 92 | uint8_t rotate_dir; |
| TonyYI | 0:3417ca0a36c0 | 93 | |
| TonyYI | 0:3417ca0a36c0 | 94 | MySerial *_DEBUG; |
| TonyYI | 0:3417ca0a36c0 | 95 | MySerial *_IntelToMbed; |
| TonyYI | 0:3417ca0a36c0 | 96 | MySerial *_MbedToArduino; |
| terryLAI | 4:a377ecb9364f | 97 | Compass *_compass; |
| TonyYI | 0:3417ca0a36c0 | 98 | }; |
| TonyYI | 0:3417ca0a36c0 | 99 | |
| TonyYI | 0:3417ca0a36c0 | 100 | #endif |
