Tony YI
/
ESDC2014
123123123123123123123123123
Embed:
(wiki syntax)
Show/hide line numbers
communication.h
00001 /****************************************************** 00002 00003 ****┏┓ ┏┓ 00004 **┏┛┻━━━━━━┛┻┓ 00005 **┃ ┃ 00006 **┃ ━━━ ┃ 00007 **┃ ┳┛ ┗┳ ┃ 00008 **┃ ┃ 00009 **┃ ''' ┻ ''' ┃ 00010 **┃ ┃ 00011 **┗━━┓ ┏━━┛ 00012 *******┃ ┃ 00013 *******┃ ┃ 00014 *******┃ ┃ 00015 *******┃ ┗━━━━━━━━┓ 00016 *******┃ ┃━┓ 00017 *******┃ NO BUG ┏━┛ 00018 *******┃ ┃ 00019 *******┗━┓ ┓ ┏━┏━┓ ━┛ 00020 ***********┃ ┛ ┛ ┃ ┛ ┛ 00021 ***********┃ ┃ ┃ ┃ ┃ ┃ 00022 ***********┗━┛━┛ ┗━┛━┛ 00023 00024 This part is added by project ESDC2014 of CUHK team. 00025 All the code with this header are under GPL open source license. 00026 This program is running on Mbed Platform 'mbed LPC1768' avaliable in 'http://mbed.org'. 00027 **********************************************************/ 00028 00029 /* 00030 The communication protocol is inside source/intel_board/lib/message.h 00031 */ 00032 #include "lifter.h" 00033 #include "camera_platform.h" 00034 #include "mbed.h" 00035 #include "compass.h" 00036 #include "buzzer.h" 00037 00038 #ifndef _COMMUNICATION_H 00039 #define _COMMUNICATION_H 00040 00041 #define BUFFER_SIZE 1024 00042 #define STARTER 0x7e 00043 #define COMPASS_STARTER 0x7d 00044 #define BUZZER_STARTER 0x7c 00045 00046 #define DEBUG_ON 1 00047 00048 class Communication 00049 { 00050 public: 00051 Communication(MySerial* _DEBUG, MySerial *_IntelToMbed, MySerial *_MbedToArduino, COMPASS *_compass); 00052 ~Communication(); 00053 00054 void putToBuffer(uint8_t _x, uint8_t communication_type); //0 is IntelToMbed, 1 is MbedTOArduino 00055 uint8_t getByte(uint8_t communication_type); //0 is IntelToMbed, 1 is MbedTOArduino 00056 uint16_t get2Bytes(uint8_t communication_type); //0 is IntelToMbed, 1 is MbedTOArduino 00057 void putByte(uint8_t _x, uint8_t _i); //_i = 0 is _DEBUG, _i = 1 is _IntelToMbed, _i = 2 is _MbedToArduino 00058 void put2Bytes(uint16_t _x, uint8_t _i); 00059 void parseMessage(); 00060 void forwardMessage(); //forward the message to the Arduino 00061 void ACK(Lifter* lifter, Camera_platform* camera_platform); //send ACK back to the intel board 00062 00063 uint8_t getInfoOK(uint8_t communication_type); //0 is IntelToMbed, 1 is MbedTOArduino 00064 void resetInfoOK(uint8_t communication_type); //0 is IntelToMbed, 1 is MbedTOArduino 00065 uint16_t getMoveDis(); 00066 uint16_t getRotateDis(); 00067 uint8_t getMoveDir(); 00068 uint8_t getRotateDir(); 00069 00070 uint16_t campass_degree; 00071 COMPASS *compass; 00072 00073 private: 00074 void init(); 00075 uint8_t* buffer_IntelToMbed; 00076 uint8_t* buffer_MbedToArduino; 00077 uint8_t* forward_msg_buffer; //for forwarding message to the car 00078 uint16_t in_IntelToMbed; 00079 uint16_t out_IntelToMbed; 00080 uint16_t in_MbedToArduino; 00081 uint16_t out_MbedToArduino; 00082 uint8_t state_IntelToMbed; 00083 uint8_t state_MbedToArduino; 00084 uint8_t check_sum; 00085 uint8_t info_ok_IntelToMbed; //0 is not ok, 1 is car, 2 is lifter and 3 is camera platform 00086 uint8_t info_ok_MbedToArduino; //0 is not ok, 1 is ok 00087 00088 uint8_t action_type; 00089 uint16_t move_dis; 00090 uint8_t move_dir; 00091 uint16_t rotate_dis; 00092 uint8_t rotate_dir; 00093 00094 MySerial *_DEBUG; 00095 MySerial *_IntelToMbed; 00096 MySerial *_MbedToArduino; 00097 COMPASS *_compass; 00098 }; 00099 00100 #endif
Generated on Thu Jul 14 2022 22:42:47 by 1.7.2