123123123123123123123123123

Dependencies:   mbed

Committer:
TonyYI
Date:
Thu Jul 03 14:52:44 2014 +0000
Revision:
3:4306d042af6f
Parent:
2:442902ec3aa1
123123

Who changed what in which revision?

UserRevisionLine numberNew 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
TonyYI 0:3417ca0a36c0 41 #define BUFFER_SIZE 1024
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:
TonyYI 3:4306d042af6f 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 1:cbec1283a16a 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;
TonyYI 3:4306d042af6f 97 COMPASS *_compass;
TonyYI 0:3417ca0a36c0 98 };
TonyYI 0:3417ca0a36c0 99
TonyYI 0:3417ca0a36c0 100 #endif